Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

API Attribution Reporting

Contexte sécurisé: Cette fonctionnalité est uniquement disponible dans des contextes sécurisés (HTTPS), pour certains navigateurs qui la prennent en charge.

Obsolète: Cette fonctionnalité n'est plus recommandée. Même si certains navigateurs la prennent encore en charge, elle a peut-être déjà été supprimée des standards du web, est en passe d'être supprimée ou n'est conservée qu'à des fins de compatibilité. Évitez de l'utiliser et mettez à jour le code existant si possible ; consultez le tableau de compatibilité au bas de cette page pour vous aider à prendre votre décision. Sachez que cette fonctionnalité peut cesser de fonctionner à tout moment.

L'API Attribution Reporting permet aux développeur·euse·s de mesurer les conversions — par exemple, lorsqu'un·e utilisateur·ice clique sur une publicité intégrée sur un site, puis achète l'article sur le site du vendeur — et d'accéder ensuite aux rapports sur ces conversions. Elle le fait sans recourir aux cookies de suivi tiers.

Concepts et utilisation

Les annonceur·euse·s souhaitent généralement mesurer combien d'utilisateur·ice·s voient une publicité puis consultent et achètent un produit (conversions). Cela leur permet de déterminer quels emplacements publicitaires leur offrent le meilleur retour sur investissement (ROI) afin d'ajuster leur stratégie publicitaire en conséquence. Le processus de mesure des conversions inclut généralement la collecte de données telles que :

  • Quels utilisateur·ice·s ont converti (par exemple, acheté un article ou souscrit à un service), et combien.
  • Les régions géographiques où ils·elles se trouvent.
  • Sur quels sites les publicités ont été placées.
  • Combien de produits ont été vendus, de services souscrits, etc.
  • Le chiffre d'affaires généré.

Traditionnellement sur le web, la conversion a été mesurée à l'aide de cookies de suivi tiers. Une publicité est généralement intégrée dans une page web via un <iframe>, qui peut définir un cookie contenant des informations sur l'utilisateur·ice et son interaction avec la publicité.

Par la suite, lorsque l'utilisateur·ice décide de visiter le site de l'annonceur, à condition qu'il s'agisse du même domaine que la publicité, ce site peut accéder au cookie tiers précédemment défini par la publicité. L'annonceur peut alors associer les données de la publicité à ses propres données de première partie pour répondre à des questions telles que « l'utilisateur·ice a-t-il·elle acheté un produit après avoir interagi avec une publicité pour ce produit depuis un autre site ? »

Cela nuit à la confidentialité des utilisateur·ice·s. À ce stade, toute page du même domaine peut accéder à ce cookie, ainsi qu'aux informations provenant des sites qui intègrent ces pages. Un nombre étonnamment élevé d'acteur·ice·s pourra accéder à ces données et en déduire d'autres informations sur l'utilisateur·ice à partir de ses habitudes de navigation.

L'API Attribution Reporting offre un moyen de mesurer les conversions publicitaires tout en protégeant la confidentialité des utilisateur·ice·s.

Comment cela fonctionne-t-il ?

Illustrons le fonctionnement de l'API Attribution Reporting à l'aide d'un exemple.

Supposons que nous ayons une boutique en ligne, shop.example (c'est-à-dire l'annonceur), qui intègre une publicité pour l'un de ses produits sur un site de contenu, news.example (c'est-à-dire l'éditeur·ice). Le contenu de la publicité se trouve sur ad.shop.example.

Les propriétaires de la boutique en ligne souhaitent mesurer combien de conversions ils·elles obtiennent grâce aux utilisateur·ice·s interagissant avec la publicité, consultant la page produit sur leur site et ajoutant le produit à leur panier.

Représentation visuelle des étapes décrites ci-dessous

Les étapes sont les suivantes :

  1. Lorsqu'un·e utilisateur·ice visite le site news.example, une source d'attribution peut être enregistrée pour des interactions spécifiques avec la publicité intégrée. Il existe plusieurs façons pour un·e utilisateur·ice d'interagir avec les publicités sur la page. Pour qu'une interaction publicitaire enregistre une source d'attribution, la publicité doit envoyer une requête avec un en-tête Attribution-Reporting-Eligible pour indiquer que la réponse est éligible à l'enregistrement d'une source d'attribution. L'enregistrement est effectué si la réponse inclut un en-tête Attribution-Reporting-Register-Source approprié. La source d'attribution peut être, par exemple :
    • Un lien. Dans ce cas, l'interaction est le clic de l'utilisateur·ice sur le lien (directement via un élément HTML <a>, ou via un appel Window.open()). La source est enregistrée dans la réponse à la demande de navigation.
    • Une image telle qu'une bannière publicitaire ou un pixel de suivi transparent de 1x1. Dans ce cas, l'interaction est l'utilisateur·ice qui visite la page. La source est enregistrée lorsque l'image est chargée, c'est-à-dire lorsque le serveur répond à la demande d'image.
    • Une requête de recherche (c'est-à-dire une fetch()ou XMLHttpRequest). Dans ce cas, l'interaction peut être spécifiée comme ce qui a du sens pour votre application — par exemple, la requête fetch pourrait être invoquée par un évènement click ou submit. La source est enregistrée une fois que la réponse revient.
  2. Lors de l'interaction avec la source d'attribution, les données de la source retournées dans l'en-tête Attribution-Reporting-Register-Source sont stockées dans un cache local privé accessible uniquement par le navigateur. Ces données comprennent les données contextuelles et de première main dont disposent la page et l'annonceur, l'origine de la société de technologie publicitaire qui collecte les données de conversion et une ou plusieurs destinations (eTLD+1) où vous vous attendez à ce que la conversion à partir de cette annonce se produise (c'est-à-dire le(s) site(s) de l'annonceur, par exemple shop.example).
  3. Lorsque l'utilisateur·ice visite ensuite shop.example, ce site peut enregistrer un déclencheur d'attribution lorsqu'une interaction indique qu'une conversion a eu lieu (par exemple, l'utilisateur·ice clique sur le bouton « Ajouter au panier » sur shop.example). Le navigateur enverra alors une demande accompagnée d'un en-tête Attribution-Reporting-Eligible pour indiquer que la réponse est éligible à l'enregistrement d'un déclencheur d'attribution, et l'enregistrement sera terminé si la réponse inclut un en-tête Attribution-Reporting-Register-Trigger approprié. Le déclencheur d'attribution peut être, par exemple :
    • Une image telle que l'icône d'un panier d'achat ou un pixel de suivi transparent de 1x1. Dans ce cas, l'interaction est la visite de la page par l'utilisateur·ice. Le déclencheur est enregistré lorsque l'image se charge, c'est-à-dire lorsque le serveur répond à la demande d'image.
    • Une requête de récupération (c'est-à-dire une fetch() ou XMLHttpRequest). Dans ce cas, l'interaction peut être spécifiée comme ce qui a du sens pour votre application — par exemple, la requête fetch pourrait être invoquée par un évènement click ou submit. Le déclencheur est enregistré une fois que la réponse revient.
  4. Lorsque l'attribution du déclencheur est terminée, le navigateur tente de faire correspondre les données de l'en-tête Attribution-Reporting-Register-Trigger avec une entrée de données source enregistrée dans le cache local privé (voir 2.). Voir Enregistrement des déclencheurs d'attribution pour la méthodologie et les exigences de correspondance.
  5. Si une correspondance est trouvée, le navigateur envoie les données du rapport à un point de terminaison sur un serveur de rapport généralement détenu par le fournisseur de technologie publicitaire où elles peuvent être analysées en toute sécurité. Contrairement aux cookies, les données ne sont disponibles que pour le site spécifique auquel vous les envoyez - aucune donnée ne sera partagée ailleurs. Ces rapports peuvent être de deux types :
    • Rapports au niveau de l'évènement : Rapports basés sur un évènement source d'attribution, où des données source détaillées sont associées à des données de déclencheur grossières. Par exemple, un rapport peut ressembler à « L'ID de clic 200498 sur ad.shop.example a conduit à un achat sur shop.example », où « L'ID de clic 200498 » est la donnée source détaillée, et « achat » est la donnée de déclencheur grossière. Les données source détaillées peuvent encoder des données de première partie ou contextuelles de la page source, et les données de déclencheur peuvent encoder l'évènement de la page de déclenchement.
    • Rapports sommaires : Rapports plus détaillés qui combinent des données de plusieurs conversions à la fois du côté source et du côté déclencheur. Par exemple « La campagne ID 774653 sur news.example a conduit à 654 ventes de widgets sur shop.example provenant d'utilisateur·ice·s en Italie, avec un revenu total de 9540 $. » La compilation d'un rapport sommaire nécessite l'utilisation d'un service d'agrégation (voir par exemple le service d'agrégation Google (angl.)).

Pour plus d'informations sur l'implémentation de la fonctionnalité requise pour les étapes ci-dessus, voir :

  1. Enregistrement des sources d'attribution
  2. Enregistrement des déclencheurs d'attribution
  3. Génération de rapports

Interfaces

L'API Attribution Reporting ne définit pas d'interfaces propres.

Extensions à d'autres interfaces

HTMLAnchorElement.attributionSrc, HTMLImageElement.attributionSrc, HTMLScriptElement.attributionSrc

La propriété attributionSrc vous permet d'obtenir et de définir l'attribut attributionsrc sur les éléments HTML <a>, <img> et <script> de manière programmatique. Elle reflète la valeur de cet attribut.

fetch() et le constructeur Request(), option attributionReporting

Lors de la génération d'une requête via fetch(), cela indique que vous souhaitez que la réponse puisse enregistrer une source ou un déclencheur d'attribution.

XMLHttpRequest.setAttributionReporting()

Lors de la génération d'une requête via XMLHttpRequest, cela indique que vous souhaitez que la réponse puisse enregistrer une source ou un déclencheur d'attribution.

Window.open(), mot-clé de fonctionnalité attributionsrc

Provoque l'achèvement de l'enregistrement d'une source d'attribution et déclenche le stockage par le navigateur des données source associées (telles que fournies dans l'en-tête de réponse Attribution-Reporting-Register-Source) lorsque la méthode open() est terminée. Notez que les appels à Window.open() ne peuvent pas être utilisés pour enregistrer des déclencheurs d'attribution.

Éléments HTML

<a>, <img>, et <script> — l'attribut attributionsrc

Définit que vous souhaitez que le navigateur envoie un en-tête Attribution-Reporting-Eligible avec la requête de ressource associée. Côté serveur, cet en-tête est utilisé pour déclencher l'envoi d'un en-tête Attribution-Reporting-Register-Source ou Attribution-Reporting-Register-Trigger dans la réponse. Lors de l'enregistrement d'une source d'attribution, ceci est requis ; lors de l'enregistrement d'un déclencheur d'attribution, cela n'est requis que si vous souhaitez définir un serveur d'enregistrement distinct de la ressource pointée par l'attribut src. Notez que les éléments <a> ne peuvent pas être utilisés pour enregistrer des déclencheurs d'attribution.

En-têtes HTTP

Attribution-Reporting-Eligible

Requête HTTP indiquant que la réponse correspondante est éligible pour enregistrer une source ou un déclencheur d'attribution.

Attribution-Reporting-Register-Source

Réponse HTTP enregistrant une fonctionnalité de page en tant que source d'attribution. Ceci est inclus dans une réponse à une requête ayant inclus un en-tête Attribution-Reporting-Eligible.

Attribution-Reporting-Register-Trigger

Réponse HTTP enregistrant une fonctionnalité de page en tant que déclencheur d'attribution. Ceci est inclus dans une réponse à une requête ayant inclus un en-tête Attribution-Reporting-Eligible.

Permissions-Policy attribution-reporting directive

Contrôle si le document actuel est autorisé à utiliser le reporting d'attribution.

Inscription et tests locaux

Pour utiliser l'API Attribution Reporting sur vos sites, vous devez la définir dans le processus d'inscription Privacy Sandbox. Si vous ne le faites pas, le flux de l'API est bloqué à la réception, c'est-à-dire que les en-têtes de réponse sont ignorés et que les sources et déclencheurs ne sont pas enregistrés.

Vous pouvez tout de même tester localement votre code Attribution Reporting API sans inscription. Pour permettre les tests locaux, activez le drapeau développeur Chrome suivant :

chrome://flags/#privacy-sandbox-enrollment-overrides

Exemples

Voir Démo : API Attribution Reporting (angl.) pour un exemple d'implémentation (voir aussi le code source (angl.)).

Spécifications

Specification
Attribution Reporting
# element-attrdef-a-attributionsrc

Compatibilité des navigateurs

Voir aussi