Custom Integration Params
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:
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 | value, commission, amount, revenue, total, total_value, event_value | string or number | — | The monetary value of the conversion. |
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 infers the event from the conversion value.
| 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. AnyTrack sends an already-hashed value as it is, so pre-hashing puts normalization and standardization on you. 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": "f8e3bf8dfba8b51ce3340", "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=f8e3bf8dfba8b51ce3340&conversion_type=purchase&value=120¤cy=USD&transaction_id=24356562534585Custom Integration Parameters FAQ
FAQ was last reviewed on 2026-09-10
Which parameter names does the Custom Integration accept for revenue?
value, commission, amount, revenue, total, total_value, or event_value. AnyTrack reads the first one it finds. 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. 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.