Traffic Sources best practices
Recommended Traffic Source setup rules for Axalot: names, parameters, macros, campaign links, filters, and QA.
Goal
A Traffic Source is the URL contract between an ad platform and Axalot. Set it up once, then reuse it across campaigns that receive the same kind of traffic.
Stable links
Campaign URLs use predictable GET parameter names.
Clean reports
Cost, currency, campaign, creative, keyword, UTM, and sub values land in the right fields.
Reusable routing
Stream filters can route by mapped source parameters.
Lower QA cost
One source mapping can be tested once and reused many times.
Console path
Console / Tracker / SourcesConsole / Tracker / Create SourceConsole / Tracker / Edit Source
Naming
Use names that describe the platform and macro style.
| Good | Avoid |
|---|---|
Facebook - standard macros | fb |
Google Ads - search | source 1 |
TikTok - buyer A | test |
Push Network - CPC | new source |
Keep separate Traffic Sources when platforms use different macro syntax or when one buyer/account has a different URL contract.
Parameter names vs values
Every tracking field has two parts:
| Part | Meaning | Example |
|---|---|---|
| Parameter name | GET key added to the campaign URL. | creative_id |
| Parameter value | Static value or ad platform macro placed into that key. | {creative.id} |
https://track.example.com/abc123?creative_id={creative.id}&sub1={adset.id}Do not swap names and values
creative_id is the parameter name. The ad platform macro belongs in the value field.
Recommended field mapping
| Axalot field | Use for | Default GET name |
|---|---|---|
cost | Click or spend value. | cost |
currency | Currency code. | currency |
creative_id | Creative or ad id. | creative_id |
ad_campaign_id | Campaign id from the ad platform. | ad_campaign_id |
source | Network, placement, feed, or source label. | source |
keyword | Keyword or targeting term. | keyword |
ext_click_id | External click id. | ext_click_id |
utm_source | UTM source. | utm_source |
utm_campaign | UTM campaign. | utm_campaign |
utm_medium | UTM medium. | utm_medium |
utm_content | UTM content. | utm_content |
utm_term | UTM term. | utm_term |
sub1-sub10 | Custom dimensions. | sub1-sub10 |
Use standard fields first. Use sub1-sub10 only when the source value does not fit a named field.
Cost model
Choose the cost model that matches how spend should be interpreted.
| Cost model | Use when |
|---|---|
CPC | The platform sends click cost or you buy per click. |
CPM | Spend is impression-based or imported as media spend. |
CPA | Spend is action-based. |
Cost model should match campaign reporting expectations. Do not use a different model just because a template default selected it.
Custom parameter names
Use custom names only when the traffic platform requires them.
Keep creative_id as creative_id when the platform accepts that key. This keeps links and filters easy to read.
Rename creative_id to a platform-specific key only when the platform expects another name, for example cid.
When a campaign uses the source, Axalot appends only fields with filled values. Empty values are skipped.
Stream filter compatibility
Mapped source fields can be used later in campaign stream filters.
Traffic Source:
creative_id = {creative.id}
Campaign stream filter:
creative_id IS creative_123If a filter does not match, check the source first. Most mismatches come from a renamed parameter, empty macro value, or a value format that differs from the stream filter.
QA checklist
Create or select the Traffic Source.
Fill only parameters that the platform can actually send.
Save the source and select it in a campaign.
Save the campaign and copy the generated link.
Confirm the URL contains the expected GET parameter names and macro values.
Send a test click with realistic values and check Tracker reports.
Common mistakes
| Mistake | Result | Fix |
|---|---|---|
| Macro entered as parameter name | URL has unreadable or invalid keys. | Put macros into values, not names. |
| Empty value left on required field | Axalot skips that parameter in the campaign link. | Fill the value or remove the filter that depends on it. |
| Custom name differs from stream filter expectation | Source-parameter filters do not match. | Check the generated URL and selected Traffic Source. |
| Same source reused for a platform with different macros | Reports mix incompatible values. | Create a separate Traffic Source. |
sub fields used before named fields | Reports become harder to read. | Use named fields first. |