BACK TO BLOG
TOOL HOW-TOOctober 27, 20267 min read

How to Measure Marketing After iOS Privacy Changes

JH

By Joris van Huët

Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs

Published

2026-10-27

The short answer: Meta and Google held steady. Your orders slid. If that is your quarter, stop measuring from their side. Since iOS 14.5, an app needs the user's permission through Apple's App Tracking Transparency to track them across other companies' apps and websites. Without it, the advertising identifier reads as all zeros, per Apple's developer page. The ad platforms filled the hole with modelled conversions. Measure from what you collect instead: GA4 with consent mode, your store's orders, and a causal read of the GA4 export with no pixel. Causality Engine runs that read under the same consent and browser limits as GA4, per how it works. The first finding is free on the start page, and the full read is €99 once. In order: learn what is modelled in each platform number, fix consent mode and choose observed or blended reporting in GA4. Then reconcile weekly with orders, and read each channel's caused share.

Disclosure: I founded Causality Engine and own it, and this page recommends it. Every claim about it links to Causality Engine's own pages.

Where each number comes from now:

  1. The platform figure is part count, part estimate. For example, the store took 500 orders in a week. Meta claims 310 and Google 260. Together that is 570 against 500 (310 plus 260), before you even ask how many orders both claimed. Google's modelled conversions page says the Conversions column reports modelled and observed conversions together, so the report itself will not show you the split.
  2. Your own data is thinner, not fake. When a visitor declines cookies, GA4 tags send cookieless pings, and Google fills the gaps with conversion and behavioural modelling, per the consent mode page. The orders in your store's admin are untouched by any of this.
  3. The weekly check is a ratio, not a total. GA4 purchases divided by store orders, every week. A steady ratio is a measurement you can work with. A sudden drop is a tagging change, and you know the week it happened.

What you need

  • In: your store's weekly order counts, GA4 with the purchase event, access to your consent banner settings, each platform's weekly conversions, and 12 months or more of GA4 history for the read.
  • Out: a stated share of modelled data in each source, a weekly GA4-to-orders ratio, and each channel's caused share from first-party data.

Step 1: Find out what each platform modelled

Google's modelling page lists the gaps it models: third-party cookie limits on Safari and Firefox, shorter first-party cookie lives, EU consent and cross-device journeys. It also models traffic affected by Apple's ATT, where Google does not use the IDFA. And it says modelled conversions take up to 5 days to settle and can rise retroactively. On Meta's side, its developer documentation describes Aggregated Event Measurement as the protocol for measuring web and app events from people on iOS 14.5 or later. Write down, per platform, which of these apply to your traffic. That list is the error bar on its dashboard.

Step 2: Get consent mode working on every page

Google's consent mode page sets out the practices. Set a default consent state before any tag fires, load the tags before the consent dialog opens, and update the state as soon as the visitor chooses. Then verify it with Tag Assistant, per the troubleshooting guide. It shows the default state, the update after a choice and which tags checked which consent types. Whether the advanced setup suits your legal basis is a question for counsel. The EU consent use case covers the setup in order.

Step 3: Choose observed or blended reporting in GA4

Behavioural modelling estimates what visitors who declined consent did, from visitors who accepted. Not every property qualifies. Per Google's behavioural modelling page, consent mode has to run on all pages in the advanced setup. The property has to collect at least 1,000 events a day with analytics storage denied for 7 days. It also needs at least 1,000 daily users with it granted on 7 of the previous 28 days. Pick Blended or another identity under Admin, Data display, Reporting identity. The page adds that the choice does not affect collection and can be switched back at any time. A data-quality icon shows when estimates are in a report.

Blended is often the more useful view, for audience sizes and trends. For a check against your own orders, it is the wrong one. My recommendation: run the weekly check in step 4 on observed data, so the ratio moves with what GA4 saw rather than with what a model estimated.

Step 4: Reconcile GA4 with the store every week

Take Ecommerce purchases from GA4, which counts purchase events, per the Data API schema, and divide by the store's orders for the same days. For example, 412 GA4 purchases against 500 orders is a ratio of 0.82 (412 / 500). Keep the series. Consent refusals and blockers set the level. A theme, checkout or banner change moves it.

Step 5: Read what each channel caused, without a pixel

Export Key event attribution paths from GA4's Advertising section as a CSV and drop it on Causality Engine's start page. The free preview reads the file in your browser and does not upload it, per the privacy policy. The how-it-works page gives the reasoning for skipping pixels. They were degraded by iOS changes, cookie deprecation and platform-side modelling, and patching them with each platform's modelled conversions brings that platform's bias back in. The read adds no tag to the store. Causality Engine's GA4 integration page also states its view on consent gaps. Because the read works on aggregate channel-level data, it says, gaps in user-level tracking do not bias it the way they bias pixel attribution.

Step 6: Let data health decide how hard to move

Every channel in the read carries a data-health score from 0 to 100. Under 90, move budget in steps. A channel under 1% of credit on both methods is called too small to act on, per how it works. Thin consent data shows up here, channel by channel, instead of hiding in a total.

Mistakes the documentation warns about

  • Judging last week's campaign today. Google's modelled figures can keep rising for several days.
  • Loading tags only after consent. Google's consent page says that breaks the cookieless pings its modelling relies on.
  • Expecting modelling on a small property. Below the thresholds in step 3, GA4 reports only what it observed, and some properties do not qualify even above them.

Google's consent page recommends loading its tags for every visitor, including those who decline, because the cookieless pings are what its modelling runs on. The setup that fills your reports' gaps is also the setup that keeps Google receiving signals from people who said no.

The free check, then the read

Steps 2 to 4 cost nothing and give you a measurement you control: a weekly ratio of GA4 to orders that no platform update can rewrite. Causality Engine, which I founded, adds the channel view from the same GA4 data with nothing installed. The first finding is free on the start page. The full read is €99 once and refundable within 30 days on the pricing page (checked on 27 October 2026). Causality Engine's own guide to attribution without a pixel sets out the approach. The product is summarised in the Causality Engine entry.

FAQ

Does Apple's ATT affect GA4 on my website?

ATT governs apps tracking people across other companies' apps and websites, per Apple's page. Website GA4 loses data mainly to declined consent, browser limits and blockers, which is what consent mode and step 4 are for.

Should I hide modelled data in GA4?

For the weekly ratio, yes. For audience sizes and trends, blended often serves better. The behavioural modelling page says switching reporting identity changes only what reports show, not what is collected.

Does the causal read need personal data?

No. The agents page says the read runs on aggregated export data with no personal data required, and that data residency is in the EU.

TAGS
iOS PrivacyApp Tracking TransparencyModelled ConversionsConsent ModeGA4Causality Engine

ABOUT THE AUTHOR

I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.

I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.

Senior marketing execution

A senior operator doing the work: campaigns, channels, CRM and AI agents, live from day one.