Tracking Template Teardown: Reading a Competitor URL
A tracking template tells you which tracker sits behind the click, which traffic source fed it, and which campaign fields the operator decided to expose. Read the URL before you load the page, and you get the routing logic first.
8,226+
Videos & Ads
+50-100
Fresh Daily
$29.90
Per Month
Full Access
12.5 TB database · 72+ niches · 10 min read
A tracking template teardown reads the redirect URL before the page loads and tells you which tracker sits behind it, which traffic source fed it, which campaign and creative IDs it carries, and whether the operator is hiding inside generic subs. You are not decoding the offer page yet. You are reading the control plane.
What is a tracking template and why is it visible?
A tracking template is the tracker-side URL, not the UTM string. In Google Ads, tracking templates are URL parameters that sit in the click path, and Google describes ValueTrack as the layer that fills those parameters at click time; Google also says custom parameters let you pass advertiser-defined values into that same path. That makes the template visible in the request chain, browser history, redirect hops, and page-source references whenever an ad sends traffic through a tracker.
That is the whole point. The click has to carry context somewhere, and the tracker usually wants it before the landing page or offer resolves. If you can copy the outbound URL, inspect the network log, or catch the first hop, you can read the structure without touching the page body. In practice, that means the visible artifact is not the ad copy. It is the plumbing that the ad copy triggers.
Google's own docs are explicit that ValueTrack parameters live in the tracking template and are replaced after the click, while custom parameters can inject advertiser-defined values into the URL path: Google Ads ValueTrack parameters and Google Ads custom parameters.
Which macros identify the traffic source and placement?
The source usually shows up in the parameter name, not the number. In tracker docs, Keitaro names campaign fields directly: ad_campaign_id, creative_id, external_id, source, and sub_id_1 to sub_id_30. If you see source or a publisher-style value that stays stable inside one buy but changes across buys, you are looking at the traffic source or placement, not the offer.
Placement tends to be the field that changes inside the same campaign while the campaign ID stays fixed. A Facebook feed placement, a native widget, or a publisher site usually lands in a source or sub field. Creative is the ad unit itself. Campaign is the budget bucket above it. Those roles matter more than the exact label, because operators rename them all the time. The role survives the alias.
Keitaro's campaign-parameter docs are useful here because they map the common meanings cleanly: ad_campaign_id for the advertising campaign, creative_id for the banner or ad set, and source for site or publisher ID. That gives you a documented baseline for reading a competitor URL rather than guessing at the names: Keitaro campaign parameters.
How do you read campaign, adset and creative IDs from a URL?
Campaign ID tells you which buying bucket the operator is scaling. Adset or ad group ID tells you the traffic container below it. Creative ID tells you which exact ad, banner, or image carried the click. If those three fields are all present, you can usually separate budget structure from creative rotation in a single pass.
A clean read looks like this: ...?ad_campaign_id=48219&creative_id=77104&source=feed_17&sub_id_1=nutra_red_07. Here, 48219 is the campaign, 77104 is the creative, feed_17 is the placement or publisher label, and nutra_red_07 is a custom tag that the operator chose for reporting. The value itself matters less than the pattern of stability. If campaign stays fixed while creative and source rotate, the operator is testing inventory. If creative stays fixed while only source changes, the operator is buying the same ad across multiple placements.
Google's custom-parameter docs matter because they confirm that advertisers can inject their own values at multiple levels and let those values flow through the template. That is how a URL gets enough structure to expose adset, creative, or campaign granularity without any page load at all.
What does the parameter order reveal about the tracker in use?
Order leaks the tracker because operators rarely rebuild templates by hand. They paste the preset, keep the vendor sequence, and rename a few fields later. If the URL starts with tracker-specific routing fields and then drops into campaign, creative, source, and sub IDs in the same rhythm the vendor docs use, you are probably looking at a tracker template, not a random landing page URL. Clean structure is a fingerprint.
| Order signal | What it usually means | Why it matters |
|---|---|---|
_lp=1 and _token= | Tracker-internal offer hop, common in Keitaro | You are not on the final offer yet |
ad_campaign_id before creative_id | Preset campaign fields exported from the tracker UI | Shows the operator did not handcraft the string |
source or publisher-style field near the front | Traffic source or placement metadata | Lets you separate publisher from ad unit |
sub_id_1 to sub_id_30 | Generic reporting bins | Often renamed later, but the order still gives away the template style |
If you know the order, you can often name the tracker family before you know the offer. That is useful because the tracker family tells you how much of the URL is structural and how much is cosmetic. Keitaro's parameter docs give one clear example of that sequence, and Google's tracking-template docs show the same principle from the platform side: a preset path with values filled in later, not a page URL with a few tags stapled on.
Which fields are noise and which carry real intelligence?
Noise is any field that never changes routing, never stitches a conversion, and never reaches a report. Real intelligence is the set of values that survive into postbacks, redirects, and reports: campaign ID, creative ID, source or placement, offer ID, lander ID, and any custom variable that the operator keeps mapped across clicks. If a field looks important but you cannot see it affecting a hop, treat it as decoration until you prove otherwise.
| Field | Signal value | Often noise when |
|---|---|---|
utm_source, utm_medium, utm_campaign | Helpful for analytics hygiene | No tracker mapping exists downstream |
campaign_id | Budget bucket | The same number repeats with no creative variation |
creative_id | Ad or banner identity | It never changes across ad tests |
source | Publisher or placement | It is hardcoded to a platform name and nothing else |
offer_id | Backend offer slot | It only appears in an internal hop and never in the public ad URL |
The Meta Ad Library is better for timing than for teardown. Meta says the library shows ads that are currently active across Meta products, while only certain issue, election, and political ads get the longer retention treatment. That means the library is good for spotting live creative themes, pacing, and whether an advertiser is still spending. It is weak as a full funnel map, especially in regulated niches where decoys and alternates are common. Use it to see what is live now, not to infer the whole stack: Meta Ad Library Help.
That is the distinction. The library is a timing layer, not a forensic layer. It tells you whether the advertiser is active and what angle they are showing today. It does not tell you which backend tracker, redirect logic, or postback chain sits behind the click.
How do operators obfuscate templates and how do you spot it?
Operators hide the meaning, not the structure. They swap semantic names for generic subs, URL-encode nested redirects, split values across multiple hops, and push different branches based on IP, user agent, or a cloaking rule. In regulated niches, automated spy tools often miss that because they fetch from datacenter IPs and never trigger the same branch a normal mobile click would see. Manual clicks still matter.
You can spot obfuscation by comparing multiple clicks. If the front of the URL stays stable while only the back half changes, you are probably looking at an alias system. If every click produces the same tracker domain but different sub values, that suggests a preset template with reporting bins, not a fully custom string. If the URL suddenly switches from readable names to random tokens after the first hop, the operator is likely hiding the final destination behind an internal redirect or an offer router.
Three practical tells show up again and again:
- Generic field names like
sub1,var1, orp1that never get renamed in public. - Stable routing fields paired with rotating source labels, which usually means the tracker is doing the real work.
- Encoded redirect blobs, which are designed to keep the final offer or landing page out of plain view.
Obfuscation works best when you only inspect one click. It gets weaker when you compare two or three clicks from different placements, devices, or geos. The structure starts to repeat. That is the signal.
What does a full teardown look like on a live nutra funnel?
Here is a sanitized reconstruction of a live-style nutra chain. On the ad click, you might see https://trk.example.net/click?ad_campaign_id=771992&creative_id=184433&source=feed_17&sub_id_1=nutra_red_07. On the lander-to-offer hop, you might then see https://trk.example.net/?_lp=1&_token=9f3a7c...&offer_id=54&sub_id_1=nutra_red_07. That is enough to tear the funnel apart without loading the page body.
The first URL tells you the buy structure. The second tells you the tracker is managing the offer transition internally. If ad_campaign_id and creative_id stay fixed while source changes, the operator is testing placements under one creative. If offer_id stays fixed across multiple creative rotations, the offer is not the experiment. The creative is.
That is the read you want. A full teardown is not a vague guess about the niche. It is a map of what changed, what stayed stable, and which fields the operator thought were safe to expose. Save the raw URL, the decoded URL, and one screenshot of the visible page. That gives you the structure, the source, and the page context in one file.
Track the hop. Do not trust the page.
FAQ
Is a tracking template the same as a UTM string? No. A UTM string tags analytics, while a tracking template routes the click and often carries tracker macros, source IDs, and internal hops. If you see clickid, campaign_id, creative_id, or _token, you are reading tracker plumbing, not just attribution tags.
What field gives the fastest read? Campaign ID usually gives the fastest read. It tells you which spend bucket the operator is running, and when you pair it with creative and placement IDs you can see whether they are testing angles or just rotating inventory. On its own, it is useful but incomplete.
Can the Meta Ad Library show the full funnel? No. It usually cannot. Meta's help page says the library shows active ads for most advertisers, while the longer archive applies to special categories. Use it to see live creative themes and cadence, then confirm the redirect chain somewhere else.
How many clicks do you need to trust a read? Two are enough to spot template structure. Three are enough to see whether the operator swaps creative, placement, or campaign fields independently. Past that, you are usually confirming repetition, not learning new syntax.
What should you save when you see a strong template? Save the raw URL, the decoded URL, the hop count, and a screenshot of the source page. That gives you the macro names, the parameter order, and the visible offer context in one file. You can compare future clicks against it without guessing.
Frequently asked questions
Is a tracking template the same as a UTM string?
No. A UTM string tags analytics, while a tracking template routes the click and often carries tracker macros, source IDs, and internal hops. If you see clickid, campaign_id, creative_id, or _token, you are reading tracker plumbing, not just attribution tags.
What field gives the fastest read?
Campaign ID usually gives the fastest read. It tells you which spend bucket the operator is running, and when you pair it with creative and placement IDs you can see whether they are testing angles or just rotating inventory. On its own, it is useful but incomplete.
Can the Meta Ad Library show the full funnel?
No. It usually cannot. Meta's help page says the library shows active ads for most advertisers, while the longer archive applies to special categories. Use it to see live creative themes and cadence, then confirm the redirect chain somewhere else.
How many clicks do you need to trust a read?
Two are enough to spot template structure. Three are enough to see whether the operator swaps creative, placement, or campaign fields independently. Past that, you are usually confirming repetition, not learning new syntax.
What should you save when you see a strong template?
Save the raw URL, the decoded URL, the hop count, and a screenshot of the source page. That gives you the macro names, the parameter order, and the visible offer context in one file. You can compare future clicks against it without guessing.
Comments(0)
No comments yet. Members, start the conversation below.
Related reads
- DISad spy intelligence
US vs UK vs Australia: Where to Run English Offers
The US usually pays the most, but it also charges the most to reach. The UK is often the cleaner first English Tier-1 for compliance-heavy angles, while Australia tends to lag US creative trends and can be useful for a second-wave rollout.
Read - DISad spy intelligence
Parasite Cleanse Offers: Inside the 2026 Detox Ad Wave
Parasite cleanse offers are scaling as direct-response pages built on shock hooks, fast claims, and simple supplement stacks. The winners are not the loudest brand names; they are the offers that can survive platform review long enough to buy cheap traffic and convert on fear.
Read - DISad spy intelligence
How to Spot a Scam Offer From Its Funnel Structure
You spot a scam offer by reading the funnel, not the pitch. Hidden continuity billing, dead support, fabricated review pages, and a checkout that changes by visitor type are the structure to watch; when those pieces line up, the offer is high risk even if the ad looks clean.
Read