---
title: "List Google Ads conversion mappings"
method: GET
path: "/api/apps/{app_id}/google-ads/conversion-mappings"
---

# List Google Ads conversion mappings

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

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

Returns every conversion mapping on one of the app's Google Ads accounts.

A conversion mapping records that one of the account's Google Ads goals belongs to an entity write in the app, so `Order.create` is the app event behind the `PURCHASE` goal. Base44 reads mappings to decide whether a campaign is ready to launch, and to offer goals in the dashboard.

Pass the account in the `account_id` query parameter. An account that belongs to another app returns a 404 even when it sits in the same workspace.

<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.</Warning>

## Path parameters

- `app_id` string, required — ID of the app whose Google Ads conversion tracking you want to manage.

## Query parameters

- `account_id` string, required — ID of the Google Ads account the mapping belongs to, as returned in `id` by [Get Google Ads account](/api-reference/get-google-ads-account). An account belonging to a different app returns a 404.

## Response `200`

The account's conversion mappings.

- ConversionMappingResource[]
  - `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.
- `422` — Validation Error

## Changes

- **2026-09-01** `d8572ad3094a` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/idealspot/apis/base44-app-management-api/changes/api/apps/:app_id/google-ads/conversion-mappings/get.md)

---

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