Creating High-Converting Facebook Ad Campaigns: Attribution, Custom Conversions, and Offline Integrity
23 min read
What's wild is how invisible it all is. It shows up in dashboards, reports, and headlines, yet almost nobody questions it. We’ve grown accustomed to the idea that marketing data is inherently messy, fragmented, and full of contradictory signals.

Orla Gallagher
PPC & Paid Social Expert
Last Updated
November 20, 2025
The Problem: You see 4.5x ROAS in your Facebook Ads Manager and 2.8x in Google Analytics, and default response is shrug. Resigned acceptance that numbers are just different. Facebook reports 100 purchases. Your Shopify backend shows 80. That's 20% of your revenue attribution completely wrong.
Quick Stats:
-
25-40% of Facebook conversions go unreported due to ad blockers and ITP
-
iOS 14 reduced attribution windows from 28 days to 7 days for most advertisers
-
Modeled conversions can represent 30-50% of reported conversions (educated guesses, not facts)
-
Bot traffic wastes 10-30% of ad spend while polluting Facebook's algorithm
What You'll Learn in This Guide:
This comprehensive guide reveals why your Facebook attribution is broken and exactly how to fix it. You'll discover:
-
Why Facebook and CRM numbers never match and the three forces causing it (Section 1: The Great Attribution Divide)
-
How attribution windows actually work and why same sale gets credited differently (Section 2: Attribution Black Box)
-
What iOS 14 destroyed and how AEM relies on modeled guesswork (Section 3: iOS 14 Apocalypse)
-
Why the Facebook Pixel is dying and what's replacing it (Section 4: Pixel vs CAPI)
-
How to implement CAPI correctly with clean server-side data (Section 5: CAPI Implementation)
-
Custom conversion strategies to find high-value customers (Section 6: Beyond Standard Events)
-
How to track offline sales and close the attribution loop (Section 7: Offline Conversions)
-
Why bot traffic destroys ROI and how to filter it at source (Section 8: Fraudulent Traffic)
-
The first-party data flywheel that transforms campaigns (Section 9: Building Resilience)
-
Complete implementation checklist for post-privacy world (Section 10: Action Plan)
The Real Cost: This isn't about Facebook attribution alone. It says something bigger about how modern internet works and who it's really built for. It is system of competing storytellers, each vying to take credit for final chapter, while you, advertiser, are left to guess which story is true. But if you look closely at your own data, at widening gap between your ad platform and your source of truth, you might start to notice it too. Ghost events, missing conversions, leads that never existed. This is quiet crisis in digital marketing, and it's costing you more than you think.
By the end of this guide, you'll understand:
-
Exactly why Facebook says 100 sales but CRM shows 80 (and which is right)
-
How to recover 25-40% of lost conversions with first-party tracking
-
How to implement CAPI that actually receives complete data
-
How to filter bot traffic wasting 10-30% of your budget
-
How to close offline conversion loop for high-ticket sales
-
How to build attribution infrastructure that survives privacy changes
Let's dive in.
Section 1: The Great Attribution Divide - Why Your Numbers Never Match
You have been there.
You are staring at two browser tabs, your mind trying to reconcile impossible:
-
Facebook Ads Manager celebrating banner week with 100 purchases
-
Your Shopify or CRM backend, actual source of truth, reporting more modest 80
-
20% discrepancy
That is not rounding error.
It is fundamental breakdown in measurement.
For years, marketers accepted this as cost of doing business.
We called it "directional accuracy" and moved on.
But that era is over.
Why Does Facebook Say I Have 100 Sales, But My CRM Reports 80?
This is most common and frustrating question in performance marketing.
Answer is not single point of failure but collision of three powerful forces:
Force 1: Walled Gardens vs Source of Truth
Facebook operates as "walled garden."
Its primary goal is to demonstrate its own value:
-
Uses its own attribution model
-
By default, designed to give its ads credit for conversions if they played role anywhere in user journey
-
Within specific timeframe (attribution window)
Your CRM or e-commerce platform, on other hand, is ultimate source of truth:
-
Only records what actually happened
-
Often attributing sale to very last click that brought user to site
Facebook is telling you what it influenced.
Your backend is telling you what happened.
Force 2: The Browser Wars on Privacy
Apple's Intelligent Tracking Prevention (ITP) in Safari and Mozilla's Enhanced Tracking Protection (ETP) in Firefox are actively hostile to third-party cookies.
Technology underpinning original Facebook Pixel:
-
They limit lifespan of cookies or block them outright
-
Effectively making users anonymous to Facebook's browser-side tracking after short period
Example:
-
User might click Facebook ad on Monday
-
Browse on their iPhone
-
Finally purchase on their desktop on Friday
-
To ITP, that user looks like two different people, breaking attribution chain
Force 3: The iOS 14+ Apocalypse
Single biggest earthquake to shake attribution landscape was Apple's AppTrackingTransparency (ATT) framework.
It forced apps to ask users for permission to track them across other apps and websites:
-
Opt-in rates plummeted
-
Facebook lost its primary mechanism for tracking user behavior off-platform
This led to creation of Aggregated Event Measurement (AEM):
-
System that anonymizes and delays conversion data
-
Limits you to eight conversion events
-
Relies heavily on statistical modeling to fill in gaps
These "modeled conversions" are educated guesses, not verified facts.
When you combine these forces:
-
You get perfect storm of data degradation
-
You are making six and seven figure budget decisions based on blend of incomplete data, delayed data, and statistical guesswork
Section 2: Deconstructing Facebook's Attribution Black Box
To fix broken system, you first have to understand its components.
Facebook's attribution is not magic.
It is set of rules and technologies, each with its own strengths and, more importantly, weaknesses.
Ignoring these details is like trying to navigate ship without understanding tides and currents.
What Are Attribution Windows and How Do They Actually Work?
Attribution window is period after someone sees or clicks your ad during which conversion can be credited to that ad.
Facebook's default is 7 day click and 1 day view window.
Let's make this concrete with user journey:
Monday: User scrolls Instagram, sees your ad for new pair of sneakers, watches video for 5 seconds but does not click (View-through)
Wednesday: User is on their laptop, sees retargeting ad in their Facebook feed, and clicks it. They browse product page but get distracted and leave (Click-through)
Saturday: User remembers sneakers, types your website URL directly into their browser, and makes purchase
How is this one sale reported?
7 day click, 1 day view (Facebook's Default):
-
Purchase is credited to Facebook ad clicked on Wednesday
-
As it occurred within 7 day click window
1 day click:
-
Purchase is NOT credited to Facebook
-
Because click happened more than 1 day ago
Google Analytics (Last Non-Direct Click):
-
Purchase is credited to "Direct" traffic
-
As that was final session
You can see how same event is claimed by different parties, or by no one at all, depending on rules.
Problem is that with browser-side tracking, Facebook's visibility into this journey is getting blurrier every day.
Section 3: How iOS 14 Broke Everything
Before iOS 14:
-
Facebook Pixel could fire on your website
-
Freely report back detailed, user-level data in real time
-
It knew who converted, when they converted, and what they had done before
After iOS 14, for users who opt out of tracking:
-
This direct line of communication was severed
-
Facebook had to create workaround: Aggregated Event Measurement (AEM)
The Four Restrictions of AEM
Restriction 1: The 8 Event Limit
-
You can only optimize for maximum of 8 standard or custom conversion events
-
For businesses with complex funnels, this is incredibly restrictive
Restriction 2: Data Delay
-
Conversion data can be delayed for up to 72 hours
-
This makes real-time optimization impossible
-
You are flying blind for up to three days
Restriction 3: Loss of Granularity
-
Demographic breakdowns (age, gender, region) for conversion events are no longer available
-
All you get is aggregated total
Restriction 4: Modeled Conversions
-
To fill massive data gaps, Facebook uses statistical modeling
-
Looks at patterns from users who did opt-in
-
Extrapolates to estimate conversions from users who opted-out
-
These are "ghost events" that appear in your dashboard but not in your CRM
This shift from deterministic, user-level data to probabilistic, modeled data is core of modern attribution problem.
Quote from Charles Farina, Head of Innovation at Adswerve:
"Marketers need to shift their mindset from chasing perfect last-touch attribution to embracing incrementality and measurement frameworks that use modeled data. The key is understanding the inputs to those models. If your inputs are garbage because of data loss, your modeled outputs will be garbage too."
Section 4: The Pixel Is Dying - Why Browser-Side Tracking Is No Longer Enough
Meta Pixel is JavaScript snippet that runs in user's browser.
This makes it "third-party" from browser's perspective:
- Therefore prime target for ad blockers and privacy features like ITP
Estimates suggest:
-
25-40% of users now use some form of ad blocking
-
Meaning significant portion of your website traffic is completely invisible to Pixel
This is where Conversions API (CAPI) comes in.
CAPI allows you to send conversion data directly from your server to Facebook's server.
Because this communication does not happen in user's browser:
- It is immune to ad blockers and ITP
Meta Pixel Only vs Pixel + CAPI
Feature / Scenario Meta Pixel Only (Browser-Side) Pixel + Conversions API (Server-Side)
Data Source User's Browser User's Browser + Your Server
Ad Blocker Impact High - Events are frequently blocked Low - Server events are not blocked
Apple ITP Impact High - Cookie lifespan is limited, breaking user journeys Low - Server events are unaffected by browser cookie policies
iOS 14+ Data Limited to AEM, delayed, and heavily modeled More reliable - Can send more complete data for matching
Data Accuracy Decreasing - Prone to over-counting (double firing) and under-counting (blocking) High - Single source of truth from your server reduces errors
Offline Events Not possible Fully supported - Can send phone calls, CRM updates, etc.
Data Control Low - You are dependent on browser environment High - You control exactly what data is sent and when
Takeaway is clear:
-
Relying solely on Pixel is like trying to fill bucket with hole in it
-
You will never get complete picture
However, implementing CAPI is not magic bullet.
If data you are sending from your server is incomplete or inaccurate:
- You are just sending bad data more reliably
Integrity of your server-side data is paramount.
The First-Party Solution to CAPI Data Quality
This is fundamental challenge that first-party analytics solution addresses.
By capturing user data from your own domain (e.g., via CNAME record):
-
Tool like DataCops operates in first-party context
-
It is trusted by browsers
-
Bypassing ad blockers and ITP restrictions that cripple standard Meta Pixel
It collects:
-
Complete, unblemished data set of user interactions
-
Creating pristine source of truth on your server
This clean data can then be sent to Facebook via CAPI:
- Ensuring Meta's algorithm receives highest quality signals possible
Section 5: Mastering Conversions - Beyond Standard Events
Accurate attribution is only half battle.
You also need to tell Facebook what success actually looks like for your business.
Too many advertisers stop at default "Purchase" or "Lead" events:
- Failing to provide granular signals Meta's algorithm needs to find high-value customers
When Should I Use Custom Conversion Instead of Standard Event?
Standard events are predefined actions Facebook recognizes:
-
ViewContent, AddToCart, Purchase
-
They are building blocks of e-commerce tracking
However, they lack business context.
Example:
"Lead" event does not differentiate between:
-
Someone who downloaded free checklist
-
Someone who requested one-on-one demo with your sales team
To Facebook's algorithm, they look identical.
But you know demo request is 50 times more valuable.
Use custom conversion when you need to:
Assign value to different types of leads:
- Track "Demo Request" separately from "Ebook Download"
Segment customer behavior:
-
Create conversion for "High AOV Purchase" (e.g., purchases over $200)
-
Or "Repeat Customer Purchase"
Track key funnel milestones:
If you have SaaS product, create custom conversions for:
-
"Trial Started"
-
"Workspace Created"
-
"Subscription Tier Selected"
Custom conversions allow you to translate your unique business logic into language Facebook's optimization algorithm can understand.
The Right Way to Set Up Custom Conversions for Deeper Insights
There are two main ways to create custom conversions:
Method 1: URL-Based (The Brittle Method)
This involves telling Facebook to count conversion whenever someone visits specific URL.
Example: "thank-you.html" page
Problems:
-
Simple but fragile
-
If you ever change URL, your tracking breaks
-
Cannot distinguish between different types of conversions that might lead to same thank you page
Method 2: Event-Based (The Robust Method)
This is superior approach.
You fire standard event (like Lead or Purchase) but include custom event parameters to add context.
Example:
Instead of just firing Lead event, you would send:
fbq('track', 'Lead', {lead_type: 'demo_request'});
fbq('track', 'Lead', {lead_type: 'webinar_signup'});
You can then create two separate custom conversions in Facebook Events Manager:
-
One where event is Lead AND lead_type parameter equals demo_request
-
Another for webinar_signup
Now you can:
-
Run campaigns optimized specifically for high-value demo requests
-
Let Facebook's AI find users who look like your best prospects
-
Not just anyone who downloads freebie
Critical dependency:
Integrity of this entire system hinges on reliability of underlying event data.
If ad blockers are preventing your Lead event from firing 30% of time:
- Your custom conversion data will be just as incomplete
First-party data collection platform ensures:
-
Every event, with all its rich parameters, is captured server-side
-
Providing complete and accurate foundation for your custom conversions
Section 6: The Final Frontier - Achieving Offline Data Integrity
Digital journey is only part of story.
For many businesses, most important conversions happen offline:
-
Signed contract in CRM
-
Purchase made in physical store
-
Deal closed over phone
To Facebook Pixel, these events are completely invisible.
This creates massive blind spot in your optimization:
- Causing algorithm to undervalue ads that drive high-value offline actions
What Are Offline Conversions and Why Do They Matter?
Offline conversions are customer actions that start online but finish in physical world or in separate software system.
Common examples include:
Retail:
-
User clicks Facebook ad for sale
-
Then visits local store to make purchase
High-Ticket Sales (B2B/Auto/Real Estate):
-
User clicks ad, submits lead form
-
Then converts weeks later after series of calls and meetings
-
Tracked in CRM like Salesforce or HubSpot
Subscription Services:
-
User signs up for free trial online
-
But becomes paying customer via phone call with sales representative
Without tracking these outcomes:
-
You are optimizing for top-of-funnel metrics (like cheap leads)
-
Instead of bottom-line results (like actual revenue)
You might pause campaign that is generating your most profitable customers:
- Simply because their final conversion event is invisible to Facebook
Bridging the Gap: How to Connect Your CRM to Facebook
Key to connecting your online ad spend to offline results is Facebook Conversions API.
Process involves:
-
Matching customer data from your offline system (like email address or phone number)
-
With user who interacted with your ad
Historically, this was done via manual CSV uploads:
-
You would export list of converted customers from your CRM
-
Upload it to Facebook
This method is:
-
Slow
-
Labor-intensive
-
Highly inaccurate
-
Data is often days or weeks old, making it useless for real-time optimization
Modern solution is direct, server-to-server integration via CAPI:
When lead is marked as "Closed-Won" in your CRM:
- Your server automatically sends offline Purchase event to Facebook
This event includes:
-
Customer's hashed information (email, phone number)
-
Original click identifiers (fbc/fbp cookies) that were captured when they first clicked ad
How DataCops Manages Complete Offline Conversion Flow
This is where power of unified data solution becomes undeniable.
Platform like DataCops can manage this entire flow seamlessly:
Step 1: Capture
-
When user clicks your ad and submits lead form
-
DataCops captures lead information and crucial Facebook click IDs (fbc/fbp)
-
Storing them in first-party context
Step 2: Enrich
- This data is passed to your CRM along with lead
Step 3: Connect
-
When deal is closed in CRM, your system triggers event
-
DataCops takes this offline event
-
Attaches original click IDs
-
Sends perfectly formatted, high-quality conversion signal to Facebook via CAPI
This creates closed loop:
- Giving Facebook's algorithm complete picture from first click to final revenue
Section 7: The Hidden Enemy - How Bot and Fraudulent Traffic Destroys Your ROI
There is one final, insidious problem that corrupts your data before it even has chance to be misattributed:
Fraudulent traffic.
Bots, click farms, and users hiding behind VPNs or proxies can wreak havoc on your campaigns.
The Three Types of Fraudulent Traffic
Type 1: Bot Clicks
-
Bots click your ads
-
Inflating click-through rates
-
Wasting your budget
Type 2: Junk Leads
-
Bots or malicious users fill your forms
-
Wasting your sales team's time
-
Polluting your CRM
Type 3: VPN/Proxy Traffic
-
Masks user's true location
-
Causing you to spend money advertising to people in wrong geographic area
Your ad platform dashboards do not differentiate between:
-
Real, high-intent customer in your target market
-
Bot from server farm halfway across world
They both look like "click" or "lead."
This is critical failure of standard analytics.
The Hidden Cost of Bot Traffic
Metric Reported in Ads Manager (with Fraud) Actual Performance (Fraud Filtered) Impact
Clicks 1,000 750 25% of ad spend wasted on non-human traffic
Leads 100 60 Sales team wastes 40% of their time on junk leads
Cost Per Lead $50 $83.33 True CPL is 66% higher than you think
Conversion Rate 10% 8% Algorithm optimizes towards fake, easy conversions
This is not minor issue.
It systematically poisons your data:
-
Leading to poor optimization decisions
-
Fundamentally flawed understanding of your ROI
Actively filtering for this traffic is not luxury.
It is necessity.
How DataCops Filters Fraudulent Traffic
Solutions like DataCops have built-in fraud detection:
-
Analyzes traffic signals to identify and filter out bots, VPNs, and other sources of non-human or masked traffic
-
Before it ever gets reported to Facebook
This ensures:
- Data you use for attribution and optimization represents real, potential customers
Section 8: Building Resilient, High-Converting Campaign with First-Party Data
Path to high-converting campaigns in modern era is not about finding new bidding hack or secret targeting option.
It is about rebuilding your measurement foundation on bedrock of first-party data.
This creates virtuous cycle, or "flywheel," that improves performance over time.
The First-Party Data Flywheel: From Accurate Measurement to Smarter Bidding
Step 1: Complete Data Capture
-
You implement first-party data collection strategy
-
Your tracking scripts, served from your own domain, are trusted by browsers
-
Ad blockers and ITP are bypassed
-
You now capture complete, accurate record of every user interaction on your site
Step 2: Clean Data Transmission
-
This clean, comprehensive data, including offline events and filtered for fraud
-
Is sent to Facebook via server-side Conversions API integration
Step 3: Improved Signal Quality
-
Facebook's algorithm now receives high-fidelity, high-quality stream of conversion signals
-
It is not guessing based on modeled data
-
It is learning from verified, user-level facts
Step 4: Smarter Optimization
-
With better data, algorithm becomes exponentially better at its job
-
It develops crystal-clear understanding of what your true converting customers look like
-
Gets better at finding more of them
Step 5: Higher Conversion Rates & ROAS
-
Your ads are shown to more relevant users
-
Your cost per acquisition drops
-
Your return on ad spend increases
-
Improved performance generates even more clean conversion data
-
Which further fuels flywheel
This is new competitive advantage in performance marketing.
While your competitors are making decisions based on fragmented, modeled data:
- You are operating with level of clarity they cannot achieve
Quote from Sheila Colclasure, Global Chief Digital Responsibility and Public Policy Officer at IPG Kinesso:
"The future of marketing is built on a foundation of trust, and that trust begins with data. First-party data isn't just a workaround for cookie deprecation; it's a fundamentally better way to understand and serve your customers. Brands that master their first-party data strategy will have an unassailable competitive advantage."
Section 9: Your New Campaign Checklist for Post-Privacy World
Forget old checklists.
To succeed today, your setup must be resilient by design.
Implementation Checklist
☐ Step 1: Establish First-Party Data Foundation
-
Before you spend another dollar on ads
-
Implement solution that captures complete data set in first-party context
-
This is step zero
☐ Step 2: Prioritize Server-Side CAPI Integration
-
Move your conversion tracking from browser to your server
-
Use robust solution to ensure data sent via CAPI is clean, deduplicated, and complete
☐ Step 3: Define What Matters with Custom Conversions
-
Go beyond standard events
-
Create event-based custom conversions for your most valuable business outcomes
-
Optimize your campaigns directly for them
☐ Step 4: Close Loop with Offline Conversions
-
Implement server-to-server process to feed offline sales and CRM data back to Facebook
-
Ensure you are capturing and passing back original ad click identifiers
☐ Step 5: Declare War on Fraudulent Traffic
-
Actively filter and block bots, junk leads, and masked traffic
-
Do not let fraudulent data poison your optimization algorithms
Key Takeaways
1. Facebook and CRM numbers never match due to three forces Walled garden attribution, browser privacy wars, iOS 14 ATT framework.
2. Attribution windows determine credit allocation Same sale credited differently depending on 7-day vs 1-day window.
3. iOS 14 created modeled conversions AEM relies on statistical guesswork, not verified facts (30-50% of data).
4. Meta Pixel blocked by 25-40% of users Ad blockers and ITP make significant traffic invisible.
5. CAPI bypasses browser blocks Server-to-server immune to ad blockers, but needs clean input data.
6. First-party collection solves input problem DataCops from your subdomain bypasses all blockers, captures complete data.
7. Custom conversions find high-value customers Event-based parameters let Facebook distinguish demo requests from ebook downloads.
8. Offline conversions close attribution loop CRM sales fed back to Facebook via CAPI with original click IDs.
9. Bot traffic wastes 10-30% of budget Fraudulent clicks and junk leads poison algorithm, must filter at source.
10. First-party flywheel compounds performance Complete data → Clean CAPI → Smarter algorithm → Better ROAS → More data.
Common Questions
Q: Why does Facebook report more conversions than my CRM shows sales? A: Modeled conversions. After iOS 14, Facebook uses statistical modeling to estimate conversions from opted-out users. These guesses appear in dashboard but not backend.
Q: Will first-party tracking violate privacy laws? A: No. First-party tracking complies with GDPR, CCPA when implemented with proper consent management. DataCops includes TCF-certified first-party CMP.
Q: How much revenue am I losing to attribution gaps? A: Run test: Compare Facebook reported conversions to CRM sales for 30 days. Gap of 20-40% is common, representing massive revenue misattribution.
Q: Should I use Pixel only, CAPI only, or both? A: Both. Pixel + CAPI with deduplication via event_id provides redundancy and maximizes coverage.
Q: How long until I see results from first-party tracking? A: Immediate data completeness improvement (20-40% more conversions captured). Algorithm optimization improves over 2-4 weeks as it learns from clean signals.
Q: Can I track offline sales without expensive CRM integration? A: Yes. DataCops captures click IDs at point of lead capture, stores them, and sends offline conversion to Facebook when you mark deal closed.
Next Steps
If you see these warning signs:
-
Facebook shows 4.5x ROAS but Google Analytics shows 2.8x
-
High iOS/Safari traffic but low reported conversions
-
Modeled conversions represent 30%+ of total conversions
-
CRM sales don't match Facebook conversion count
-
Sales team complains about junk leads
Then your problem is data foundation.
Start here:
Week 1: Audit and Deploy
-
Compare Facebook conversions to CRM sales (calculate gap)
-
Deploy DataCops first-party tracking from your subdomain
-
Bypass ITP and ad blockers immediately
Week 2: Filter and Integrate
-
Enable Human Analytics bot filtering
-
Configure CAPI integration with deduplication
-
Verify complete conversion data flowing to Facebook
Week 3: Optimize and Close Loop
-
Set up event-based custom conversions for high-value actions
-
Implement offline conversion tracking from CRM
-
Feed closed deals back to Facebook with click IDs
Week 4: Monitor and Scale
-
Watch conversion count increase 20-40% (previously lost data)
-
See modeled conversion percentage decrease (more verified data)
-
Verify ROAS alignment between Facebook and backend
-
Scale campaigns with confidence based on complete data
Tools: DataCops provides complete Facebook attribution solution by serving from your subdomain (bypasses ITP and ad blockers, captures 25-40% more conversions), filtering bots with Human Analytics (eliminates fraudulent data), integrating native CAPI (clean server-side data to Facebook), tracking offline conversions (CRM sales fed back with click IDs), and including first-party CMP (universal consent capture) for accurate attribution, complete audiences, and confident scaling.
The End of "Good Enough" Data
For too long, we have accepted broken system.
We have tolerated:
-
Data discrepancies
-
Modeled guesswork
-
Ghost conversions
Because we thought there was no alternative.
We accepted that "good enough" was best we could do.
That era is over.
Invisible problem of data integrity is not invisible anymore.
It is tangible drag on:
-
Your budget
-
Your growth
-
Your ability to make intelligent decisions
Solution is not to find better way to guess.
Solution is to build system that no longer requires guessing.
By taking ownership of your data:
-
Implementing first-party collection strategy
-
Ensuring integrity of every signal you send
You can move:
-
From state of reactive confusion
-
To one of proactive clarity
You can finally build campaigns on foundation of truth.
About DataCops: Complete Facebook attribution solution that captures 100% of conversions (bypasses ITP and ad blockers via first-party collection), filters bots (Human Analytics), sends verified data to Facebook CAPI (server-to-server), tracks offline conversions (CRM integration with click IDs), and includes first-party CMP (universal consent capture) for accurate attribution and confident scaling.
