What this consent is for
Google’s EU User Consent Policy and the EU Digital Markets Act (DMA) require you to tell Google what a user agreed to before Google may use their conversion. Enforcement began on 6 March 2024. It applies to end users located in the European Economic Area (the 27 EU states plus Iceland, Liechtenstein, and Norway), the United Kingdom, and Switzerland. It follows the user’s location, not where your company is based. Linkrunner forwards these values with every install and event it sends to Google. Report nothing for an in-scope user and Google has less to match on, so conversions can be dropped and campaign performance suffers. By default Linkrunner sends nothing. Every signal starts asunknown until you set it, and unknown signals are left out of the request entirely. Linkrunner never fills in a default on your behalf, in either direction, so a user’s consent state is only ever what your app reported.
Other privacy laws (India’s DPDP Act, Brazil’s LGPD, and so on) are separate frameworks with no Google conversion parameter. For a user outside the EEA, the UK, and Switzerland, report
isEEA as denied and leave the other two unset.The three signals
Each signal is
granted, denied, or unknown. Google treats all three as required whenever their value is known, which cuts both ways:
- A value you know must be sent.
- A value you do not know must not be invented.
unknown instead of sending it as a denial, so a choice your user never made is never reported on their behalf. Never map unknown to granted.
Google also requires
lat (limit ad tracking), but you do not set it. Linkrunner derives it from the device. A missing advertising ID is not a consent signal and is never treated as one.What to report
- User outside the EEA, UK, Switzerland
- User inside the EEA, UK, Switzerland
- You do not know yet
Report The two omitted fields default to
isEEA as denied and leave the other two unset. The DMA does not apply, so ad_user_data and ad_personalization are not required for this user. Send them only if you genuinely know them.UNKNOWN and are dropped from the payload.Collecting consent
A Consent Management Platform (CMP) shows the consent screen at first launch and stores the answers, or you can build the screen yourself. Either way, you read the answers and report them withsetConsent.
1
Ask the user
Show your consent screen at first launch, before you initialize the SDK. Ask whether they agree to their data being sent to Google for advertising, and whether they agree to it being used to personalize ads.
2
Determine whether the user is in scope
Most CMPs detect this for you. Otherwise resolve it server side from the IP address. If you cannot resolve it, leave
isEEA unknown.3
Call setConsent before you initialize
Map each answer to
granted, denied, or unknown, then pass them in. The first payload has to carry the right state, so this must run before init.The values below are an example. Send what the user actually chose, never a hardcoded set.- Android
- iOS
- React Native
- Flutter
- Expo
- Unity
4
Call it again whenever the choice changes
Consent is stored between launches, so the last value you set keeps being sent. If the user reopens your privacy settings and withdraws consent, call
setConsent again or you will keep reporting the old answer.