Traffic Sources
How to configure Tracker Sources, map ad platform macros, and generate clean campaign tracking URLs in Axalot.
What a Traffic Source does
A Traffic Source is a reusable tracking profile for an ad platform or traffic network. It tells Axalot which query parameters should be added to campaign links and which source macros should be stored in those parameters.
One source, many campaigns
Create a source once, then reuse it when building campaign links.
Clean macro mapping
Keep platform macros in one place instead of editing every campaign URL by hand.
Consistent reports
Use the same fields for campaign id, creative id, click id, cost, and custom sub values.
Current Axalot behavior
Source parameters are used by the campaign URL builder. Source-level S2S postback storage is visible in the UI but remains read-only until the API supports it.
Where to configure it
Console / Tracker / SourcesConsole / Tracker / New SourceConsole / Tracker / Parameters tab
Source structure
Use the General tab for the source name, active state, cost model, and optional preset.
Recommended naming format:
[Platform] - [Vertical] - [Geo or segment]
Meta - Casino - FR
Google UAC - Apps - Tier1
TikTok - Betting - UKUse the Parameters tab to define the URL contract. Every row has a Axalot field, a GET parameter name, and a placeholder or value.
Axalot field: ext_click_id
GET Param Name: ext_click_id
Placeholder/value: {fbclid}When a campaign uses this source, Axalot appends every filled parameter value to the campaign URL.
https://example.com/TRACK_ID?ext_click_id={fbclid}&ad_campaign_id={{campaign.id}}How mapping works
Pick a Traffic Source in the campaign form.
Axalot reads the source parameter values.
For each filled value, Axalot writes the configured GET parameter name into the generated URL.
Empty values are skipped, so the final tracking link stays clean.
const parameterName = trafficSource.parameter_names[field]?.trim() || defaultName;
if (value) params.set(parameterName, value);Do not rename parameters casually
Campaign-entry storage uses canonical GET names such as ext_click_id, ad_campaign_id, creative_id, utm_*, and sub1-sub10.
Put platform macros like {fbclid}, {gclid}, or {ttclid} in the value field, not in the GET parameter name, when the value must appear in Tracker reports.
Common platform mappings
Use these examples as starting points. Keep GET parameter names canonical and put platform macros in the value.
| Axalot field | GET Param Name | Placeholder or value |
|---|---|---|
ext_click_id | ext_click_id | {fbclid} |
source | utm_source | {{site_source_name}} |
ad_campaign_id | ad_campaign_id | {{campaign.id}} |
creative_id | creative_id | {{ad.id}} |
sub_1 | sub1 | {{placement}} |
sub_2 | sub2 | {{adset.id}} |
| Axalot field | GET Param Name | Placeholder or value |
|---|---|---|
ext_click_id | ext_click_id | {gclid} |
ad_campaign_id | ad_campaign_id | {campaignid} |
creative_id | creative_id | {creative} |
keyword | utm_term | {keyword} |
sub_1 | sub1 | {adposition} |
sub_2 | sub2 | {network} |
| Axalot field | GET Param Name | Placeholder or value |
|---|---|---|
ext_click_id | ext_click_id | __CLICKID__ |
ad_campaign_id | ad_campaign_id | __CAMPAIGN_ID__ |
creative_id | creative_id | __CID__ |
sub_1 | sub1 | __CAMPAIGN_NAME__ |
sub_2 | sub2 | __AID_NAME__ |
sub_3 | sub3 | __AID__ |
Presets
When a preset is available in the New Source dialog, use it as the starting point. Axalot copies the preset parameter names and placeholders into the source form, then you can edit them before saving.
Best use for presets
Start from a preset for the platform, then remove unused sub parameters and adjust macros for the exact account or campaign setup.
Cost tracking
Use cost and currency when the source can pass click cost directly in the URL.
cost={cost_macro}¤cy=USDFor Meta spend imported into the META area, keep campaign, ad set, and ad identifiers consistent across source parameters and ad links. Without a shared id, spend can still exist in Meta reports but cannot be reliably compared with tracker-side campaign traffic.
Launch checklist
Create or select the Traffic Source in Tracker -> Sources.
Fill ext_click_id when the platform provides a click id.
Map campaign and creative identifiers to stable fields such as ad_campaign_id, creative_id, or sub_1 through sub_10.
Save the source, then select it in the campaign form.
Copy the generated campaign link and paste it into the ad platform.
Open the final URL once with test values and confirm that the expected query parameters are present.
Troubleshooting
| Problem | What to check |
|---|---|
| Parameter is missing from the generated link | The Placeholder or value field is empty. Empty values are skipped. |
| A source click id is not saved | Use ext_click_id as the GET Param Name. Put {fbclid}, {gclid}, __CLICKID__, or another platform macro in the value field. |
| Reports are hard to group | Map platform campaign and creative ids into stable fields instead of random sub slots. |
| Cost is empty | Confirm the traffic source can pass a cost macro, or enter a static cost value only when that matches the buying model. |
| A preset looks close but not exact | Apply it, then edit the fields before saving the source. |