Attribution · Advertorials · Cross-domain

The cheapest paid traffic on the internet — if you can measure it.

Advertorials land on one domain. They convert on another. Privacy laws, ad blockers, and browser restrictions mean the ad platform never sees the conversion — so Smart Bidding can't optimize, and retargeting has no audience to chase.

AnyTrack closes the loop: stitches the click across domains, sends the conversion back to every ad platform server-side. The campaign starts compounding instead of bleeding.

14-day free trial  ·  No credit card required  ·  15-minute install

Advertorial traffic funnel with closed-loop attribution Three traffic sources — Google Ads, Taboola, and Meta — send paid traffic to an editorial advertorial page. A cross-domain handoff carries the click to a Shopify checkout where the purchase happens. AnyTrack's server-side layer then forwards the conversion back to each ad platform so retargeting and bid optimization actually work. Google Taboola Meta attributionsoftware.com ADVERTORIAL The 5 reasons your ads aren't converting — editorial image — Learn more → ?atclid cross-domain shop.example.com Shopify store — product — The Solution Bundle $49.00 Add to cart • Buy now conversion A AnyTrack · server-side atclid → original gclid · fbclid · ttclid → forwarded back CONVERSIONS BACK TO ADS via CAPI PAID TRAFFIC → EDITORIAL → CHECKOUT → CONVERSIONS BACK

Paid traffic lands on an editorial advertorial. The reader converts on a separate checkout. atclid carries the click across the boundary.

Why advertorials work — and why measurement kills most attempts

The opportunity
  • Cheap clicks. Informational queries ("how to fix knee pain") cost 80–90% less than commercial ones ("best knee brace").
  • Massive supply. 5–10× the search volume of commercial intent keywords in the same category.
  • Low competition. Most brands don't know how to convert education traffic, so the auctions are thin.
  • Trust as a leverage point. Editorial framing builds authority before the prospect ever sees a product page.
The trap
  • Multi-domain funnel. Advertorial on one domain, offer/checkout on another. Every cookie, every client_id, every captured gclid is scoped to a single domain.
  • Two independent identity graphs. The editorial domain has its own GA client_id / Meta _fbp / AnyTrack ID. The offer domain has its own. Neither knows about the other unless something stitches them.
  • Numbers look bad. Google Ads reports 0 conversions; you kill the campaign while it's actually profitable.
  • You think the traffic is bad. It isn't. The measurement is.

The actual conversion path

Multi-domain funnel — where most tracking quietly stops working
1. Click
Reader clicks a Google or Meta ad.
Platform click ID attached: ?gclid=…
2. Advertorial
Lands on attributionsoftware.com. The domain's own GA4, Meta Pixel, and AnyTrack tag fire.
Each writes its client_id in a first-party cookie. AnyTrack also stores the captured gclid / fbclid against its own ID.
3. Cross-domain hop
Clicks the CTA. Link to anytrack.io is decorated with one parameter: AnyTrack's own neutral click ID.
Platform IDs stay home. Only atclid crosses.
4. Convert
Signs up / buys on the offer domain — which runs its own GA4, Meta Pixel, AnyTrack tag.
Conversion event leaves the browser server-side, carrying atclid.
Each domain stays independent. The cross-domain hop carries one neutral identifier (atclid) — that's the only thing that needs to travel. AnyTrack's server keeps the mapping between atclid and the original platform click IDs. At conversion time, the server re-attaches the right gclid / fbclid / etc. before forwarding the event to each ad platform's API.
Why The four reasons your tracking doesn't actually work

It's not that something is "missing." It's that the data never gets there.

GA4 might log the conversion locally. But the ad platforms never see it — because the conversion happens on a different domain, after privacy laws, ad blockers, and browser restrictions have already stripped most of the connecting signal. Without that conversion arriving at Google Ads or Meta, Smart Bidding can't optimize and retargeting has no audience.

Privacy laws (GDPR, CCPA, ePrivacy)
Consent-required tracking means a slice of your visitors are never measured on the editorial side. Even those who consent on the advertorial may not be the same identity on the offer domain. Cookie-based attribution loses ~30% of conversions in consent-strict regions.
Ad blockers
uBlock, AdBlock, Brave's built-in shield, and DNS-level blockers (NextDNS, AdGuard) kill 25–40% of desktop pixel fires. The conversion happens, the pixel never reports it, the ad platform records zero. Smart Bidding starts optimizing toward the wrong audience.
Browser restrictions
Safari's ITP caps first-party cookies at 7 days and strips link decoration on cross-site nav. Firefox's Total Cookie Protection partitions cookies per top-level domain. Chrome's Privacy Sandbox is shutting down third-party cookies entirely. View-through windows have collapsed.
Lack of cross-domain data collection
Each domain runs its own GA4 client_id, its own Meta _fbp, its own captured gclid — and by design, none of those identifiers travel. The conversion fires on the offer domain with a fresh identity graph the ad platform has never seen before.
GA4 sees it. The ad platforms don't.
If both domains run the same GA4 property with cross-domain measurement, GA4's reports look right. But that internal stitching never makes it back to Google Ads as a conversion event with the original gclid. Your GA4 dashboard is fine. Your Smart Bidding still has no signal.
sGTM alone won't save you
Server-side GTM gives you the delivery layer (no ad blockers, first-party context). But if you haven't captured and persisted the click ID upstream, and you haven't stitched it across domains, sGTM has nothing meaningful to forward. It's necessary, not sufficient.

What you actually need

Six pieces. Each domain stays independent; one neutral ID stitches them.
1. Full tag stack on each domain
Advertorial domain runs its own GA4 property, its own Meta Pixel, its own AnyTrack tag. Offer domain runs its own GA4 property, its own Meta Pixel, its own AnyTrack tag. Domains don't share pixels — they're independent measurement instances that each report to the ad platforms directly.
2. Per-domain identity graph
Each domain maintains its own user identity: GA client_id, Meta _fbp, AnyTrack atclid. All scoped to that domain's first-party cookie. The advertorial-side identity graph also stores the captured platform click IDs (gclid, fbclid, etc.) on landing.
3. One neutral cross-domain ID
Outbound links to the offer domain carry exactly one parameter — AnyTrack's own click ID (atclid). The platform click IDs stay on the advertorial domain, mapped to atclid server-side. This is what bypasses ITP link decoration stripping: one neutral first-party identifier, not a cocktail of platform parameters.
4. Clickstream client-side
Page views, scroll depth, button clicks, outbound clicks — these all happen in the browser, fired by each domain's own tags. Cheap, fast, no server cost. Lost signal here just costs you analytics granularity, not attribution.
5. Conversions server-side
Lead / Purchase events leave the browser server-to-server, carrying atclid. AnyTrack's server uses the mapping to look up the original gclid / fbclid and forwards the conversion to Google Ads, Meta CAPI, TikTok Events API, etc. — each call signed with the right platform's click ID. No ad blockers, no ITP, no link stripping.
6. Deduplication keys
Each conversion gets a shared event ID used by both the in-browser pixel fire (if you keep one) and the server-side call. Platforms dedupe on it so the same sale isn't counted twice. Required by Meta CAPI, recommended by Google Enhanced Conversions.

Why server-side tracking is non-negotiable

Client-side tracking is losing 15–40% of conversions
  • Ad blockers kill pixel firing on roughly 25–40% of desktop traffic.
  • ITP / Safari caps first-party cookie lifetime at 7 days and strips link decoration on cross-site nav.
  • Firefox Total Cookie Protection partitions cookies per top-level domain.
  • Brave blocks most pixels by default.
  • iOS Mail Privacy Protection distorts attribution from email-driven journeys.
Server-side tracking sidesteps all of it
  • No browser involved at conversion time — your backend talks directly to ad platform APIs.
  • Survives ad blockers because the call originates from your server, not the user's browser.
  • Carries the original click ID server-to-server, intact, with no link-decoration to strip.
  • Recovers 10–15% of conversions on average (Google's own number for sGTM / Enhanced Conversions).
  • Feeds ad platform AI better data, so Smart Bidding and Advantage+ actually optimize toward real revenue.
How The architecture that closes the loop

How AnyTrack ties this together

Two independent domain stacks. One neutral ID across the boundary. Conversions leave server-side.
attributionsoftware.com (advertorial)
Tags installed independently on this domain:
GA4 — its own client_id, reports to its own property
Meta Pixel — its own _fbp / _fbc
AnyTrack tag — captures gclid / fbclid on landing, mints atclid
Identity graph stored in this domain's first-party cookies. Platform click IDs never leave this domain.
outbound link carries
?atclid=…
anytrack.io (offer / checkout)
Same kind of stack, fully independent:
GA4 — its own property, its own client_id
Meta Pixel — its own ID, its own cookies
AnyTrack tag — reads incoming atclid, stores it locally
Identity graph maintained independently. atclid is the only thread back to the advertorial-side identity.
conversion fires on offer domain → server-side relay
AnyTrack server-side layer
  • Receives the conversion server-to-server (no browser, no ad blocker, no ITP)
  • Uses atclid to look up the original platform click IDs from the advertorial-side identity graph
  • Forwards out to each ad platform's official server-side API:
  • Each call carries the right platform-specific click ID (gclid to Google, fbclid/_fbp to Meta, etc.)
  • Stamps a shared event ID so any client-side pixel fires get deduped
Clickstream stays client-side per domain (cheap, granular). Conversions leave server-side (durable, ad-blocker-proof). The cross-domain stitching is one neutral identifier — not a propagation of every platform's click ID.

The flywheel — what clean attribution unlocks

Tracking is the mechanic. The real win is what each ad platform does once it sees the conversions it was missing — and what your team does once it sees which audiences actually convert.

TRAFFIC IN
Taboola / Outbrain
Top of funnel · intent generation
Cheap clicks on educational queries. Highest volume, lowest commercial intent — readers come to learn. The advertorial's job is to create the intent.
Meta Ads
Mid funnel · retargeting + lookalikes
Once a reader is in your identity graph, Meta retargets them with follow-up creatives. Lookalikes off your converters expand reach to people who look like buyers.
Google Ads
Bottom funnel · retargeting + branded
Captures reader intent when they search again. Smart Bidding only works if conversions actually flow back — which is the whole point of the server-side stitch.
DATA OUT
Google Ads CAPI
Enhanced Conversions with the real gclid. Smart Bidding finally optimizes against revenue, not pixel fires.
Meta CAPI
Conversions API with deduped events feeds Advantage+ retargeting and powers lookalike audiences off real buyers.
GA4 → Custom audiences
Stitched session data lets you build segments — read advertorial but didn't buy, bought from Taboola — and export them to Google Ads.
Content & site
Compare conversion rate by traffic source, by advertorial, by audience segment. The data tells you which angles work — iterate on copy and landing pages with real signal.
The compounding loop: GA4 audiences feed back into Google Ads as custom audience targeting → improves your top-of-funnel CPC efficiency by biasing toward people who look like converters. Every conversion makes the next click cheaper.
What The product, concretely

What AnyTrack ships

AutoTag (cross-domain)
One tag installed on each domain. Captures all major click IDs, persists them in first-party cookies, decorates outbound links automatically. No manual link rewriting.
Server-side conversion API
Single endpoint receives your conversion event and fans it out to every connected ad platform via their official server-side APIs.
Native Google Ads integration
Enhanced Conversions for Leads / Web with full gclid propagation. Smart Bidding sees real revenue, not just on-page pixel fires.
Native Meta CAPI
Conversions API with deduplication against the browser pixel. Advantage+ optimizes on actual conversions instead of degraded signal.
Affiliate / network forwarding
Forward conversions to your affiliate network (ClickBank, Everflow, Tune, etc.) alongside ad platforms — no separate postback configuration.
First-party identity stitching
Cookieless / cross-device signals reconciled server-side. Conversion windows extend well past ITP's 7-day client-side cap.

The net effect

Your ad platform sees the conversions advertorial traffic is actually driving. Smart Bidding and Advantage+ start optimizing on real revenue instead of broken signal. The campaigns you used to kill at 0.3% measured CVR turn out to be 2–3% real CVR.

That's the unlock advertorial strategy promises — and what cross-domain tracking with server-side forwarding is the only way to actually deliver.

Install once. Stop losing conversions at the domain boundary.

AnyTrack installs in minutes. One tag per domain, one API key in your ad platform accounts. Free 14-day trial, no credit card.

Quick answers

My advertorial and my offer are on the same domain. Do I still need this?

Less urgently — same-domain funnels mostly work with standard tag setups. You still benefit from server-side forwarding to beat ad blockers and recover ITP-stripped conversions, but cross-domain stitching is the bigger win when the funnel crosses domains.

Can't I just put my Google Ads tag on both domains?

You should — each domain runs its own pixels. But the Google Ads tag's first-party cookie is per-domain, so the gclid stored on the advertorial domain isn't visible on the offer domain. The conversion needs to be stitched back to the original gclid server-side; that's what AnyTrack's atclid mapping does.

Why not just pass gclid and fbclid in the outbound URL?

You can, technically. In practice: Safari ITP strips known link-decoration parameters on cross-site navigation, the URL gets long and ugly, and you have to maintain that list as every platform changes its identifier scheme. A single neutral first-party ID (atclid) survives ITP, is platform-agnostic, and resolves to the real click ID at conversion time on the server.

Is server-side GTM enough on its own?

sGTM gives you the server-side delivery layer, which is necessary. It doesn't, by itself, do the click-ID capture / persistence / cross-domain propagation. You still need that piece — either build it or use a tool that ships it.

What about iOS 14+ / SKAdNetwork?

SKAN is a Meta/iOS app concern. For web advertorial funnels on iOS Safari, you're dealing with ITP (7-day first-party cookie cap, link-decoration stripping). Server-side forwarding with hashed identifiers is the recovery path.

My affiliate network handles postbacks. Why do I need this?

Affiliate postbacks tell the network you converted. They don't tell Google Ads or Meta. If you're running paid traffic to the advertorial, you need to close that ad-platform loop separately — that's exactly what AnyTrack does.

How fast is this to install?

One tag on each domain (paste, save), one API key in each ad platform integration (OAuth, takes seconds). The longest part is usually getting access to the offer domain's site code. Production-ready in an afternoon.