Scan Google Ads conversion tracking

Changed on

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

Cross-references the app's conversion mappings against the conversion calls in its code, and reports what does not line up.

Each entry in gaps names one problem. An error is a mapped conversion that cannot fire, and a warning is a setup that works but probably is not what you meant, such as a disabled mapping or code firing a goal no mapping points at. A missing-call- gap also carries a composer_prompt you can hand to Send chat message to have the AI write the fix.

<Note>For apps built in the current editor the scan reads the published version of the app, so a call you have written but not published yet still shows as a missing-call- gap. Publish the app, then scan again.</Note>

<Warning>is_clean is true when nothing was scanned, so read skipped_reason first. An app with no Google Ads account comes back with is_clean set to true, no gaps, and skipped_reason set to no_google_ads_account, which is not a clean bill of health. That response also omits enabled_mappings_count.</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>

get/api/apps/{app_id}/google-ads/tracking-scan

Request

  • Base URL: https://app.base44.com
  • URL: https://app.base44.com/api/apps/{app_id}/google-ads/tracking-scan
  • Auth: HTTP bearer

Path parameters

app_idstring required

ID of the app whose Google Ads conversion tracking you want to manage.

Response

What the scan found.

mappings_countinteger required

How many conversion mappings the account has, enabled or not.

calls_countinteger required

How many gtag conversion calls with a literal send_to the scan found in the app's code.

is_cleanboolean required

Whether the scan flagged no error-severity gap (true) or at least one (false). It also reads true when the scan did not run at all, so check skipped_reason first.

enabled_mappings_countinteger nullable

How many of the mappings are enabled. Absent when skipped_reason is set.

skipped_reasonstring nullable

Why nothing was scanned. The value is no_google_ads_account when the app has no active Google Ads account, app_not_found, or app_code_unreadable when the app's code is only readable from its published version and Base44 could not read one, for example because the app was never published. The field is absent whenever a scan ran.

Example response

{
  "gaps": [],
  "mappings_count": 3,
  "enabled_mappings_count": 2,
  "skipped_reason": "no_google_ads_account"
}

Changes

    • info

      the security scope read_only was added to the endpoint's security scheme PersonalAccessTokenAuth

    • info

      the security scope full_access was removed from the endpoint's security scheme PersonalAccessTokenAuth

    • info

      the endpoint scheme security PersonalAccessTokenAuth was added to the API