Custom Integration Parameters
Look up every parameter the AnyTrack Custom Integration endpoint accepts, including accepted aliases for click_id and value, the conversion_type to event mapping, the items array, customer traits, and xat_ passthrough parameters.
This page is a complete reference for the parameters the AnyTrack Custom Integration endpoint accepts in a postback or webhook payload.
If you want to learn how to set up the integration, see Postback URL Integration. If you want to decide whether a custom integration is the right approach, see Is a Custom Integration Right for You?. For the full list of event attributes across all of AnyTrack, see Event Attributes. The name matching rules on this page apply to the Custom Integration endpoint only.
How the Endpoint Reads Parameters
Section titled “How the Endpoint Reads Parameters”When you install a Custom Integration, AnyTrack gives you an endpoint URL. Your platform sends conversions to it as query parameters or a JSON body:
https://t1.anytrack.io/<account-id>/collect/<integration-slug>Parameter name matching
Section titled “Parameter name matching”Two rules apply. Which rule applies depends on the parameter group.
| Parameter group | How the name is matched |
|---|---|
Core conversion fields: click_id, ref_id, value, currency, event_name, transaction_id, brand_name, timestamp, items, and the fields inside items | Case is ignored. Underscores and hyphens are stripped. click_id, clickid, click-id, and ClickId all resolve to click_id. |
Customer traits, conversion_type, and xat_ passthrough parameters | Exact. Send the name exactly as it is listed in its section. Where a section lists two spellings, such as first_name and firstName, both spellings work. |
Parameter value matching
Section titled “Parameter value matching”Values follow their own rules:
click_id— The value is case-sensitive. Send the Click ID exactly as AnyTrack generated it. A Click ID that a system changed to lowercase, uppercase, or title case does not match its session, and the conversion is not attributed. The name rule above applies to the parameter name only, not to its value.conversion_type— AnyTrack ignores the case of the value.Purchaseandpurchaseboth map to thePurchaseevent.event_name— AnyTrack trims the whitespace and keeps the case you send.- Customer traits — Send raw values. AnyTrack normalizes and hashes each value for the ad platform.
Identity Parameters
Section titled “Identity Parameters”Every payload must include at least one of these so AnyTrack can match the conversion to the original click. If none are present, the conversion is rejected with a “Missing click_id, ref_id and email” error.
| Parameter | Accepted names | Type | Description |
|---|---|---|---|
click_id | click_id, clickid, click | string | The AnyTrack click ID stored against the visitor session. The primary, recommended match key. |
ref_id | ref_id, refid, ref | string | An external identifier used as an alternative to click_id. See External ID as Click ID. |
email | email | string | Used as a fallback match key when neither click_id nor ref_id is present. |
Conversion Value
Section titled “Conversion Value”| Parameter | Accepted names | Type | Default | Description |
|---|---|---|---|---|
value | commission, event_value, value, revenue, amount, total, total_value | string or number | — | The monetary value of the conversion. If the payload has more than one of these names, AnyTrack uses the first one in this list. |
currency | currency, cur, curr | string | Property currency | Three-letter currency code (for example, USD). Defaults to the property default currency when omitted. |
Event Classification
Section titled “Event Classification”AnyTrack decides which event the conversion becomes from three inputs, in this order of priority:
event_name— if present, the conversion is recorded as a custom event with this exact name.conversion_type— if present (andevent_nameis not), it is mapped to a standard event using the table below.- Automatic — if neither is sent, AnyTrack records a
Purchasewhencommissionis greater than 0, and aLeadotherwise.
| Parameter | Accepted names | Type | Description |
|---|---|---|---|
event_name | event_name, eventname, event | string | A custom event name. Overrides conversion_type. Whitespace is trimmed. |
conversion_type | conversion_type | string | A standard conversion type. Matched against the values in the mapping table below. |
conversion_type to Event Mapping
Section titled “conversion_type to Event Mapping”The name conversion_type must match exactly. The value is matched case-insensitively against this list:
conversion_type value | Resulting AnyTrack event |
|---|---|
click, outbound_click, outboundclick | OutboundClick |
form_submit, formsubmit | FormSubmit |
lead, cpl | Lead |
registration, complete_registration, completeregistration, acquisition, cpa | CompleteRegistration |
purchase, sale, cps | Purchase |
Transaction and Timing
Section titled “Transaction and Timing”| Parameter | Accepted names | Type | Default | Description |
|---|---|---|---|---|
transaction_id | transaction_id, transactionid, transaction | string or number | — | Unique conversion identifier. Used for deduplication. |
brand_name | brand_name, brandname, brand | string | — | The product or brand name associated with the conversion. |
timestamp | timestamp, time, date, datetime, created_at | string or number | Time received | A timestamp in seconds that replaces the time AnyTrack received the event. |
Customer Traits
Section titled “Customer Traits”Customer traits raise Event Match Quality. Send raw values: AnyTrack then normalizes and hashes them for each ad platform. On Meta and Google Ads, AnyTrack sends an already-hashed value as it is, so pre-hashing puts normalization and standardization on you. Known issue: TikTok and ChatGPT Ads hash a pre-hashed value again, and Microsoft Ads drops a pre-hashed email, so these platforms cannot match it. These names are matched exactly as written. Case matters here, so first_name and firstName both work, but firstname does not.
| Parameter | Accepted names | Type | Notes |
|---|---|---|---|
email | email | string | Also acts as an identity fallback (see Identity Parameters). |
first_name | first_name, firstName | string | |
last_name | last_name, lastName | string | |
full_name | full_name, fullName, name | string | Fills first and last name when sent on its own. |
phone | phone | string | Include country and area code. |
birthdate | birthdate | string | For example, 1991-05-26. |
city | city | string | |
state | state | string | Two-letter state or province code. |
zipcode | zipcode | string | Zip or postal code. |
country | country | string | Two-letter country code recommended. |
Items Array
Section titled “Items Array”For eCommerce conversions, send an items array (also accepted as line_items or products). Each object in the array accepts these fields:
| Field | Accepted names | Type | Description |
|---|---|---|---|
id | id, product_id, item_id | string | The item or SKU identifier. |
name | name, title, label, product_name, item_name | string | The item name. |
variant | variant, variant_id, product_variant, item_variant | string | The item variant. |
price | price, product_price, item_price | number | The item price. |
quantity | qty, quantity, product_quantity, item_quantity | number | Number of units. |
Passthrough Parameters
Section titled “Passthrough Parameters”Any parameter whose name starts with xat_ is stored on the conversion as a passthrough value, with the xat_ prefix removed. For example, xat_plan=gold is stored as plan=gold. Use these to carry your own custom data through to AnyTrack.
Limits and Defaults
Section titled “Limits and Defaults”- Match key — At least one of
click_id,ref_id, oremailis required. Missing all three rejects the conversion. - Name matching — Core conversion field names ignore case and strip underscores and hyphens. Customer trait,
conversion_type, andxat_names must match exactly. - Value matching —
conversion_typevalues are case-insensitive.event_namekeeps the case you send. - Currency — Defaults to the property default currency when
currencyis omitted. - Timestamp — Defaults to the time AnyTrack receives the conversion when
timestampis omitted. - Passthrough parameters — Maximum 5 (
xat_prefix). Extra parameters beyond 5 are dropped. - Unknown conversion_type — Rejected unless
event_nameis also sent.
Example
Section titled “Example”A Purchase sent as a JSON payload with identity, value, traits, and items:
{ "click_id": "IBTO9lOfAMybrKiiB1U9YG91IFjs3Dv9AV", "conversion_type": "purchase", "value": 120.00, "currency": "USD", "transaction_id": "24356562534585", "brand_name": "Acme", "email": "jsmith@example.com", "full_name": "John Smith", "country": "US", "state": "CA", "zipcode": "94025", "items": [ { "id": "20291", "name": "ZX Series Headphones", "quantity": 1, "price": 20.00 }, { "id": "49292", "name": "Audio Connector", "quantity": 1, "price": 100.00 } ], "xat_plan": "gold"}The same conversion as a query string:
https://t1.anytrack.io/<account-id>/collect/<integration-slug>?click_id=IBTO9lOfAMybrKiiB1U9YG91IFjs3Dv9AV&conversion_type=purchase&value=120¤cy=USD&transaction_id=24356562534585Responses
Section titled “Responses”The endpoint answers every request with an HTTP status code. AnyTrack sends the response before it validates the request and matches the Click ID. A 200 response does not prove that tracking works.
| Response | Meaning |
|---|---|
200 with a JSON body that has the fields nid, iid, and receivedAt | AnyTrack received the request. nid is the Account ID. iid is the integration name. AnyTrack validates and matches the request after it sends this response. Errors show in the Events Log tab of the integration. |
200 with the body null | The request had no body and no query parameters. AnyTrack recorded nothing. |
400 | AnyTrack cannot parse the JSON body. A missing field does not return 400. |
403 | The integration or its property is not active. |
404 | The Account ID or the integration name is wrong. |
413 | The body is larger than 1 MB. |
5xx | AnyTrack had a server error. Retry the request. |
Retry a request after a 5xx response, or after a connection failure or timeout when your platform gets no status code. A retry of a 400, 403, 404, or 413 response fails until you fix the cause.
Custom Integration Parameters FAQ
FAQ was last reviewed on 2026-11-13
Which parameter names does the Custom Integration accept for revenue?
commission, event_value, value, revenue, amount, total, or total_value. If the payload has more than one of these names, AnyTrack uses the first one in this list. For the most predictable results, pick one name and use it consistently across all your conversions.Do parameter names need to match the exact case?
click_id, value, and transaction_id, case is ignored and underscores or hyphens are stripped, so click_id, clickid, and click-id all reach the same field. This rule applies to the parameter name only. The Click ID value is case-sensitive: send it exactly as AnyTrack generated it. The names of customer traits, conversion_type, and xat_ passthrough parameters are matched exactly, so send them as they are listed on this page. Parameter values follow a separate rule: conversion_type values are matched case-insensitively, so Purchase and purchase both map to the Purchase event, while event_name keeps the case you send.What happens if I send a conversion_type that is not on the list?
event_name. Use one of the documented values such as purchase, lead, or cpa, or send event_name to record a custom event with any name you choose.Can I send a conversion without a click_id?
ref_id or an email instead. AnyTrack uses one of these three values to match the conversion to a session. The click_id gives the most reliable attribution, so use it when you can. See External ID as Click ID for the alternative match key.How many passthrough parameters can I send?
xat_ are stored on the conversion, with the prefix removed (for example, xat_plan becomes plan). Only parameters with a non-empty value count. If you send more than 5, the first 5 are kept and the rest are dropped. This limit may change.Decide whether to build a custom integration before you start.