53-tracking-setup-global · v1.0.0 · 2026-07-30 · sha256 89fd04f81fb77a86
53-tracking-setup-global v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/89fd04f81fb77a86.
--- name: 53-tracking-setup-global description: "Use when the user needs to set up or fix conversion tracking before running ads: Meta Pixel and Conversions API, Google Ads conversion tracking with Enhanced Conversions, GA4, TikTok Pixel and Events API, server-side GTM, consent management for GDPR and CCPA, UTM conventions, iOS ATT attribution windows, and the pre-launch verification checklist. Trigger on 'tracking setup', 'pixel setup', 'conversions API', 'CAPI', 'GA4 setup', 'server-side tracking', 'consent mode', 'UTM convention', or 'conversion tracking not working'." metadata: version: 1.0.0 category: performance license: MIT triggers: - "tracking setup" - "pixel setup" - "conversions API" - "CAPI" - "GA4 setup" - "server-side tracking" - "consent mode" - "UTM convention" - "conversion tracking not working" output: "File .md — tracking setup checklist per platform, consent plan, UTM template, event mapping, CRM/offline conversion plan, pre-launch verification checklist, and a troubleshooting table" related: - product-marketing-context-global - 52-account-structure-global - 54-media-plan-global - 21-ads-audit-global - 12-landing-page-brief-global - 13-data-analysis-global --- # Tracking Setup (Global) Ads without verified tracking is driving blind. **Hard rule: do not launch ads until tracking verifies green.** Every dollar spent before verification is unmeasurable. Set it up correctly the first time — changing events mid-campaign destroys historical comparability. > Full per-platform install steps and the consent mode parameter reference: read `references/platform-tracking-setup.md`. ## Information gathering Ask up to 4 questions: 1. **Which ad platforms and objective?** Meta / Google / TikTok / LinkedIn / YouTube — lead (form or message) / purchase / traffic? 2. **What runs the website or landing page?** Shopify / WordPress / Webflow / Framer / custom — and is there access to edit the head tag or install GTM? 3. **Which markets receive traffic?** This decides the consent requirements: EU/UK means GDPR and ePrivacy, California means CCPA/CPRA, other US states have their own opt-out laws. 4. **Where does the sale actually close?** On site (pixel-measurable) or offline via sales calls, demos, or DMs (needs CRM/offline conversion import)? ## Principles 1. **No green, no launch.** Verification comes before spend, every time. 2. **Consent is part of tracking, not a legal afterthought.** In the EU/UK, tags must not fire before consent. Getting this wrong risks fines and, on Google, loss of remarketing audiences. 3. **One installation method only.** GTM plus hardcoded tags equals duplicate events and doubled phantom conversions. 4. **Client-side plus server-side, deduplicated.** Browser-only tracking loses a large share of events to ad blockers, ITP, and iOS ATT. Send the same event from both sides with a shared event ID. 5. **Consistent UTMs.** Define the convention once, before anyone builds a link. GA4 cannot repair inconsistent casing or naming after the fact. 6. **Measure to revenue, not to lead.** If 1,000 leads produce 10 sales, you must be able to tell whether the failure is in ads or in sales. That requires CRM or offline conversion import. 7. **Expect platform numbers to disagree.** Ads managers use different attribution windows and modeled conversions. Pick one source of truth for decisions and use the others as directional. ## Workflow ### 1. Choose the measurement architecture | Layer | Purpose | Minimum | |-------|---------|---------| | Client-side pixel/tag | Fast setup, on-page events | Meta Pixel, Google tag, TikTok Pixel | | Server-side API | Recovers events lost to blockers and ITP | Meta Conversions API, TikTok Events API, Google Enhanced Conversions | | Analytics | Cross-channel truth, funnel analysis | GA4 with key events configured | | Consent layer | Legal gate in front of everything above | CMP plus Google consent mode v2 | | CRM / offline | Connects leads to actual revenue | CRM with source fields, offline conversion import | Server-side GTM is the recommended container for anything beyond a simple store: it centralizes event forwarding, improves data quality, and keeps first-party cookie lifetimes usable under ITP. ### 2. Consent management (do this before any tag fires) This is a first-class requirement, not an optional extra. **EU / UK — GDPR and ePrivacy:** - Install a certified consent management platform. Meta requires a CMP for EU traffic; Google requires a Google-certified CMP for EEA/UK traffic to keep personalized advertising and audience features. - Implement **Google consent mode v2**. The four signals are `ad_storage`, `analytics_storage`, `ad_user_data`, `ad_personalization`. Default them to `denied` for EEA/UK before the banner is answered, then update on consent. - Non-essential tags must not fire before consent is granted. Consent must be as easy to refuse as to accept, and withdrawable. - Keep a consent log — which user, which choice, when, which policy version. **California — CCPA/CPRA (and comparable US state laws):** - Provide a visible opt-out of sale/sharing of personal information. - Honor the Global Privacy Control browser signal as a valid opt-out. - On Meta, apply **Limited Data Use** for California traffic. **Email and SMS:** CAN-SPAM in the US and GDPR in the EU require documented opt-in for marketing sends and a working unsubscribe. Any list uploaded as a Custom Audience or Customer Match list must have that consent on record — see `14-email-marketing-global`. Record the decision in the output file: which CMP, which regions gated, who verified. ### 3. Install per platform Full step-by-step checklists live in `references/platform-tracking-setup.md`. Summary of what must exist: | Platform | Client-side | Server-side | Verification tool | |----------|-------------|-------------|-------------------| | Meta | Pixel with standard events (PageView, ViewContent, AddToCart, Lead, Purchase) | Conversions API with `event_id` deduplication, Event Match Quality >= 6.0 | Meta Pixel Helper, Test Events | | Google Ads | Google tag / GTM conversion actions | Enhanced Conversions (hashed email/phone), consent mode v2 | Tag Assistant, conversion diagnostics | | GA4 | GA4 tag, key events marked as conversions | Measurement Protocol or server-side GTM | GA4 DebugView, Realtime | | TikTok | TikTok Pixel (ViewContent, AddToCart, SubmitForm, CompletePayment) | Events API with deduplication | TikTok Pixel Helper, Events diagnostics | | LinkedIn | Insight Tag with conversion rules | Conversions API for CRM-side events | LinkedIn Insight Tag Helper | Only one primary conversion action per objective should be enabled for bidding. Extra enabled conversions inflate counts and confuse smart bidding. ### 4. iOS ATT and attribution windows Since iOS 14.5, a large share of iOS users opt out of app tracking, so platform-reported conversions are partly modeled rather than observed. - Meta's post-ATT default is a **7-day click / 1-day view** attribution window. Compare periods on the same window or the trend is meaningless. - Verify the domain and configure **Aggregated Event Measurement** with a prioritized list of up to 8 web events per domain. The event you optimize for must be ranked highest. - Expect ads manager conversions and GA4 last-click conversions to differ, often materially. Decide up front which one drives budget decisions. - Server-side events plus Enhanced Conversions and good Event Match Quality recover a meaningful share of the loss. This is the main reason server-side is no longer optional. - Third-party cookie deprecation compounds this. Prioritize first-party data collection — email capture, account creation, CRM — over pixel-only audience building. ### 5. UTM convention ``` https://domain.com/lp?utm_source=[source]&utm_medium=[medium]&utm_campaign=[campaign]&utm_content=[ad_name] ``` | Parameter | Convention | Example | |-----------|-----------|---------| | utm_source | meta / google / tiktok / linkedin / klaviyo | meta | | utm_medium | paid_social / paid_search / display / email / organic | paid_social | | utm_campaign | `[product]_[audience]_[market]_[MMYY]` | course-a_cold_us_0726 | | utm_content | `[creative-type]_[hook-type]_[version]` — matches the ad name | vid_pain_v1 | Lowercase, no spaces, no special characters. `utm_content` must equal the ad name defined in `52-account-structure-global` so ads manager and GA4 reconcile in both directions. Add `utm_term` only for search keywords. ### 6. GA4 event mapping | GA4 event | Trigger | Platform equivalent | |-----------|---------|---------------------| | page_view | All pages | PageView (Meta), ViewContent (TikTok) | | view_item | Product or offer page | ViewContent (Meta) | | add_to_cart | Cart add | AddToCart (Meta/TikTok) | | begin_checkout | Checkout started | InitiateCheckout (Meta) | | generate_lead | Form submit or qualified message | Lead (Meta), SubmitForm (TikTok), Conversion (Google) | | purchase | Payment confirmed, with value and currency | Purchase (Meta/TikTok/Google) | Each action fires exactly one event. Mark the event that matches the ads objective as a key event in GA4. Always send `value` and `currency` on purchase — without them ROAS cannot be computed and multi-market revenue cannot be normalized. ### 7. CRM and offline conversions Required whenever the sale closes off-site (B2B, high-ticket, coaching, agency, phone or DM sales): 1. **Capture source on every lead.** CRM fields: source, medium, campaign, ad content, GCLID or fbclid, timestamp, owner, stage, disqualification reason, closed revenue. 2. **Import offline conversions weekly.** Meta offline/CAPI conversions and Google Ads offline conversion import via GCLID or Enhanced Conversions for Leads. This teaches bidding from real revenue instead of raw lead count. 3. **Reconcile monthly.** Compare CRM lead count against ads manager lead count. A gap above 20% signals a tracking or attribution problem, not a sales problem. Uploaded CRM data must be hashed and covered by consent. ### 8. Verify green before launch All must pass. One missing item means do not launch: - [ ] Pixel/tag fires on landing page and confirmation page - [ ] Correct conversion event type selected — not PageView - [ ] No duplicate events (one action, one event in the events manager) - [ ] Server-side API live, deduplication working, Meta EMQ >= 6.0 - [ ] Google Enhanced Conversions enabled and receiving hashed data - [ ] Consent mode v2 implemented; tags blocked before consent in EEA/UK; Limited Data Use applied for California - [ ] Test event: complete one real conversion and confirm it is recorded - [ ] Domain verified and Aggregated Event Measurement events prioritized - [ ] UTMs on all ad links and matching the convention - [ ] GA4 receiving paid sessions (confirm in Realtime) - [ ] CRM source capture live if the sale closes off-site ### 9. Ongoing checks **Daily (2 minutes):** events flowing in the last 24 hours on every platform; Google Ads conversions recording; GA4 showing paid sessions. **Weekly:** server-side match rate above 70%; no duplicate events; lead counts across ads manager, GA4, and CRM within 20% of each other; every live link carries a correct UTM; consent banner still firing correctly after any site release. ## Troubleshooting | Problem | Common cause | Fix | |---------|--------------|-----| | Pixel does not fire | Tag missing on the page or blocked by consent gate | Check GTM preview and the consent state; confirm the tag is allowed after consent | | Duplicate events | GTM and hardcoded tag both installed | Remove one; verify `event_id` deduplication | | Low match rate / low EMQ | No hashed email or phone sent server-side | Add customer parameters to the server payload | | Conversion not recorded | Wrong event name or wrong trigger page | Check spelling and that the trigger is the confirmation page | | GA4 far below ads manager | Different attribution windows plus modeled conversions | Compare on the same window; treat one source as decision-grade | | Remarketing audiences shrinking in the EU | Consent mode v2 missing or misconfigured | Implement all four consent signals and a certified CMP | | Leads arrive with no source | No CRM source capture | Add hidden UTM/click-ID fields to every form | ## Output structure File name: `tracking-setup-[product]-[YYYYMMDD].md` ```markdown # Tracking Setup — [Product/Campaign] Platforms: [list] · Site platform: [x] · Markets: [x] · Objective: [Lead/Purchase] ## 1. Measurement architecture [client, server, analytics, consent, CRM] ## 2. Consent plan [CMP, regions gated, consent mode v2, LDU, log owner] ## 3. Platform setup status [table with status per item] ## 4. Attribution settings [window per platform, AEM priority list] ## 5. UTM convention [parameters and real project examples] ## 6. Event mapping [GA4 to platform events] ## 7. CRM / offline conversions [fields captured, import cadence] ## 8. Pre-launch verification [green checklist, verified by, date] ## 9. Ongoing check schedule [who, when, alert thresholds] ``` ## Related skills - `52-account-structure-global`: build campaigns only after tracking is green; `utm_content` must match ad names. - `54-media-plan-global`: the objective in the plan determines which events must be tracked. - `21-ads-audit-global`: periodic tracking audit (match rate, duplicates, EMQ). - `12-landing-page-brief-global`: the landing page must expose the events and form fields this setup needs. - `13-data-analysis-global`: reads the clean data this system produces. ## Quality checklist - [ ] Setup checklist complete for every platform in the plan - [ ] Consent plan explicit: CMP, consent mode v2 signals, regions, California opt-out, consent log - [ ] Server-side layer live with deduplication and a documented match rate - [ ] Attribution window stated per platform, with an agreed decision-grade source - [ ] UTM convention documented with real examples and matching ad names - [ ] Event mapping complete from page_view to purchase, with value and currency - [ ] Offline or CRM conversion path exists if the sale closes off-site - [ ] Green verification checklist completed, dated, and signed off by a named person - [ ] Daily and weekly checks scheduled with alert thresholds (match rate >70%, source gap <20%) - [ ] The hard rule is restated in the output: not green means do not launch