> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Google Ads conversion mapping

> <Info>This API is in beta. Endpoints, fields, and behavior may still change, so avoid depending on it in production.</Info>

Changes a conversion mapping.

Send only the fields you want to change. A field you leave out keeps its current value, and so does a field you send as `null`, so clear a field by sending an empty string rather than `null`. There is no `account_id` parameter here, because the mapping already knows which account it belongs to.

Turning `is_enabled` off is how you stop Base44 counting the mapping when it decides the account's conversion events are configured, without losing the mapping itself.

<Warning>A mapping does not report conversions on its own. Nothing fires a conversion when the mapped entity is written. The app has to fire it in the browser with `gtag('event', 'conversion', ...)`, or you report it from the server with [Upload conversions](/api-reference/upload-google-ads-conversions).</Warning>

<Note>This endpoint accepts a personal API key. Workspace API keys are not authorized for it and are rejected with a 403.</Note>

<Warning>The response includes fields beyond the ones documented here. Don't rely on undocumented response fields, as they can change at any time. Send only the fields documented here. Other request fields are not supported and their behavior can change.</Warning>



## OpenAPI

````yaml /developers/references/app-management/app-management-openapi.json patch /api/apps/{app_id}/google-ads/conversion-mappings/{mapping_id}
openapi: 3.1.0
info:
  title: Base44 App Management API
  version: 1.0.0
servers:
  - url: https://app.base44.com
security:
  - ApiKeyAuth: []
paths:
  /api/apps/{app_id}/google-ads/conversion-mappings/{mapping_id}:
    patch:
      summary: Update Google Ads conversion mapping
      description: >-
        <Info>This API is in beta. Endpoints, fields, and behavior may still
        change, so avoid depending on it in production.</Info>


        Changes a conversion mapping.


        Send only the fields you want to change. A field you leave out keeps its
        current value, and so does a field you send as `null`, so clear a field
        by sending an empty string rather than `null`. There is no `account_id`
        parameter here, because the mapping already knows which account it
        belongs to.


        Turning `is_enabled` off is how you stop Base44 counting the mapping
        when it decides the account's conversion events are configured, without
        losing the mapping itself.


        <Warning>A mapping does not report conversions on its own. Nothing fires
        a conversion when the mapped entity is written. The app has to fire it
        in the browser with `gtag('event', 'conversion', ...)`, or you report it
        from the server with [Upload
        conversions](/api-reference/upload-google-ads-conversions).</Warning>


        <Note>This endpoint accepts a personal API key. Workspace API keys are
        not authorized for it and are rejected with a 403.</Note>


        <Warning>The response includes fields beyond the ones documented here.
        Don't rely on undocumented response fields, as they can change at any
        time. Send only the fields documented here. Other request fields are not
        supported and their behavior can change.</Warning>
      operationId: >-
        update_conversion_mapping_api_apps__app_id__google_ads_conversion_mappings__mapping_id__patch
      parameters:
        - name: app_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the app whose Google Ads conversion tracking you want to
              manage.
            title: App Id
          description: >-
            ID of the app whose Google Ads conversion tracking you want to
            manage.
          example: 6820f3a4e7b91d003c45a1f2
        - name: mapping_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              ID of the mapping, as returned in `id` by [List conversion
              mappings](/api-reference/list-google-ads-conversion-mappings).
            title: Mapping Id
          description: >-
            ID of the mapping, as returned in `id` by [List conversion
            mappings](/api-reference/list-google-ads-conversion-mappings).
          example: 68b1c0d4e7b91d003c45a1f7
      requestBody:
        required: true
        content:
          application/json:
            schema:
              title: UpdateConversionMapping
              type: object
              properties:
                entity_name:
                  type: string
                  description: Name of the app entity whose write this goal belongs to.
                  example: Order
                trigger_action:
                  type: string
                  description: >-
                    Which write on the entity the goal belongs to. Base44 uses
                    `create`, `update`, and `delete`, and stores any other value
                    as sent.
                  default: create
                  example: create
                conversion_type:
                  type: string
                  description: >-
                    Which kind of conversion this is, using Google's category
                    vocabulary such as `PURCHASE`, `ADD_TO_CART`, `SIGN_UP`, or
                    `LEAD`. The value is stored as sent and not checked against
                    Google's list.
                  example: PURCHASE
                conversion_action_id:
                  type: string
                  description: >-
                    Google Ads' own ID for the goal to point at, as returned in
                    `google_action_id` by [List conversion
                    actions](/api-reference/list-google-ads-conversion-actions).
                    Send it alongside `conversion_type` and this one is matched
                    first, with `conversion_type` as the fallback if it matches
                    no goal on the account.
                  example: '7654321'
                value_field:
                  type: string
                  description: >-
                    Field on the entity record holding the conversion amount.
                    The wiring instructions fall back to `amount` when it is
                    empty.
                  example: total_price
                currency_field:
                  type: string
                  description: >-
                    Field on the entity record holding the currency code. The
                    wiring instructions fall back to `USD` when it is empty.
                  example: currency
                id_field:
                  type: string
                  description: >-
                    Field on the entity record holding the order ID Google
                    dedupes on. The wiring instructions fall back to `id` when
                    it is empty.
                  example: order_number
                is_enabled:
                  type: boolean
                  description: >-
                    Whether Base44 counts this mapping when it decides the
                    account's conversion events are configured (`true`) or
                    ignores it (`false`).
                  default: true
                  example: true
            example:
              value_field: grand_total
              is_enabled: true
      responses:
        '200':
          description: The mapping after the change.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversionMappingResource'
        '401':
          description: Missing or invalid credentials.
        '403':
          description: >-
            You don't have access to this app, the app does not exist, or you
            used a workspace API key. A missing app and an app you cannot reach
            are deliberately the same answer.
        '404':
          description: >-
            The account does not belong to this app, or there is no mapping with
            this ID in your workspace.
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ConversionMappingResource:
      properties:
        id:
          type: string
          title: Id
          description: ID of the mapping. Pass this as `mapping_id` to update or delete it.
          example: 68b1c0d4e7b91d003c45a1f7
        account_id:
          type: string
          title: Account Id
          description: ID of the Google Ads account the mapping belongs to.
          example: 68b1c0d4e7b91d003c45a1f8
        entity_name:
          type: string
          title: Entity Name
          description: >-
            Name of the app entity whose write this goal belongs to, as returned
            by [List entity schemas](/api-reference/list-entity-schemas). It is
            empty on a mapping Base44 created from a conversion it verified
            firing in the app code, because a client-side conversion has no
            entity behind it.
          example: Order
        trigger_action:
          type: string
          title: Trigger Action
          description: >-
            Which write on the entity the goal belongs to. Base44 uses `create`,
            `update`, and `delete`, and stores any other value as sent.
          example: create
        conversion_type:
          type: string
          title: Conversion Type
          description: >-
            Which kind of conversion this is, using Google's category vocabulary
            such as `PURCHASE`, `ADD_TO_CART`, `BEGIN_CHECKOUT`, `SIGN_UP`,
            `LEAD`, or `CONTACT`. Empty when nothing was set for it. The value
            is stored as sent and not checked against Google's list.
          example: PURCHASE
        conversion_action_id:
          type: string
          title: Conversion Action Id
          description: >-
            Google Ads' own ID for the goal this mapping points at, as returned
            in `google_action_id` by [List conversion
            actions](/api-reference/list-google-ads-conversion-actions). Empty
            when nothing was set for it. A mapping can carry both this and
            `conversion_type`, and this one is matched first. If it matches no
            goal on the account, which happens when the goal was recreated in
            Google Ads under a new ID, the mapping falls back to matching on
            `conversion_type`.
          example: '7654321'
        value_field:
          type: string
          title: Value Field
          description: >-
            Field on the entity record holding the conversion amount. It is read
            only when writing the wiring instructions for the AI builder, which
            falls back to `amount` when this is empty.
          example: total_price
        currency_field:
          type: string
          title: Currency Field
          description: >-
            Field on the entity record holding the currency code. Same use as
            `value_field`, and the instructions fall back to `USD` when this is
            empty.
          example: currency
        id_field:
          type: string
          title: Id Field
          description: >-
            Field on the entity record holding the order ID Google dedupes on.
            Same use as `value_field`, and the instructions fall back to `id`
            when this is empty.
          example: order_number
        is_enabled:
          type: boolean
          title: Is Enabled
          description: >-
            Whether Base44 counts this mapping when it decides a campaign's
            conversion events are configured (`true`) or ignores it (`false`).
          example: true
        created_date:
          type: string
          format: date-time
          title: Created Date
          description: When the mapping was created.
          example: '2026-08-25T11:20:00Z'
        updated_date:
          type: string
          format: date-time
          title: Updated Date
          description: When the mapping was last changed.
          example: '2026-08-25T14:05:00Z'
      type: object
      required:
        - id
        - account_id
        - entity_name
        - trigger_action
        - conversion_type
        - conversion_action_id
        - value_field
        - currency_field
        - id_field
        - is_enabled
        - created_date
        - updated_date
      title: ConversionMappingResource
      description: A conversion goal tied to an entity write in the app.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api_key
      description: Personal API key.

````