Tracking templates
Owner: media buying, per platform. Status: the parameters below are captured since plan 33; the click ids since plan 02 and 33.
Every paid click should land with two kinds of parameter in its URL: the platform’s click id, which is what lets Stitch send the conversion back to the platform that paid for the click, and the ad ids, which say which campaign, ad set, ad and keyword the click came from in a form nothing strips.
Why both
Section titled “Why both”Apple’s Link Tracking Protection removes gclid, fbclid, msclkid,
dclid, twclid, mc_eid and igshid from links opened in Safari Private
Browsing, Mail and Messages. It leaves every other parameter alone. A visit
that arrives without its click id is still attributed in Stitch when the ad
ids are there (and, for Google and Meta, the conversion can still be matched
on a hashed email); without them it is “Paid Search” with no campaign, or
nothing at all. Ad blockers do the same to the click id and never to a plain
parameter.
Stitch classifies the visit from the click id and the UTMs, stores the ad ids beside the click ids on every event, and will read them for ad-level reporting in a later plan. Nothing here is sent back to a platform.
Google Ads
Section titled “Google Ads”Set the final URL suffix at the account level:
utm_source=google&utm_medium=cpc&utm_campaign={_campaign}&utm_term={keyword}&campaignid={campaignid}&adgroupid={adgroupid}&creative={creative}&keyword={keyword}&matchtype={matchtype}&network={network}&device={device}and on every campaign, a custom parameter {_campaign} whose value is
the campaign’s name under the naming convention (campaign settings →
Campaign URL options → Custom parameters; up to 8 per level, names of up to
16 characters, values of up to 250). ValueTrack has no parameter for the
campaign name, only {campaignid}, and utm_campaign is what the naming
convention and brand detection read: a numeric id there makes every Google
click non_brand, so brand search acquires and the brand exclusion never
fires, and makes every retargeting campaign a discovery visit. utm_term
carries the matched keyword for the same reason; keyword= is stored as an
ad id and read by no rule. campaignid beside the name is the id that
survives a rename.
Google adds gclid (or gbraid/wbraid from iOS) itself; leave
auto-tagging on.
In each ad’s URL parameters field:
utm_source=facebook&utm_medium=paid_social&utm_campaign={{campaign.name}}&campaign_id={{campaign.id}}&adset_id={{adset.id}}&ad_id={{ad.id}}&placement={{placement}}&site_source_name={{site_source_name}}Meta adds fbclid itself. The pixel’s _fbp and _fbc cookies are read by
the Stitch SDK when the pixel is on the page.
Taboola
Section titled “Taboola”In the campaign’s tracking section:
utm_source=taboola&utm_medium=paid_native&utm_campaign={campaign_name}&tblci={click_id}Taboola warns never to alter {click_id}; without it no conversion can be
reported back.
Outbrain
Section titled “Outbrain”utm_source=outbrain&utm_medium=paid_native&utm_campaign={{campaign_name}}&dicbo={{ob_click_id}}Outbrain’s help page does not name the landing-page parameter; dicbo is
what it appends in the wild, and Stitch reads obclid too. Confirm from a
live click.
Microsoft Ads
Section titled “Microsoft Ads”utm_source=bing&utm_medium=cpc&utm_campaign={_campaign}&utm_term={keyword:default}&campaignid={CampaignId}&adgroupid={AdGroupId}&keyword={keyword:default}&matchtype={MatchType}&network={Network}&device={Device}with the same campaign-level custom parameter {_campaign} as Google’s
(Microsoft accepts up to 8 per campaign, ad group or ad), for the same reason.
Microsoft adds msclkid itself with auto-tagging on.
What Stitch reads
Section titled “What Stitch reads”| Parameter | Captured as | Used by |
|---|---|---|
gclid, gbraid, wbraid, msclkid | click_ids | Paid Search rule; Google and Microsoft conversion match |
fbclid, ttclid, li_fat_id, twclid, epik | click_ids | Paid Social rule; Meta, TikTok and LinkedIn conversion match |
tblci, dicbo, obclid | click_ids | Paid Native rule; Taboola and Outbrain conversion match |
utm_source, utm_medium, utm_campaign, utm_content, utm_term | the session’s source, medium, campaign, term | every channel rule after the click ids; the campaign naming convention reads utm_campaign, brand detection reads it and utm_term |
campaignid, adgroupid, creative, keyword, matchtype, network, device, placement, campaign_id, adset_id, ad_id, site_source_name, utm_id | ad_params | stored on every event; ad-level reporting later |
Everything in the table is stripped from the URL Stitch stores as the page, so two visits to one page with different ad ids are the same page.