> For the complete documentation index, see [llms.txt](https://cmp.docs.sirdata.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cmp.docs.sirdata.net/standards-de-transmission-du-consentement/facebook-consent-mode/meta-limited-data-use-etats-unis.md).

# Limited Data Use (États-Unis)

Aux États-Unis, l'opposition du visiteur passe par l'option Limited Data Use de Meta, dans le pixel comme dans la Conversions API

Sur la **bannière américaine** (CCPA), l'option **Facebook Consent Mode** ne met pas le pixel Meta en pause. Elle transmet l'opposition du visiteur par l'option **Limited Data Use** (LDU) de Meta. Les événements continuent de partir, et Meta en limite l'usage : il les traite en tant que prestataire.

Si vous envoyez aussi vos événements par la **Conversions API** de Meta, depuis votre serveur, chaque événement doit porter la même décision. La CMP la met à votre disposition dans le `dataLayer`.

## Deux mécanismes à ne pas confondre

|                                 | Bannière RGPD (Europe)                       | Bannière américaine                          |
| ------------------------------- | -------------------------------------------- | -------------------------------------------- |
| Appel au pixel Meta             | `fbq('consent', 'revoke')` ou `'grant'`      | `fbq('dataProcessingOptions', …)`            |
| En cas de refus ou d'opposition | le pixel est mis en pause : **rien ne part** | les événements **partent**, limités par Meta |

{% hint style="warning" %}
N'utilisez pas `consent revoke` pour traiter une opposition américaine : vous couperiez votre propre mesure, alors que la loi demande seulement d'en limiter l'usage. À l'inverse, Limited Data Use ne remplace pas le consentement exigé en Europe.
{% endhint %}

## Mise en place

Activez l'option **Facebook Consent Mode** (**Modules complémentaires** > **Autres partenaires**), comme décrit sur la page [Facebook Consent Mode](/standards-de-transmission-du-consentement/facebook-consent-mode.md). La même option sert aux deux bannières : la CMP choisit le bon mécanisme selon la réglementation qui s'applique au visiteur.

## Quand la CMP applique Limited Data Use

La CMP applique Limited Data Use quand le visiteur s'oppose à la **vente**, au **partage** ou à la **publicité ciblée** :

* il s'est opposé à la vente dans la bannière : le 3ᵉ caractère de la chaîne `usprivacy` vaut `Y`, et `SaleOptOut` vaut `1` dans la section 7 du GPP (US National) ;
* il s'est opposé au partage ou à la publicité ciblée, par exemple sur un site qui déclare ne pas vendre de données : `SharingOptOut` ou `TargetedAdvertisingOptOut` vaut `1` dans la section 7 du GPP. La chaîne `usprivacy`, qui ne porte que la vente, n'est pas modifiée ;
* ou son navigateur envoie le signal **Global Privacy Control** (GPC), et la CMP l'honore. L'opposition est alors appliquée **dès la première page vue**, avant qu'aucun cookie ne la porte.

Sinon, la CMP appelle `fbq('dataProcessingOptions', [])` : pas de limitation.

## Les valeurs transmises

En cas d'opposition, la CMP indique l'État du visiteur quand il figure dans la liste de Meta :

* `fbq('dataProcessingOptions', ['LDU'], 1, <code de l'État>)` si l'État du visiteur figure dans la liste de Meta ;
* `fbq('dataProcessingOptions', ['LDU'], 0, 0)` sinon, ou si l'État du visiteur n'est pas connu : Meta le géolocalise alors lui-même. La CMP n'invente jamais un code.

| État          | Code |
| ------------- | ---- |
| Californie    | 1000 |
| Colorado      | 1001 |
| Connecticut   | 1002 |
| Floride       | 1003 |
| Oregon        | 1004 |
| Texas         | 1005 |
| Montana       | 1006 |
| Delaware      | 1007 |
| Nebraska      | 1008 |
| New Hampshire | 1009 |
| New Jersey    | 1010 |
| Minnesota     | 1011 |
| Maryland      | 1012 |
| Rhode Island  | 1013 |

## Conversions API : transmettre la même décision

La Conversions API est appelée par **votre serveur**, avec votre propre jeton. La limitation posée dans le navigateur ne s'y applique pas : un événement envoyé par votre serveur sans ces options n'est **pas** limité. La CMP n'appelle pas la Conversions API à votre place.

Chaque événement doit donc porter, dans son objet `data`, les trois champs correspondants :

| Champ de la Conversions API       | Équivalent dans le pixel  |
| --------------------------------- | ------------------------- |
| `data_processing_options`         | `['LDU']`, ou `[]`        |
| `data_processing_options_country` | `1` (États-Unis) ou `0`   |
| `data_processing_options_state`   | le code de l'État, ou `0` |

Ce n'est pas un réglage global : les options voyagent **avec chaque événement**.

### Les champs du dataLayer

Sur la bannière américaine, chaque événement `sirdataConsent` ou `sirdataNoConsent` que la CMP pousse dans le `dataLayer` porte trois champs :

| Champ du dataLayer      | Valeur                    | À reporter dans                               |
| ----------------------- | ------------------------- | --------------------------------------------- |
| `sirdataMetaLdu`        | `true` ou `false`         | `data_processing_options` : `['LDU']` ou `[]` |
| `sirdataMetaLduCountry` | `1` ou `0`                | `data_processing_options_country`             |
| `sirdataMetaLduState`   | le code de l'État, ou `0` | `data_processing_options_state`               |

Ce sont **exactement** les valeurs que la CMP vient de transmettre au pixel Meta. Lisez-les plutôt que de recalculer la règle vous-même, en particulier à partir du cookie `usprivacy` : il ne porte pas l'opposition au partage ni à la publicité ciblée, et sous GPC il n'existe pas encore à la première page vue, alors que l'opposition s'applique déjà.

Ces trois champs sont **absents** :

* si l'option Facebook Consent Mode n'est pas activée ;
* tant que la CMP n'a pas encore déterminé la réponse pour ce visiteur ;
* sur la bannière RGPD, où la décision passe par `consent grant` / `revoke`.

Dans Google Tag Manager, créez trois variables de type **Variable de couche de données** nommées `sirdataMetaLdu`, `sirdataMetaLduCountry` et `sirdataMetaLduState`, et transmettez-les à votre conteneur serveur ou à votre balise Conversions API.

En JavaScript, par exemple :

```javascript
// La dernière décision poussée par la CMP dans le dataLayer.
var decision = null;
(window.dataLayer || []).forEach(function (entree) {
    if (entree && typeof entree.sirdataMetaLdu === "boolean") decision = entree;
});

// Les options à joindre à chaque événement envoyé à la Conversions API.
// Sans décision publiée (voir ci-dessus), la CMP ne vous dit rien : à vous de décider.
var options = null;
if (decision) {
    options = decision.sirdataMetaLdu
        ? {
            data_processing_options: ["LDU"],
            data_processing_options_country: decision.sirdataMetaLduCountry,
            data_processing_options_state: decision.sirdataMetaLduState
        }
        : {data_processing_options: []};
}
```

{% hint style="info" %}
Si vous avez donné un autre nom à votre `dataLayer`, remplacez `window.dataLayer` par ce nom (voir [Data Layer](/install-1/data-layer.md)).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://cmp.docs.sirdata.net/standards-de-transmission-du-consentement/facebook-consent-mode/meta-limited-data-use-etats-unis.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
