En quoi consistent les clés d'agrégation, comment elles sont utilisées dans l'API Attribution Reporting et comment convertir les objectifs en clés ?
En tant qu'entreprise ad tech qui diffuse des campagnes dans plusieurs zones géographiques pour différentes catégories de produits, vous souhaitez aider les annonceurs à répondre aux questions suivantes:
- Combien d'achats ont été générés pour chaque catégorie de produits par chacune de mes campagnes dans chaque zone géographique ?
- Quels sont les revenus générés par chaque catégorie de produits pour chacune de mes campagnes dans chaque zone géographique ?
Même si de nombreuses entreprises de technologie publicitaire encouragent les annonceurs à configurer différents types de conversions, se concentrer sur les conversions les plus importantes (les achats, par exemple) est un bon moyen de s'assurer que les résultats récapitulatifs sont détaillés et précis pour ces événements importants.
Pour ce faire, vous devrez réfléchir aux questions auxquelles vous souhaitez répondre avant que les données ne soient collectées.
Dimensions, clés et valeurs
Pour répondre à ces questions, examinons les dimensions, les clés et les valeurs.
Dimensions
Pour comprendre comment vos campagnes génèrent des revenus, comme décrit ici, vous devez effectuer le suivi des dimensions suivantes:
- ID de la campagne publicitaire: identifiant de la campagne spécifique.
- ID géographique: zone géographique dans laquelle l'annonce a été diffusée.
- Catégorie de produit: type de produit tel que vous l'avez défini.
Alors que les dimensions "ID de campagne" et "ID de zone géographique" sont connues lorsque l'annonce est diffusée (heure de diffusion de l'annonce), la catégorie de produit est connue à partir d'un événement déclencheur, lorsque l'utilisateur effectue une conversion (date et heure de la conversion).
Les dimensions dont vous souhaitez effectuer le suivi pour cet exemple sont illustrées dans l'image suivante:
<ph type="x-smartling-placeholder">![l'ID de campagne, l'ID de zone géographique et la catégorie de produits.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/campaign-id-geography-id-223ed5327b057.png?authuser=0000&hl=fr)
Que sont les clés d'agrégation (buckets) ?
Les termes "clé d'agrégation" et "bucket" désignent la même chose. La clé d'agrégation est utilisée dans les API du navigateur servant à configurer les rapports. Le terme bucket est utilisé dans les rapports agrégables et récapitulatifs, ainsi que dans les API de service d'agrégation.
Une clé d'agrégation est une donnée qui représente les valeurs des dimensions faisant l'objet d'un suivi. Les données sont ensuite agrégées avec chaque clé d'agrégation.
Par exemple, supposons que vous effectuez le suivi des dimensions "Catégorie de produits", "ID de zone géographique" et "ID de campagne".
Lorsqu'un internaute situé dans la zone géographique ID 7 voit une annonce pour la campagne 12, puis effectue une conversion ultérieurement en achetant un produit appartenant à la catégorie de produits 25, vous pouvez définir une clé d'agrégation semblable à celle illustrée dans l'image ci-dessous:
![Clé d'agrégation pour une conversion.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-key-a-conver-0cd37e4079fee.png?authuser=0000&hl=fr)
Vous verrez plus tard qu'une clé d'agrégation ne ressemble pas exactement à ceci dans la pratique. Toutefois, pour l'instant, concentrons-nous sur les informations qu'elle contient.
Que sont les valeurs agrégables ?
Pour répondre à vos questions concernant les dimensions que nous avons décrites, vous voulez savoir:
- Nombre d'achats (nombre d'achats). Une fois agrégé et disponible dans un rapport récapitulatif, il s'agit du nombre total d'achats (valeur récapitulative).
- Revenus générés par chaque achat (valeur de l'achat). Une fois agrégé et mis à disposition dans un rapport récapitulatif, il s'agit du revenu total (valeur récapitulative).
Chacune de ces valeurs (le nombre d'achats pour une conversion et la valeur des achats pour une conversion) est une valeur agrégable. Vous pouvez considérer les valeurs agrégables comme les valeurs correspondant à vos objectifs de mesure.
Question | Valeur agrégable = objectif de mesure |
---|---|
Combien d'achats... | Nombre d'achats |
Revenus... | Valeur des achats |
Lorsqu'un internaute situé dans la zone géographique ID 7 voit une annonce pour l'ID de campagne 12, puis effectue une conversion par la suite en achetant un produit de la catégorie de produits 25 à 120 $ (en supposant que votre devise est le dollar américain), vous pouvez définir une clé d'agrégation et des valeurs agrégables qui se présentent comme suit:
<ph type="x-smartling-placeholder">![Clés et valeurs d'agrégation](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-keys-values-912b4f69661bd.png?authuser=0000&hl=fr)
Les valeurs agrégables sont additionnées par clé pour de nombreux utilisateurs afin de générer des insights agrégés, sous forme de valeurs récapitulatives dans les rapports récapitulatifs.
![Générer des insights agrégés](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-aggregated-ins-e7ef89ea0a238.png?authuser=0000&hl=fr)
Les valeurs agrégables sont additionnées afin de générer des insights agrégés pour vos objectifs de mesure.
Notez que ce schéma omet le déchiffrement et représente un exemple simplifié sans bruit. Dans la section suivante, nous décrirons cet exemple avec du bruit.
Des clés et valeurs aux rapports
Voyons maintenant le lien entre les clés et valeurs agrégables et les rapports.
Rapports agrégables
Lorsqu'un utilisateur voit une annonce ou clique dessus, puis effectue une conversion par la suite, vous demandez au navigateur de stocker une paire {aggregate key, aggregatable value}.
Dans notre exemple, lorsqu'un utilisateur voit une annonce ou clique dessus, puis effectue une conversion, vous demandez au navigateur de générer deux contributions (une par objectif de mesure).
![Génération de deux contributions.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-contributions-fa8bc97295bc7.png?authuser=0000&hl=fr)
Vous verrez plus tard qu'un rapport agrégable {aggregate key, aggregatable value} ne ressemble pas exactement à ceci. Mais pour l'instant, concentrons-nous sur les informations qu'il contient.
Lorsque vous demandez au navigateur de générer deux contributions, il génère un rapport agrégable (s'il peut faire correspondre la conversion à une vue ou à un clic précédents).
Un rapport agrégable contient les éléments suivants:
- La ou les contributions que vous avez configurées.
- Métadonnées sur l'événement de clic ou de vue et l'événement de conversion (site sur lequel la conversion s'est produite, etc.). Affichez tous les champs dans un rapport agrégable.
![Rapport agrégable obtenu.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/the-resulting-aggregatabl-3df86364f7725.png?authuser=0000&hl=fr)
Les rapports agrégables sont au format JSON et incluent, entre autres, un champ de charge utile qui sera utilisé comme entrée de données pour le rapport récapitulatif final.
La charge utile contient une liste de contributions, chacune étant une paire {aggregate key, aggregatable value} :
bucket
: clé d'agrégation, encodée en tant que chaîne d'octets.value
: valeur agrégable pour cet objectif de mesure, encodée sous forme de chaîne d'octets.
Exemple :
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
En pratique, les rapports agrégables sont encodés de manière à ce que les buckets et les valeurs soient différents de ceux de l'exemple précédent (c'est-à-dire qu'un bucket peut ressembler à \u0000\u0000\x80\u0000
). Bucket et value sont des chaînes d'octets.
Rapports de synthèse
Les rapports agrégables sont compilés pour de nombreux navigateurs et appareils (utilisateurs) comme suit:
- Une technologie publicitaire demande des rapports récapitulatifs pour un ensemble donné de clés et un ensemble donné de rapports agrégables provenant de nombreux navigateurs (utilisateurs) différents.
- Les rapports agrégables sont déchiffrés par le service d'agrégation.
- Pour chaque clé, les valeurs agrégables issues des rapports agrégables sont additionnées.
- Du bruit est ajouté à la valeur récapitulative.
![Les rapports agrégables, ainsi que l'agrégation, le déchiffrement et le bruit, génèrent un rapport récapitulatif.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregatable-reports-plus-9bd26966f76f7.png?authuser=0000&hl=fr)
Vous obtenez alors un rapport récapitulatif contenant un ensemble de paires {aggregate key, summary value}.
Un rapport récapitulatif contient un ensemble de paires clé-valeur de type dictionnaire JSON. Chaque paire contient:
bucket
: clé d'agrégation, encodée en tant que chaîne d'octets.value
: valeur récapitulative en décimales pour un objectif de mesure donné, additionnée à partir de tous les rapports agrégables disponibles, avec un niveau de bruit supplémentaire.
Exemple :
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
En pratique, les rapports récapitulatifs sont encodés de manière à ce que les buckets et les valeurs soient différents de ceux indiqués dans l'exemple (c'est-à-dire qu'un bucket peut ressembler à \u0000\u0000\x80\u0000
). Bucket et value sont des chaînes d'octets.
Les clés d'agrégation en pratique
Les clés d'agrégation (buckets) sont définies par une entreprise ad tech. Elles s'effectuent généralement en deux étapes: lorsqu'un utilisateur clique ou voit une annonce, et lorsqu'il effectue une conversion.
Structure des clés
Nous utiliserons le terme structure de clé pour désigner l'ensemble des dimensions encodées dans une clé.
Par exemple, ID de la campagne × GeoID × catégorie de produit constitue une structure clé.
![Structure de la clé](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-17b99e9ad0974.png?authuser=0000&hl=fr)
Types de clés
Les valeurs agrégables sont additionnées pour une clé donnée pour plusieurs utilisateurs/navigateurs. Toutefois, nous avons constaté que les valeurs agrégables permettent de suivre différents objectifs de mesure, comme la valeur des achats ou le nombre d'achats. Vous voulez vous assurer que le service d'agrégation additionnera les valeurs agrégables du même type.
Pour ce faire, dans chaque clé, encodez une donnée qui vous indique ce que la valeur récapitulative représente, c'est-à-dire l'objectif de mesure auquel cette clé fait référence. Pour ce faire, vous pouvez créer une dimension supplémentaire pour votre clé, qui représente le type d'objectif de mesure.
Dans l'exemple précédent, ce type d'objectif de mesure aurait deux valeurs possibles:
- Le nombre d'achats est le premier type d'objectif de mesure.
- La valeur des achats est le deuxième type d'objectif de mesure.
![Objectifs de mesure et types d'objectifs de mesure](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/measurement-goals-measur-6f6f8b6468ec3.png?authuser=0000&hl=fr)
Si vous aviez n objectifs de mesure, le type d'objectif de mesure comporte n types de valeurs différents.
Vous pouvez considérer les dimensions d'une clé comme une métrique. Par exemple, vous pouvez indiquer le nombre d'achats d'un certain produit, par campagne et par zone géographique.
Taille de la clé et de la dimension
La taille maximale de la clé est définie en bits, c'est-à-dire le nombre de zéros et de uns en binaire pour créer la clé complète. L'API autorise une longueur de clé de 128 bits.
Cette taille permet d'utiliser des clés très précises. Toutefois, plus elles sont précises, elles sont plus susceptibles de générer plus de bruit dans les valeurs. Pour en savoir plus sur le bruit, consultez Comprendre le bruit.
Comme indiqué précédemment, les dimensions sont encodées dans la clé d'agrégation. Chaque dimension a une certaine cardinalité, c'est-à-dire le nombre de valeurs distinctes qu'elle peut prendre. En fonction de sa cardinalité, chaque dimension doit être représentée par un certain nombre de bits. Avec n bits, il est possible d'exprimer 2n options distinctes.
Par exemple, la dimension "Pays" peut avoir une cardinalité de 200, car il y a environ 200 pays dans le monde. Combien de bits sont nécessaires pour encoder cette dimension ?
7 bits ne stockent que 27 = 128 options distinctes, ce qui est inférieur aux 200 options nécessaires.
8 bits stockeraient 28 = 256 options distinctes, soit plus que les 200 bits nécessaires. Vous pouvez donc utiliser n=8 bits pour encoder cette dimension.
Encodage de clé
Lorsque vous définissez des clés dans le navigateur, elles doivent être encodées en hexadécimal. Dans les rapports récapitulatifs, les clés apparaissent en binaire (et sont nommées en buckets).
Définir deux éléments clés pour une clé complète
Supposons que vous utilisiez une clé pour effectuer le suivi des dimensions suivantes:
- ID de la campagne
- ID de zone géographique
- Catégorie de produits
Alors que les dimensions "ID de campagne" et "ID de zone géographique" sont connues lorsque l'annonce est diffusée (heure de diffusion de l'annonce), la catégorie de produit est connue à partir d'un événement déclencheur, lorsque l'utilisateur effectue une conversion (date et heure de la conversion).
En pratique, cela signifie que vous devez définir une clé en deux étapes:
- Vous devez définir une partie de la clé (ID de campagne × ID de zone géographique) au moment du clic ou de la vue.
- Vous devez définir la deuxième partie de la clé (catégorie de produits) au moment de la conversion.
Ces différentes parties des clés sont appelées pièces clés.
Une clé est calculée en prenant le XOR (^
) de ses éléments clés.
![les éléments clés XOR.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/xoring-key-pieces-6c7b39f58a41f.png?authuser=0000&hl=fr)
Exemple :
- Pièce de la clé côté source =
0x159
- Clé côté déclencheur =
0x400
- Clé =
0x159 ^ 0x400 = 0x559
Aligner les éléments clés
Avec deux éléments de clé de 64 bits étendus à 128 bits à l'aide de remplissages/décalages de 64 bits soigneusement placés (les seize zéros), les éléments de clé XOR équivaut à les concaténer, ce qui est plus facile à raisonner et à vérifier:
- Pièce de la clé côté source =
0xa7e297e7c8c8d0540000000000000000
- Clé côté déclencheur =
0x0000000000000000674fbe308a597271
- Clé =
0xa7e297e7c8c8d0540000000000000000 ^ 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Plusieurs clés par vue ou clic sur une annonce
En pratique, vous pouvez définir plusieurs clés par événement de source d'attribution (clic ou vue d'annonce). Par exemple, vous pouvez définir:
- Clé effectuant le suivi de l'identifiant géographique et de l'ID de campagne.
- Une autre clé effectue le suivi du type de création et de l'ID de campagne.
Consultez la stratégie B pour voir un autre exemple.
Encodage des dimensions dans des clés
Lorsque vous demandez des rapports récapitulatifs, vous devez indiquer au service d'agrégation les métriques auxquelles vous souhaitez accéder, en demandant des rapports récapitulatifs pour un ensemble spécifique de clés d'agrégation.
Les rapports de synthèse contiennent des paires {key, summary value} brutes et aucune information supplémentaire sur la clé. Par conséquent :
- Lorsque vous définissez des clés lorsque l'utilisateur voit une annonce ou clique dessus, puis effectue une conversion, vous devez définir des clés de manière fiable en fonction des valeurs des dimensions qu'elles représentent.
- Lorsque vous définissez les clés pour lesquelles vous souhaitez demander des rapports récapitulatifs, vous devez générer de manière fiable ou accéder instantanément aux mêmes clés que celles définies lorsque l'utilisateur a vu ou cliqué sur une annonce, puis effectué une conversion, en fonction des valeurs des dimensions pour lesquelles vous souhaitez afficher les données globales.
Encodage des dimensions à l'aide de mappages de structure de clé
Pour encoder des dimensions en clés, vous pouvez créer et gérer un mappage de structure de clés à l'avance, lors de la définition de vos clés (avant l'heure de diffusion de l'annonce).
Un mappage de la structure de clés représente chacune de vos dimensions et leur position dans la clé.
En pratique, vous devez implémenter et gérer la logique du décodeur pour créer et gérer des mappages de structure de clés. Si vous recherchez une méthode qui ne vous oblige pas à le faire, envisagez plutôt d'utiliser une approche basée sur le hachage.
Exemple :
Supposons que vous souhaitiez suivre à la fois les achats et la valeur des achats pour des campagnes, des zones géographiques et des produits spécifiques.
La catégorie de produits, l'ID géographique et l'ID de campagne doivent être des dimensions dans vos clés. En outre, comme vous souhaitez suivre deux objectifs de mesure différents, à savoir le nombre d'achats et la valeur des achats, vous devez ajouter une dimension dans votre clé qui permet de suivre le type de clé. Cela vous permettra de définir ce que la valeur agrégable représente réellement lors de la réception de paires {key, aggregatable value} dans les rapports de synthèse.
Avec ces objectifs de mesure, votre clé comporte les dimensions suivantes:
- Catégorie de produits
- Type d'objectif de mesure
- ID de zone géographique
- ID de la campagne
En observant chaque dimension, supposons que vous devez effectuer le suivi des éléments suivants pour votre cas d'utilisation:
- 29 catégories de produits différentes.
- Huit régions géographiques différentes: Amérique du Nord, Amérique centrale, Amérique du Sud, Europe, Afrique, Asie, Caraïbes et Océanie.
- 16 campagnes différentes.
Voici le nombre de bits nécessaires pour encoder chaque dimension de votre clé:
- Catégorie de produit: 5 bits (25 = 32 > 29).
- Type d'objectif de mesure: 1 bit. L'objectif de mesure est soit le nombre d'achats, soit la valeur des achats, ce qui signifie deux possibilités distinctes : par conséquent, un bit est suffisant pour stocker cela.
ID géographique: 3 bits (23 = 8). Vous pouvez également définir une carte de dimensions pour l'identifiant géographique afin de savoir quelle région géographique représente chaque valeur binaire. La carte des dimensions pour la dimension "Identifiant géographique" peut se présenter comme suit:
Valeur binaire de la clé Zone géographique 000 Amérique du Nord 001 Amérique centrale 010 Amérique du Sud 011 Europe 100 Afrique 101 Asie 110 Caraïbes 111 Océanie ID de campagne: 4 bits (24 = 16)
Les clés qui suivent cette structure auront une longueur de 13 bits (5 + 1 + 3 + 4).
Dans cet exemple, le mappage de la structure de clés pour ces clés ressemblerait à ceci:
![Mappage de la structure des clés.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-map-4664a0905c7de.png?authuser=0000&hl=fr)
C'est vous qui choisissez l'ordre des dimensions dans la clé.
Pour illustrer la manière dont les dimensions constituent une structure clé, nous utiliserons une représentation binaire. C'est pourquoi l'ID de campagne (premiers bits) est le plus à droite et la catégorie de produits (derniers bits) est la plus à gauche.
Dans chaque dimension, le bit le plus significatif (celui qui porte la valeur numérique la plus élevée) est le bit le plus à gauche. Le bit le moins significatif (celui qui contient la plus petite valeur numérique) est le bit le plus à droite.
Voyons comment vous utiliseriez un mappage de structure de clé pour décoder une clé.
Prenons 0b1100100111100 comme exemple de clé arbitraire, et supposons que vous ayez un moyen de savoir que cette clé suit le plan de structure de clé dans l'illustration précédente.
Selon le mappage de structure de clé, cette clé effectuerait un décodage en 11001 0 011 1100
.
Ainsi, la clé 0b1100100111100 représente le nombre d'achats de la catégorie de produits 25 pour l'ID de campagne 12 lancé en Europe.
Encoder des dimensions à l'aide d'une fonction de hachage
Plutôt que d'utiliser un mappage de structure de clé, vous pouvez utiliser une fonction de hachage pour générer des clés de manière dynamique de manière cohérente et fiable.
Le fonctionnement est le suivant:
- Sélectionnez un algorithme de hachage.
- Au moment de la diffusion de l'annonce, générez une chaîne incluant toutes les dimensions dont vous souhaitez effectuer le suivi, ainsi que leurs valeurs. Pour générer l'élément clé côté source,
hacher cette chaîne et envisager d'ajouter un suffixe de 64 bits de zéros à align
avec la pièce de la clé côté déclencheur et rendre XOR plus facile à raisonner.
- Pièce clé
côté source =<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Notez que
COUNT
encode la même chose quemeasurementGoalType=0
dans l'approche de mappage de la structure de clés.COUNT
est un peu plus mince et plus explicite.
- Pièce clé
- Au moment de la conversion, générez une chaîne incluant toutes les dimensions dont vous souhaitez effectuer le suivi.
leurs valeurs. Pour générer une clé côté déclencheur, hachez cette chaîne et ajoutez un préfixe de 64 bits composé de zéros:
<ph type="x-smartling-placeholder">
- </ph>
- Pièce de la clé côté déclencheur
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Pièce de la clé côté déclencheur
=
- Le navigateur effectue une opération XOR sur ces éléments clés pour générer une clé.
- Clé d'agrégation 128 bits
=<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
- Clé d'agrégation 128 bits
- Ensuite, lorsque vous serez prêt à demander un rapport récapitulatif pour cette clé, générez-le instantanément:
<ph type="x-smartling-placeholder">
- </ph>
- Générez un élément clé côté source et côté déclencheur en fonction des dimensions qui vous intéressent, comme vous l'avez fait précédemment.
- Pièce clé
côté source =<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Pièce de la clé côté déclencheur
=<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Clé côté déclencheur =
toHex(hash("productCategory=25"))
- Pièce clé
- Tout comme pour le navigateur, exécutez une opération XOR sur ces éléments clés pour générer la même clé que celle que le navigateur a générée précédemment.
- Clé d'agrégation 128 bits
=<64-bit source-side key piece hash><64-bit source-side key piece hash>
- Clé d'agrégation 128 bits
- Générez un élément clé côté source et côté déclencheur en fonction des dimensions qui vous intéressent, comme vous l'avez fait précédemment.
Voici quelques conseils pratiques si vous utilisez cette approche basée sur le hachage:
- Veillez à toujours respecter le même ordre pour les dimensions. Cela garantit que vos hachages peuvent être générés à nouveau de manière fiable. (
"COUNT, CampaignID=12, GeoID=7"
ne génère pas le même hachage que"COUNT, GeoID=7, CampaignID=12"
.) Pour ce faire, un moyen simple consiste à trier les dimensions par ordre alphanumérique. C'est ce que nous allons faire dans cet exemple, à l'exception du fait que nous définirons toujoursCOUNT
ouVALUE
comme premier élément de la dimension. Il s'agit d'un choix pour la lisibilité, carCOUNT
ouVALUE
encodent des informations dont le concept est légèrement différent de celui de toutes les autres dimensions. - Effectuez le suivi de l'ensemble de dimensions que vous utilisez dans les clés. Vous ne souhaitez pas générer de clés en fonction d'un ensemble de dimensions que vous n'avez jamais utilisées.
- Les collisions sont rares si une fonction de hachage appropriée est utilisée. Toutefois, la vérification par rapport aux hachages utilisés précédemment (qui doivent être stockés pour interpréter les résultats du service d'agrégation) peut éviter d'introduire de nouvelles clés qui entrent en conflit avec des clés plus anciennes.
Pour découvrir comment utiliser les clés basées sur le hachage en pratique, consultez l'exemple d'une conversion par clic ou par vue.
Les valeurs agrégables en pratique
Elle définit des valeurs agrégables lorsqu'un utilisateur effectue une conversion.
Pour protéger la confidentialité des utilisateurs, une limite supérieure est appliquée aux contributions de chaque utilisateur. Sur l'ensemble des valeurs agrégables associées à une même source (clic ou visionnage d'annonce), aucune valeur ne peut dépasser un certain seuil de contribution.
Cette limite est appelée CONTRIBUTION_BUDGET
. Dans l'explication, cette limite est appelée budget L1, mais elle est identique à CONTRIBUTION_BUDGET
.
Pour en savoir plus sur le budget de contribution, consultez Budget de contribution pour les rapports récapitulatifs.
Exemple: une conversion par clic ou par vue
Pour cet exemple, supposons que vous cherchez à répondre aux questions suivantes:
- Quelles sont les catégories de produits les plus intéressantes dans chaque région ?
- Quelles sont les stratégies de campagne les plus efficaces dans chaque région ?
Supposons également que vous ayez besoin d'insights hebdomadaires pour votre cas d'utilisation.
Vous devez également effectuer le suivi des éléments suivants:
- 16 campagnes différentes.
- Huit régions géographiques différentes: Amérique du Nord, Amérique centrale, Amérique du Sud, Europe, Afrique, Asie, Caraïbes et Océanie.
- 29 catégories de produits différentes.
Données à évaluer
Même si de nombreuses entreprises de technologie publicitaire encouragent les annonceurs à configurer différents types de conversions, se concentrer sur les conversions les plus importantes (les achats, par exemple) est un bon moyen de s'assurer que les résultats agrégés sont détaillés et précis pour ces événements de conversion importants. En effet, plus vous mesurez de métriques, plus votre budget de contribution par métrique est faible, et plus chaque valeur est susceptible d'être bruyante. Vous devez donc choisir soigneusement les éléments à mesurer.
Dans cet exemple, nous allons nous concentrer sur les configurations de campagne qui ne mesurent qu'une seule conversion par clic ou par vue: un achat.
Vous pourrez toujours mesurer le nombre d'achats et la valeur des achats, et accéder à diverses statistiques globales importantes, comme la valeur totale des achats et la répartition géographique. Le bruit reste raisonnable et une approche de mise à l'échelle simple pour votre budget de contribution est garantie.
Qu'en est-il des devises ?
Pour diffuser des campagnes dans différentes régions, les devises doivent être prises en compte. Vous pouvez :
- Faites de la devise une dimension dédiée dans les clés d'agrégation.
- Vous pouvez également déduire la devise à partir de l'ID d'une campagne et convertir toutes les devises dans une devise de référence.
Dans cet exemple, nous supposons que vous pouvez déduire la devise à partir d'un ID de campagne. Vous pouvez ainsi convertir toute valeur d'achat donnée dans la devise locale de l'utilisateur vers la devise de référence de votre choix. Vous pouvez également effectuer cette conversion à la volée, lorsque l'utilisateur achète un article.
Avec cette technique, toutes les valeurs agrégables sont exprimées dans la même devise de référence et peuvent donc être additionnées pour générer une valeur totale d'achat agrégée, c'est-à-dire une valeur d'achat récapitulative.
Convertir les objectifs en clés
Pour vos objectifs et métriques de mesure, vous disposez de plusieurs options cette stratégie clé. Concentrons-nous sur deux de ces stratégies:
- Stratégie A: une structure de clés précise
- Stratégie B: deux structures clés approximatives.
Stratégie A: une arborescence profonde (une structure de clé précise)
Dans la stratégie A, vous utilisez une structure de clés précise qui inclut dont vous avez besoin:
![Une structure de clé précise](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/one-granular-key-structur-85e0f0ef579b3.png?authuser=0000&hl=fr)
Toutes vos clés utilisent cette structure.
Vous divisez cette structure de clés en deux types de clés pour permettre deux mesures objectifs.
- Type de clé 0: type d'objectif de mesure = 0, que vous décidez de définir comme nombre d'achats.
- Type de clé 1: type d'objectif de mesure = 1, que vous décidez de définir comme valeur des achats.
Les rapports de synthèse se présentent comme suit:
![Rapport de synthèse sur la stratégie A.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/strategy-summary-report-c13d51d0ef5b.png?authuser=0000&hl=fr)
Vous pouvez considérer la stratégie A comme une "arborescence unique" stratégie:
- Chaque valeur récapitulative dans les rapports de synthèse est associée à toutes les des variables dont vous effectuez le suivi.
- Vous pouvez regrouper ces valeurs récapitulatives avec chacune de ces dimensions, Ces cumuls peuvent donc dépendre du nombre de dimensions dont vous disposez.
Avec la stratégie A, vous répondrez à vos questions de la manière suivante:
Question | Réponse |
---|---|
Quelles sont les catégories de produits les plus intéressantes dans chaque région ? | Additionner le nombre d'achats et les valeurs figurant dans le récapitulatif
pour l'ensemble des campagnes. Vous obtenez le nombre d'achats et leur valeur par ID géographique × Produit catégorie. Pour chaque région, comparez la valeur des achats et le nombre de catégories de produits. |
Quelles sont les stratégies de campagne les plus efficaces dans chaque région ? | Additionner le nombre d'achats et les valeurs figurant dans le récapitulatif
pour toutes les catégories de produits. Vous obtenez ainsi le nombre d'achats et leur valeur par ID de campagne × ID géographique. Pour chaque région, comparez la valeur des achats et le nombre de conversions campagnes. |
Avec la stratégie A, vous pouvez également répondre directement à cette troisième question:
"Quel est le chiffre d'affaires généré par chaque produit par chacune de mes campagnes dans chaque zone géographique de la région générée ? »
Même si les valeurs de résumé comportent du bruit, vous pouvez déterminer les différences de valeur mesurée entre chaque campagne ne sont pas dues au bruit seul. Découvrez comment procéder dans Comprendre le bruit.
Stratégie B: deux arbres peu profonds (deux structures principales grosses)
Dans la stratégie B, vous utilisez deux structures de clés générales, chacune incluant un sous-ensemble de les dimensions dont vous avez besoin:
![Structure de clés 1 et structure de clés 2](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-1-key-stru-f5313e8766cd6.png?authuser=0000&hl=fr)
Vous divisez chacune de ces structures de clés en deux types de clés pour prendre en charge deux vos objectifs de mesure.
- Type d'objectif de mesure = 0, que vous décidez de définir comme un objectif d'achat nombre.
- Type d'objectif de mesure = 1, que vous décidez de définir comme un objectif d'achat de sortie.
Vous obtenez quatre types de clés:
- Type de clé I-0: structure de clé I, nombre d'achats
- Type de clé I-1: structure de clé I, valeur d'achat.
- Type de clé II-0: structure de clé II, nombre d'achats
- Type de clé II-1: structure de clé II, valeur de l'achat
Les rapports de synthèse se présentent comme suit:
![Stratégie de rapport de synthèse B.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/summary-report-strategy-b-a402cebbf58ca.png?authuser=0000&hl=fr)
La stratégie B est comparable à "deux arbres peu profonds". stratégie:
- Les valeurs récapitulatives des rapports de synthèse correspondent à l'un des deux petits ensembles de .
- Vous pouvez regrouper ces valeurs récapitulatives avec chacune des dimensions dans que dans l'option A, car il y a moins de dimensions à regrouper.
Avec la stratégie B, vous répondriez à vos questions de la manière suivante:
Question | Réponse |
---|---|
Quelles sont les catégories de produits les plus intéressantes dans chaque région ? | Accédez directement au récapitulatif des nombres d'achats et des valeurs les rapports de synthèse. |
Quelles sont les stratégies de campagne les plus efficaces dans chaque région ? | Accédez directement au récapitulatif des nombres d'achats et des valeurs les rapports de synthèse. |
Décision: Stratégie A
La stratégie A est plus simple. toutes les données suivent la même structure de clés, qui signifie que vous n'avez qu'une seule structure de clés à gérer.
Cependant, avec la stratégie A, vous devez additionner les valeurs récapitulatives que vous recevez des rapports de synthèse pour répondre à certaines de vos questions. Chacune de ces valeurs récapitulatives est bruyante. En résumant ces données, vous en additionnant les bruits.
Ce n'est pas le cas avec la stratégie B, où les valeurs de résumé sont exposées dans le récapitulatif vous apportent déjà les informations dont vous avez besoin. Cela signifie que la stratégie B aura probablement moins d'impact du bruit que la stratégie A.
Comment déterminer quelle stratégie utiliser ? Pour les annonceurs existants vous pouvez utiliser les données historiques pour déterminer si le volume les conversions conviennent mieux à la stratégie A ou B. Toutefois, pour les nouvelles annonceurs ou campagnes, vous pouvez décider de:
- Collectez les données sur l'équivalent d'un mois grâce à des clés précises (stratégie A). Étant donné que vous prolongez la durée de collecte des données, les valeurs récapitulatives sera plus élevé et le bruit relativement faible.
- évaluer avec une précision raisonnable le nombre de conversions hebdomadaires et de la valeur d'achat.
Dans cet exemple, supposons que le nombre d'achats hebdomadaires et la valeur des achats sont suffisamment élevées pour que la stratégie A génère un pourcentage de bruit acceptable pour votre cas d'utilisation.
Parce que la stratégie A est plus simple et génère un impact bruité affectent votre capacité à prendre des décisions, vous décidez d'opter pour la stratégie A.
Sélectionner un algorithme de hachage
Vous décidez d'adopter une approche basée sur le hachage. pour générer vos clés. Pour ce faire, vous devez sélectionner un algorithme de hachage pour pour étayer cette approche.
Supposons que vous avez sélectionné SHA-256. Vous pouvez également utiliser une méthode plus simple, moins un algorithme sécurisé, comme MD5.
Dans le navigateur: définir les clés et les valeurs
Maintenant que vous avez choisi une structure de clé et un algorithme de hachage, prêts à enregistrer des clés et des valeurs lorsque les utilisateurs cliquent sur les annonces ou les voient, convertir.
Voici un aperçu des en-têtes que vous allez définir pour enregistrer les clés et les valeurs dans le navigateur:
![Enregistrer des clés et des valeurs pour une vue ou un clic](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-59763f86a1f19.png?authuser=0000&hl=fr)
![Enregistre des clés et des valeurs pour une conversion.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-155f081dc7bca.png?authuser=0000&hl=fr)
Définir les éléments clés côté source
Lorsqu'un utilisateur voit une annonce ou clique dessus, définissez les clés d'agrégation dans le
En-tête Attribution-Reporting-Register-Aggregatable-Source
.
À ce stade, pour chaque clé, vous ne pouvez définir que la partie de la clé, ou
élément clé, connu au moment de la diffusion de l'annonce.
Générons les éléments clés:
Pièce de clé côté source pour l'ID de clé... | Chaîne contenant les valeurs de dimension que vous souhaitez définir | Hachage de cette chaîne au format hexadécimal, raccourci aux 64 premiers bits (64/4) = 16 caractères1) | Hachage hexadécimal avec des zéros ajoutés pour simplifier Opérations XOR. Il s'agit de l'élément clé côté source. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Définissons maintenant les éléments clés:
// Upon receiving the request from the publisher site
res.set(
"Attribution-Reporting-Register-Aggregatable-Source",
JSON.stringify([
{
"id": "key_purchaseCount",
"key_piece": "0x3cf867903fbb73ec0000000000000000"
},
{
"id": "key_purchaseValue",
"key_piece": "0x245265f432f16e730000000000000000"
}
])
);
Notez que les ID de clé n'apparaîtront pas dans les rapports finaux. Elles ne sont utilisées lorsque vous définissez des clés dans le navigateur, de sorte que les clés les pièces peuvent être mappées entre elles et combinées en une clé complète.
Facultatif: rapports au niveau des événements
Si vous devez utiliser des rapports au niveau des événements avec des rapports agrégables, assurez-vous que, pour une source donnée, les données au niveau de l'événement (ID d'événement source et données du déclencheur) et clé d'agrégation peut être mise en correspondance.
Vous pouvez utiliser les deux rapports si, par exemple, vous prévoyez d'utiliser les rapports au niveau des événements pour exécuter des modèles sur les types d'annonces qui ont tendance à générer le plus grand nombre d'achats.
Un utilisateur effectue une conversion.
Lorsqu'un utilisateur effectue une conversion, une demande de pixel est généralement envoyée au serveur de technologie publicitaire. À la réception de cette demande:
- Définissez les éléments clés côté conversion (côté déclencheur) pour finaliser la clé.
Vous définirez ces éléments clés via l'en-tête
Attribution-Reporting-Register-Aggregatable-Trigger-Data
- Définir la valeur agrégable pour cette conversion via l'en-tête
Attribution-Reporting-Register-Aggregatable-Values
Définissez les éléments de la clé côté déclencheur pour terminer la clé
Générons les éléments clés:
Pièce de clé côté déclencheur pour l'ID de clé... | Chaîne contenant les valeurs de dimension que vous souhaitez définir | Hachage de cette chaîne au format hexadécimal, raccourci aux 64 premiers bits (64/4) = 16 caractères1) | Hachage hexadécimal avec des zéros ajoutés pour simplifier l'opération XOR. Il s'agit de l'élément clé côté source. |
---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(identique) | (identique) | (identique) |
Définissons maintenant les éléments clés:
// Upon receiving the pixel request from the advertiser site
res.set(
"Attribution-Reporting-Register-Aggregatable-Trigger-Data",
JSON.stringify([
// Each dictionary independently adds pieces to multiple source keys
{
"key_piece": "0x0000000000000000f9e491fe37e55a0c",
"source_keys": ["key_purchaseCount", "key_purchaseValue"]
},
])
);
Notez que vous ajoutez le même élément de clé à plusieurs clés, en listant plusieurs
ID de clé dans source_keys
: la pièce de clé sera ajoutée aux deux clés.
Définir des valeurs agrégables
Avant de définir les valeurs agrégables, vous devez les augmenter réduire le bruit.
Imaginons qu'un achat de type de produit 25 pour 52 € a été effectué.
Vous ne les définirez pas directement comme valeurs agrégables:
key_purchaseCount
: 1 conversionkey_purchaseValue
: 52 $
Avant d'enregistrer ces valeurs agrégables, Échelle afin de minimiser le bruit.
Vous avez deux objectifs pour dépenser votre budget de contribution. décide de diviser le budget de contribution en deux.
Dans ce cas, un maximum de CONTRIBUTION_BUDGET/2
est attribué à chaque objectif.
(=65 536/2=32 768).
Supposons la valeur d'achat maximale d'un seul utilisateur, basée sur l'achat pour tous les utilisateurs du site, s'élève à 1 500 $. Il peut y avoir des anomalies, par Par exemple, très peu d'utilisateurs ont dépensé ce montant, mais vous pouvez choisir d'ignorer ces anomalies.
Le facteur de mise à l'échelle de la valeur des achats doit être le suivant:
((CONTRIBUTION_BUDGET
/2) / 1 500) = 32 768/1 500 = 21,8 Ұ 22
Votre facteur de mise à l'échelle du nombre d'achats est de 32 768/1 = 32 768, puisque vous a décidé de suivre au maximum un achat par clic sur une annonce ou par vue (événement source).
Vous pouvez maintenant définir les valeurs suivantes:
key_purchaseCount
: 1 × 32 768 = 32 768key_purchaseValue
: 52 × 22 = 1 144
En pratique, vous les définiriez comme suit, en utilisant l'en-tête dédié
Attribution-Reporting-Register-Aggregatable-Values
:
// Instruct the browser to schedule-send a report
res.set(
"Attribution-Reporting-Register-Aggregatable-Values",
JSON.stringify({
"key_purchaseCount": 32768,
"key_purchaseValue": 1144,
})
);
Le rapport agrégable est généré
Le navigateur met en correspondance la conversion avec une vue ou un clic précédents, puis génère une rapport agrégable, qui inclut la charge utile chiffrée à côté du rapport de métadonnées.
Voici un exemple des données disponibles dans la charge utile du rapport agrégable s'il était lisible en texte clair:
[
{
key: 0x3cf867903fbb73ecf9e491fe37e55a0c, // = source-side key piece XOR conversion-side key piece for the key key_purchaseCount
value: 32768 // the scaled value for 1 conversion, in the context of [CONTRIBUTION_BUDGET/2]
},
{
key: 0x245265f432f16e73f9e491fe37e55a0c, // source-side key piece XOR conversion-side key piece for the key key_purchaseValue
value: 1144 // the scaled value for $52, in the context of [CONTRIBUTION_BUDGET/2]
},
]
Ici, vous pouvez voir deux contributions distinctes dans un seul et même tableau agrégable .
Demander un rapport récapitulatif
- Rapports agrégables par lot. Suivez les conseils fournis dans Traitement par lot :
- Générez les clés pour lesquelles vous souhaitez afficher les données. Par exemple, pour afficher un récapitulatif
données pour
COUNT
(nombre total d'achats) etVALUE
(valeur totale des achats) Pour l'ID de campagne 12 × ID de zone géographique 7 × catégorie de produits 25: <ph type="x-smartling-placeholder">- </ph>
- Générez l'élément de clé côté source, comme vous l'avez fait pour le définir. dans le navigateur.
- Générez la clé côté déclencheur comme vous l'avez fait pour la configurer dans le navigateur.
Métrique que vous souhaitez demander1 | Pièce clé côté source | Pièce de la clé côté déclencheur | Clé de requête adressée au service d'agrégation2 |
---|---|---|---|
Nombre total d'achats (COUNT ) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Valeur totale des achats (VALUE ) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Demander des données récapitulatives au service d'agrégation pour ces clés
Gérer le rapport récapitulatif
Vous recevez un rapport récapitulatif qui peut se présenter comme suit:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Le premier bucket est la clé COUNT
en binaire. Le second bucket est la clé VALUE
.
en binaire.
Notez que si les clés sont hétérogènes (COUNT
contre VALUE
), elles sont contenues
dans le même rapport.
Réduire les valeurs
- 2 558 500 correspond au nombre d'achats pour cette clé, le facteur de scaling précédemment calculé. Le facteur de mise à l'échelle le nombre d'achats était de 32 768. Diviser 2 558 500 par la contribution de l'objectif budget: 2 558 500/32 768 = 156,15 achats.
- 687 060 → 687 060/22 = valeur totale des achats de 31 230 $.
Par conséquent, les rapports récapitulatifs vous fournissent les informations suivantes:
- Au cours de la période de référence, la campagne n°12 a généré environ 156 achats en Europe pour la catégorie de produits 25.
- Au cours de la période de référence, la campagne n°12 diffusées en Europe ont généré 31 230 $d'achats (± bruit). pour la catégorie de produits 25.