← All action domains

Ad tracking

8 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Disconnect Google Ads server

ad_tracking.disconnect_googlewriteconfirmadmin only

Remove this account's encrypted Google Ads server authorization and cancel pending authorization attempts. Disables direct server imports and restores any configured browser conversion actions. Does not delete past conversions, revoke unrelated Google connections, change ads or spend money.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.disconnect_google \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool ad_tracking_disconnect_google at https://app.chirply.io/api/mcp, same bearer token, same input.

Open ad tracking

ad_tracking.get_settingsreadadmin only

Read this account's advertising tracking settings and whether server credentials are saved. Returns public IDs and connection flags only; never returns tokens, secrets or visitor identity.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.get_settings \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool ad_tracking_get_settings at https://app.chirply.io/api/mcp, same bearer token, same input.

Connect Google Ads

ad_tracking.google_connectionreadadmin only

Get this account's Google Ads connection link and platform availability. An account owner or admin must open the link in their signed-in browser and approve Google access. This returns no credentials, connects nothing by itself and spends no money.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.google_connection \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool ad_tracking_google_connection at https://app.chirply.io/api/mcp, same bearer token, same input.

Recent ad events

ad_tracking.list_eventsreadadmin only

List recent server advertising event delivery receipts for this account. Shows destination, event type, delivery state and safe errors without visitor data or credentials. GA4 delivered means transport was accepted, not confirmed attribution.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMaximum recent delivery receipts to return, from 1 to 100. Default: 30

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.list_events \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 30
  }'
Test with your API key

Over MCP the same operation is the tool ad_tracking_list_events at https://app.chirply.io/api/mcp, same bearer token, same input.

Save tracking settings

ad_tracking.save_settingswriteconfirmadmin only

Save this account's Meta Pixel, Conversions API, Google Ads and optional GA4 settings. Enabling tracking sends consented visitors' page views and conversions to the account's advertising accounts. Credentials are encrypted; this does not buy ads or send customer messages.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
enabledbooleanoptionalEnable automatic ad events on this account's published pages. Omitted preserves the setting.
requireConsentbooleanoptionalWait for advertising consent before loading tags and sending events. Defaults to true.
metaPixelIdstringoptionalNumeric Meta Pixel / Dataset ID from Events Manager; empty removes it.
googleTagIdstringoptionalGoogle Ads tag ID beginning AW-, not a GA4 Measurement ID. Empty removes it.
googleLeadLabelstringoptionalGoogle Ads lead conversion label, the part after the slash in send_to. Empty removes it.
googlePurchaseLabelstringoptionalGoogle Ads purchase conversion label, the part after the slash in send_to. Empty removes it.
googleServerEnabledbooleanoptionalUse direct Google Ads server imports for leads and purchases instead of browser Ads conversions. Requires a connected Google account and imported conversion action IDs. Does not change GA4 events.
googleCustomerIdstringoptionalGoogle Ads customer ID containing the imported conversion actions, ten digits without dashes; empty removes it.
googleLoginCustomerIdstringoptionalOptional Google Ads manager account ID when access is through a manager account, ten digits without dashes; empty removes it.
googleLeadConversionActionIdstringoptionalNumeric ID of a Google Ads imported lead conversion action for Data Manager server reporting. This is not the browser conversion label; empty removes it.
googlePurchaseConversionActionIdstringoptionalNumeric ID of a Google Ads imported purchase conversion action for Data Manager server reporting. This is not the browser conversion label; empty removes it.
gaMeasurementIdstringoptionalOptional GA4 Measurement ID beginning G-. Empty removes it.
metaTokenstringoptionalMeta Conversions API access token. Encrypted on save and never returned; empty or omitted preserves it.
gaSecretstringoptionalOptional GA4 Measurement Protocol API secret for verified server purchases. Empty or omitted preserves it. This does not send conversions directly to Google Ads.
clearMetaTokenbooleanoptionalExplicitly remove the saved Meta token; incompatible with supplying a replacement token.
clearGaSecretbooleanoptionalExplicitly remove the saved GA4 API secret; incompatible with supplying a replacement secret.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.save_settings \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "enabled": true,
    "requireConsent": true
  }'
Test with your API key

Over MCP the same operation is the tool ad_tracking_save_settings at https://app.chirply.io/api/mcp, same bearer token, same input.

Validate GA4 setup

ad_tracking.test_ga4_connectionwriteconfirmadmin only

Send a synthetic purchase payload to Google's Measurement Protocol validation endpoint for this account's saved GA4 setup. Records no real purchase and spends no money. Google validates payload format only; this does not verify the API secret, event ingestion or Google Ads attribution.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.test_ga4_connection \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool ad_tracking_test_ga4_connection at https://app.chirply.io/api/mcp, same bearer token, same input.

Validate Google Ads server setup

ad_tracking.test_google_ads_connectionwriteconfirmadmin only

Validate this account's saved Google Ads server conversion destinations using Google's Data Manager validate-only mode. Sends a synthetic payload without real customer data, records no conversion, changes no campaign and spends no money. Validation does not prove campaign attribution.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.test_google_ads_connection \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool ad_tracking_test_google_ads_connection at https://app.chirply.io/api/mcp, same bearer token, same input.

Send Meta test event

ad_tracking.test_meta_connectionwriteconfirmadmin only

Send one synthetic connection event to Meta's Test Events tool using this account's saved Pixel ID and encrypted token. Requires an explicit Test Event Code; it sends no customer identity, records no real lead or purchase and spends no advertising money.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
testEventCodestringrequiredTemporary Test Event Code from this Meta dataset's Events Manager → Test events, such as TEST12345. Used only for this test.

Example

curl -X POST https://app.chirply.io/api/v1/actions/ad_tracking.test_meta_connection \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "testEventCode": "example"
  }'
Test with your API key

Over MCP the same operation is the tool ad_tracking_test_meta_connection at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=ad_tracking — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.