---
title: "Google Ads restricted data processing and personalization"
description: "Send restricted_data_processing and allow_ad_personalization_signals from a US opt-out choice."
url: "https://cookiebeam.com/docs/integrations/google-ads-privacy"
lang: "en"
---

# Google Ads restricted data processing and personalization

Send restricted_data_processing and allow_ad_personalization_signals from a US opt-out choice.

Consent Mode v2 tells Google whether a visitor consented. These two settings tell Google how it may process what it still collects. They're separate mechanisms and they answer different questions, so running Consent Mode doesn't give you either one.

## Restricted data processing

**What it does.** Sets `restricted_data_processing` for US visitors so Google Ads handles their data in a limited way.

**Consent category.** None. This one follows the durable US opt-out record, not a category. That distinction matters: a European visitor who declines marketing has exercised a different right under a different law, and flagging them as restricted-data-processing would be the wrong signal.

The check is whether the visitor is in the US and has not deliberately opted **in** to sale and sharing. A visitor who made no choice restricts, because absence of a choice isn't consent. A visitor who explicitly opted in doesn't.

**How it works.** On each consent update the snippet reads the stored opt-out record and sends:

```js
gtag('set', 'restricted_data_processing', true);
```

Non-US visitors are skipped entirely. Nothing is sent for them.

One limitation to plan around. Unlike the Meta and TikTok limited data use signals, this one fires only on a consent event. It doesn't send anything at load from the stored record. A returning US visitor whose page view resolves without a consent event won't have the flag set on that page view, so if you rely on it, keep the banner configured to emit an update rather than resolving silently.

## Ad personalization signals

**What it does.** Sets `allow_ad_personalization_signals` to match whether the visitor allowed ad personalization.

**Consent category.** `marketing`, through the Consent Mode `ad_personalization` key.

**How it works.** On each consent update:

```js
gtag('set', 'allow_ad_personalization_signals', false);
```

The value is `true` only when `ad_personalization` resolved to granted.

## Setup

Both are off by default and are read from the banner theme's `customFeatures`:

```json
{
  "googleAdsPrivacy": {
    "restrictedDataProcessing": true,
    "adPersonalization": true
  }
}
```

There's no dashboard control for these yet. Setting them means updating the theme through the API. If you need them enabled and would rather not do that yourself, ask support.

Anything other than the literal `true` leaves a flag off, including the string `"true"`.

## Testing

Restricted data processing needs a US visitor, so test from a US IP or set the country override your staging environment uses. Watch the data layer:

```js
window.dataLayer.filter(function (e) {
  return e[0] === 'set';
});
```

Make a consent choice first, since that's what triggers the send. You should then see a `set` for `restricted_data_processing`. If you see nothing, confirm the visitor resolved as US: the snippet exits before sending anything when they didn't.

For ad personalization, accept marketing and confirm the value flips to `true` on the update.
