---
title: "Update Google Ads conversion mapping"
method: PATCH
path: "/api/apps/{app_id}/google-ads/conversion-mappings/{mapping_id}"
---

# Update Google Ads conversion mapping

`PATCH /api/apps/{app_id}/google-ads/conversion-mappings/{mapping_id}`

<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>

## Path parameters

- `app_id` string, required — ID of the app whose Google Ads conversion tracking you want to manage.
- `mapping_id` string, required — ID of the mapping, as returned in `id` by [List conversion mappings](/api-reference/list-google-ads-conversion-mappings).

## Request body

- object
  - `entity_name` string — Name of the app entity whose write this goal belongs to.
  - `trigger_action` string — Which write on the entity the goal belongs to. Base44 uses `create`, `update`, and `delete`, and stores any other value as sent.
  - `conversion_type` string — 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.
  - `conversion_action_id` string — 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.
  - `value_field` string — Field on the entity record holding the conversion amount. The wiring instructions fall back to `amount` when it is empty.
  - `currency_field` string — Field on the entity record holding the currency code. The wiring instructions fall back to `USD` when it is empty.
  - `id_field` string — Field on the entity record holding the order ID Google dedupes on. The wiring instructions fall back to `id` when it is empty.
  - `is_enabled` boolean — Whether Base44 counts this mapping when it decides the account's conversion events are configured (`true`) or ignores it (`false`).

## Response `200`

The mapping after the change.

- ConversionMappingResource — A conversion goal tied to an entity write in the app.
  - `id` string, required — ID of the mapping. Pass this as `mapping_id` to update or delete it.
  - `account_id` string, required — ID of the Google Ads account the mapping belongs to.
  - `entity_name` string, required — 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.
  - `trigger_action` string, required — Which write on the entity the goal belongs to. Base44 uses `create`, `update`, and `delete`, and stores any other value as sent.
  - `conversion_type` string, required — 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.
  - `conversion_action_id` string, required — 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`.
  - `value_field` string, required — 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.
  - `currency_field` string, required — 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.
  - `id_field` string, required — 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.
  - `is_enabled` boolean, required — Whether Base44 counts this mapping when it decides a campaign's conversion events are configured (`true`) or ignores it (`false`).
  - `created_date` string, date-time, required — When the mapping was created.
  - `updated_date` string, date-time, required — When the mapping was last changed.

## Other responses

- `401` — Missing or invalid credentials.
- `403` — 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` — The account does not belong to this app, or there is no mapping with this ID in your workspace.
- `422` — Validation Error

---

[API](https://skmtc.dev/adexad/apis/base44-app-management-api.md) · [All operations](https://skmtc.dev/adexad/apis/base44-app-management-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/adexad/base44-app-management-api/revisions/7f5ce8287501/schema)
