Skip to main content

Conversion created (conversion.created)

Description

Triggered when a conversion event is recorded (for example a purchase), including monetary amounts and attribution context.

Payload structure

{
"eventId": "string (uuid)",
"eventType": "conversion.created",
"timestamp": "string (ISO-8601)",
"schemaVersion": 1,
"payload": {}
}

Fields

Root (envelope)

FieldTypeDescription
eventIdstringUnique identifier for this webhook delivery.
eventTypestringAlways conversion.created for this event.
timestampstringTime the event was emitted.
schemaVersionnumberVersion of schema.
payloadobjectConversion and attribution details.

Payload object (payload)

FieldTypeDescription
eventIdstringIdentifier for the conversion event itself (distinct from root envelope eventId).
timestampstringTime the conversion event occurred (distinct from root envelope timestamp).
customerIdstringCustomer identifier for this conversion.
eventNamestringConversion event name (for example purchase).
revenueMinornumberRevenue in minor units for currency (see Notes).
currencystringISO currency code for revenueMinor (for example USD).
originalRevenueMinornumberOriginal amount in minor units before normalization when applicable.
originalCurrencystringOriginal currency code (for example JPY).
productIdstringProduct identifier when applicable.
transactionIdstringTransaction identifier for this conversion.
attributionobjectAttribution snapshot (see below).
countrystringCountry associated with the conversion when known.
citystringCity associated with the conversion when known.
platformstringPlatform classification (for example mobile).
adIdsobjectAttribution click IDs captured from the link or session (see below).

payload.attribution

FieldTypeDescription
shortUrlstringShort URL associated with attribution.
utmSourcestringUTM source when captured.
utmMediumstringUTM medium when captured.
utmCampaignstringUTM campaign when captured.
firstTouchLinkstringFirst-touch link reference.
lastTouchLinkstringLast-touch link reference.

payload.adIds

FieldTypeDescription
fbclidstring | nullMeta — Facebook Click Identifier. Used by Meta Pixel / Conversions API (CAPI) to attribute conversions to Facebook/Instagram ads.
gclidstring | nullGoogle Ads — Google Click Identifier. Used for offline conversions and campaign performance tracking.
gbraidstring | nullGoogle Ads — App iOS Click ID. For iOS 14.5+ traffic directed to an app; supports privacy-compliant modeled attribution.
wbraidstring | nullGoogle Ads — Web iOS Click ID. For iOS 14.5+ traffic directed to a website; supports privacy-compliant modeled attribution.
ttclidstring | nullTikTok — TikTok Click ID. Used by TikTok Pixel and Events API to link actions back to TikTok campaigns.

Working with Ad Click IDs

payload.adIds carries click identifiers from ad platforms (Meta, Google, TikTok) when they were present on the attributed link. In production, expect at most one non-null value — the platform that actually drove the click.

Rules for consumers

  • One active ID per eventadIds is mutually exclusive in production. Only one key holds a non-null string; the rest are null. That value identifies which ad network drove the session.
  • Google uses exactly one ID typegclid, gbraid, and wbraid are never set together. Google assigns one based on traffic type:
    • Desktop or Android web/app → gclid
    • iOS web (Safari) → wbraid
    • iOS in-app deep link → gbraid
  • Route by non-null key — Send the populated ID to the matching downstream system (Meta CAPI, Google Ads offline conversions, TikTok Events API, CRM, data warehouse, etc.). Ignore keys that are null.

Typical production shapes

Scenario A — Meta ad (Instagram / Facebook)

{
"adIds": {
"fbclid": "IwAR2xK9aBc123xyz456_ExampleString_789",
"gclid": null,
"gbraid": null,
"wbraid": null,
"ttclid": null
}
}

Scenario B — Google Search ad on iPhone (web)

{
"adIds": {
"fbclid": null,
"gclid": null,
"gbraid": null,
"wbraid": "ClgKCQjwhO3DBhDaARJHAPBAqMmEZWE7Gt_zJEt",
"ttclid": null
}
}
note

The full example payload below shows every adIds key populated for complete schema reference. In live traffic, only one key will be non-null at a time.

Example payload

{
"eventId": "80622c49-42c2-49d4-b21a-f529450f7da4",
"eventType": "conversion.created",
"schemaVersion": 1,
"timestamp": "2026-04-29T13:05:45.450781",
"payload": {
"eventId": "0a0d8a75-677a-4688-9de5-f6335a8e8107",
"timestamp": "2026-04-29T13:05:45.430000",
"customerId": "CUST1017",
"eventName": "purchase",
"revenueMinor": 11,
"currency": "USD",
"originalRevenueMinor": 1900,
"originalCurrency": "JPY",
"productId": "PROD4567",
"transactionId": "TRNX8902W283779i",
"attribution": {
"shortUrl": "zeustechnology.trycleansify.com/profileManager",
"utmSource": "pmgatishakti",
"utmMedium": "official-website",
"utmCampaign": "national-master-plan-gati-shakti",
"firstTouchLink": "zeustechnology.trycleansify.com/profileManager",
"lastTouchLink": "zeustechnology.trycleansify.com/profileManager"
},
"country": "India",
"city": "Bhilai",
"platform": "mobile",
"adIds": {
"fbclid": "IwY2xjawR9OhlleHRuA2FlbQIxMQBzcnRjBmFwcF9pZAwzNTA2ODU1MzE3MjgAAR7PIdCfTw5a8i37AfDaVlZLvWaMdJwQEr75JEPtbfWcTrnPaUu7Tpj_3OvS-A_aem_0FItaF20o94lSQX6izgv5g",
"gclid": "EAIaIQobChMIu_v0r_f9_wIVh7LICh0wQQT_EAAYASAAEgK_v_D_BwE",
"gbraid": "0AAAAACZGY6vERiXMMTJYoB2VG86-qHLmR",
"wbraid": "ClgKCQjwhO3DBhDaARJHAPBAqMmEZWE7Gt_zJEt",
"ttclid": "1766471830193154_1_726359051_1"
}
}
}

Notes

  • Interpret revenueMinor together with currency using your billing conventions (minor units typically mean cents for USD, whole yen for JPY, etc. — confirm with product/accounting).
  • Root eventId / timestamp identify the webhook delivery; inner payload.eventId / payload.timestamp identify the business conversion event.