Che cosa sono le chiavi di aggregazione, come vengono utilizzate nell'API Attribution Reporting e come puoi convertire gli obiettivi in chiavi.
In qualità di azienda di ad tech che pubblica campagne in più località per diverse categorie di prodotti, vuoi aiutare gli inserzionisti a rispondere alle seguenti domande:
- Quanti acquisti per ogni categoria di prodotto sono stati generati da ciascuna delle mie campagne in ogni regione geografica?
- Quante entrate per ogni categoria di prodotto sono state generate da ognuna delle mie campagne in ogni regione geografica?
Anche se molte aziende di ad tech incoraggiano gli inserzionisti a configurare diversi tipi di conversione, concentrarsi sulle conversioni più importanti, come gli acquisti, è un buon modo per garantire che i risultati riepilogativi siano dettagliati e accurati per questi eventi importanti.
Per farlo, devi pensare a quali domande rispondere prima di raccogliere i dati.
Dimensioni, chiavi e valori
Per rispondere a queste domande, diamo un'occhiata alle dimensioni, alle chiavi e ai valori.
Dimensioni
Per capire come le campagne generano entrate, come descritto qui, ti consigliamo di monitorare le seguenti dimensioni:
- ID campagna pubblicitaria: l'identificatore della campagna specifica.
- ID area geografica: l'area geografica in cui è stato pubblicato l'annuncio.
- Categoria di prodotto: il tipo di prodotto che hai definito.
Mentre le dimensioni ID campagna e ID area geografica sono note al momento della pubblicazione dell'annuncio (ora di pubblicazione dell'annuncio), la categoria di prodotto sarà nota per un evento di attivazione, quando l'utente completa una conversione (ora della conversione).
Le dimensioni che vuoi monitorare per questo esempio sono quelle mostrate nell'immagine seguente:
![ID campagna, ID area geografica e categoria di prodotto.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/campaign-id-geography-id-223ed5327b057.png?authuser=19&hl=it)
Che cosa sono le chiavi di aggregazione (bucket)?
I termini chiave di aggregazione e bucket si riferiscono alla stessa cosa. La chiave di aggregazione viene utilizzata nelle API del browser utilizzate per configurare i report. Il termine bucket viene utilizzato nei report aggregabili e di riepilogo e nelle API dei servizi di aggregazione.
Una chiave di aggregazione (in breve chiave) è un dato che rappresenta i valori delle dimensioni monitorate. I dati vengono successivamente aggregati insieme a ogni chiave di aggregazione.
Ad esempio, supponiamo che tu stia monitorando le dimensioni Categoria di prodotto, ID area geografica e ID campagna.
Quando un utente che si trova nell'ID area geografica 7 visualizza un annuncio per l'ID campagna 12 e in seguito effettua una conversione acquistando un prodotto nella categoria di prodotto 25, puoi impostare una chiave di aggregazione simile a quella dell'immagine seguente:
![Chiave di aggregazione per una conversione.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-key-a-conver-0cd37e4079fee.png?authuser=19&hl=it)
Più avanti vedremo che una chiave di aggregazione non ha esattamente questo aspetto nella pratica, ma per ora concentriamoci sulle informazioni contenute nella chiave.
Cosa sono i valori aggregabili?
Per rispondere alle tue domande sulle dimensioni illustrate:
- Il numero di acquisti (il numero di acquisti). Una volta aggregati e resi disponibili in un report di riepilogo, questo sarà il conteggio totale degli acquisti (valore di riepilogo).
- Le entrate per ogni acquisto (il valore di acquisto). Una volta aggregate e rese disponibili in un report di riepilogo, queste saranno le entrate totali (valore di riepilogo).
Ciascuno di questi, il conteggio degli acquisti per una conversione e il valore di acquisto per una conversione, è un valore aggregabile. Puoi pensare ai valori aggregabili come ai valori dei tuoi obiettivi di misurazione.
Domanda | Valore aggregato = obiettivo di misurazione |
---|---|
Quanti acquisti... | Numero di acquisti |
A quanto ammontano le entrate... | Valore di acquisto |
Quando un utente che si trova nell'ID area geografica 7 vede un annuncio per l'ID campagna 12 e in seguito effettua una conversione acquistando un prodotto della categoria di prodotto 25 a 120 $ (supponendo che la valuta sia USD), puoi impostare una chiave di aggregazione e valori aggregabili simili ai seguenti:
![Chiavi e valori di aggregazione.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-keys-values-912b4f69661bd.png?authuser=19&hl=it)
I valori aggregati vengono sommati per chiave di più utenti al fine di generare approfondimenti aggregati, sotto forma di valori di riepilogo nei report di riepilogo.
![Generazione di insight aggregati in corso...](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-aggregated-ins-e7ef89ea0a238.png?authuser=19&hl=it)
I valori aggregabili vengono sommati per generare approfondimenti aggregati per i tuoi obiettivi di misurazione.
Tieni presente che questo diagramma omette la decrittografia e rappresenta un esempio semplificato senza che sia stato applicato rumore. Nella sezione successiva, illustreremo questo esempio con il rumore.
Da chiavi e valori ai report
Adesso parliamo di come le chiavi e i valori aggregabili siano correlati ai report.
Report aggregati
Quando un utente fa clic o visualizza un annuncio e in seguito effettua una conversione, chiedi al browser di memorizzare una coppia di {aggregation key, aggregable value}.
Nel nostro esempio, quando un utente fa clic o visualizza un annuncio e in seguito effettua una conversione, chiedi al browser di generare due contributi (uno per obiettivo di misurazione).
![Generazione di due contributi in corso.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-contributions-fa8bc97295bc7.png?authuser=19&hl=it)
Più avanti vedrai che un report aggregabile {aggregation key,aggregable value}non ha esattamente questo aspetto, ma per ora concentriamoci sulle informazioni contenute nel report.
Quando chiedi al browser di generare due contributi, quest'ultimo genera un report aggregabile (se può corrispondere alla conversione con una visualizzazione o un clic precedente).
Il report aggregabile contiene:
- I contributi che hai configurato.
- I metadati relativi all'evento di clic o visualizzazione e all'evento di conversione, ad esempio il sito in cui si è verificata la conversione e altri dati. Vedi tutti i campi in un report aggregabile.
![Il report aggregabile risultante.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/the-resulting-aggregatabl-3df86364f7725.png?authuser=19&hl=it)
I report aggregati sono in formato JSON e includono, tra le altre cose, un campo del payload che verrà utilizzato come input dei dati per il report di riepilogo finale.
Il payload contiene un elenco di contributi, ognuno dei quali è una coppia di {aggregation key, aggregable value}:
bucket
: la chiave di aggregazione, codificata come bytestring.value
: valore aggregabile per l'obiettivo di misurazione, codificato come bytestring.
Ecco un esempio:
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
In pratica, i report aggregabili sono codificati in modo da rendere i bucket e i valori diversi rispetto all'esempio precedente (in altre parole, un bucket potrebbe essere simile a \u0000\u0000\x80\u0000
). Bucket e value sono entrambi bytestring.
Report di riepilogo
I report aggregati vengono aggregati per più browser e dispositivi (utenti) nel seguente modo:
- Un ad tech richiede report di riepilogo per un determinato insieme di chiavi e un determinato insieme di report aggregabili provenienti da molti browser (utenti).
- I report aggregati vengono decriptati dal servizio di aggregazione.
- Per ogni chiave, vengono sommati i valori aggregabili dei report aggregabili.
- Viene aggiunto del rumore al valore di riepilogo.
![Report aggregati e risultati di aggregazione, decriptazione e rumore in un report di riepilogo.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregatable-reports-plus-9bd26966f76f7.png?authuser=19&hl=it)
Il risultato è un report di riepilogo contenente un insieme di {aggregation key, summary value} coppie.
Un report di riepilogo contiene un insieme di coppie chiave-valore in stile dizionario JSON. Ogni coppia contiene:
bucket
: la chiave di aggregazione, codificata come bytestring.value
: il valore di riepilogo in decimale per un determinato obiettivo di misurazione, sommato da tutti i report aggregabili disponibili, con un ulteriore livello di rumore.
Esempio:
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
In pratica, i report di riepilogo sono codificati in modo da rendere i bucket e i valori diversi da quanto indicato nell'esempio (in altre parole, un bucket potrebbe essere simile a \u0000\u0000\x80\u0000
). Bucket e value sono entrambi bytestring.
Le chiavi di aggregazione nella pratica
Le chiavi di aggregazione (bucket) sono definite da un'azienda di ad tech, solitamente in due passaggi: quando viene fatto clic o visualizzato su un annuncio e quando un utente genera una conversione.
Struttura della chiave
Utilizzeremo il termine struttura chiave per indicare l'insieme di dimensioni codificate in una chiave.
Ad esempio, ID campagna × ID geografico × Categoria di prodotto è una struttura chiave.
![Struttura chiave.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-17b99e9ad0974.png?authuser=19&hl=it)
Tipi di chiavi
I valori aggregabili vengono sommati per una determinata chiave su più utenti/browser. Tuttavia, abbiamo visto che i valori aggregabili possono monitorare diversi obiettivi di misurazione, come il valore di acquisto o il conteggio degli acquisti. Vuoi assicurarti che il servizio di aggregazione riassuma i valori aggregabili dello stesso tipo.
Per farlo, all'interno di ogni chiave, codifica un dato che indichi cosa rappresenta il valore di riepilogo, ovvero l'obiettivo di misurazione a cui fa riferimento questa chiave. Un modo per farlo è creare una dimensione aggiuntiva per la chiave che rappresenti il tipo di obiettivo di misurazione.
Utilizzando l'esempio precedente, questo tipo di obiettivo di misurazione avrebbe due diversi valori possibili:
- Conteggio acquisti è il primo tipo di obiettivo di misurazione.
- Valore di acquisto è il secondo tipo di obiettivo di misurazione.
![Obiettivi di misurazione e tipi di obiettivi di misurazione.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/measurement-goals-measur-6f6f8b6468ec3.png?authuser=19&hl=it)
Se avevi n obiettivi di misurazione, il tipo di obiettivo di misurazione avrebbe n diversi tipi di valori.
Le dimensioni di una chiave sono una sorta di metrica. Ad esempio, "il numero di acquisti di un determinato prodotto per campagna e per area geografica".
Dimensioni della chiave, dimensioni
La dimensione massima della chiave è definita in bit: il numero di zeri e uno in binario per creare la chiave completa. L'API consente una lunghezza della chiave di 128 bit.
Questa dimensione consente chiavi molto granulari, ma è più probabile che le chiavi più granulari generino valori più rumorosi. Per saperne di più sul rumore, consulta Comprendere il rumore.
Come spiegato in precedenza, le dimensioni sono codificate nella chiave di aggregazione. Ogni dimensione ha una determinata cardinalità, ovvero il numero di valori distinti che la dimensione può assumere. A seconda della sua cardinalità, ogni dimensione deve essere rappresentata da un certo numero di bit. Con n bit, è possibile esprimere 2n opzioni distinte.
Ad esempio, una dimensione Paese potrebbe avere una cardinalità di 200, in quanto nel mondo sono presenti circa 200 paesi. Quanti bit sono necessari per codificare questa dimensione?
7 bit memorizzerebbero solo 27 = 128 opzioni distinte, meno dei 200 necessari.
8 bit memorizzerebbero 28 = 256 opzioni distinte, ovvero più dei 200 necessari, quindi puoi utilizzare n=8 bit per codificare questa dimensione.
Codifica dei tasti
Quando imposti le chiavi nel browser, queste devono essere codificate in esadecimale. Nei report di riepilogo, le chiavi verranno visualizzate in formato binario (e denominate bucket).
Imposta due pezzi chiave per una chiave completa
Supponiamo di utilizzare una chiave per monitorare le seguenti dimensioni:
- ID campagna
- ID area geografica
- Categoria di prodotto
Mentre le dimensioni ID campagna e ID area geografica sono note al momento della pubblicazione dell'annuncio (tempo di pubblicazione dell'annuncio), la categoria di prodotto sarà nota per un evento di attivazione, quando l'utente completa una conversione (ora della conversione).
In pratica, questo significa che devi impostare una chiave in due passaggi:
- Imposterai una parte della chiave (ID campagna × ID area geografica) al momento del clic o della visualizzazione.
- Imposterai la seconda parte della chiave, Categoria di prodotto, al momento della conversione.
Queste diverse parti dei tasti sono dette parti fondamentali.
Una chiave viene calcolata prendendo l'XOR (^
) delle sue parti chiave.
![Pezzi chiave per l'XOR.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/xoring-key-pieces-6c7b39f58a41f.png?authuser=19&hl=it)
Esempio:
- Elemento della chiave lato origine =
0x159
- Elemento chiave lato trigger =
0x400
- Chiave =
0x159 ^ 0x400 = 0x559
Allineamento delle parti principali
Con due pezzi della chiave a 64 bit estesi a 128 bit utilizzando riempimento/offset a 64 bit accuratamente posizionati (i sedici zeri), i pezzi chiave di XOR sono equivalenti a concatenarli, il che è più facile da ragionare e verificare:
- Elemento della chiave lato origine =
0xa7e297e7c8c8d0540000000000000000
- Elemento chiave lato trigger =
0x0000000000000000674fbe308a597271
- Chiave =
0xa7e297e7c8c8d0540000000000000000 ^ 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Più chiavi per ogni clic o visualizzazione sull'annuncio
In pratica, puoi impostare più chiavi per ogni evento di origine dell'attribuzione (clic o visualizzazione sull'annuncio). Ad esempio, puoi impostare:
- Una chiave che monitora l'ID area geografica × ID campagna.
- Un'altra chiave che monitora Tipo di creatività × ID campagna.
Per un altro esempio, consulta la Strategia B.
Codifica delle dimensioni in chiavi
Quando richiedi i report di riepilogo, devi indicare al servizio di aggregazione le metriche a cui vuoi accedere richiedendo i report di riepilogo per un determinato insieme di chiavi di aggregazione.
I report di riepilogo contengono coppie {key, summary value} non elaborate e nessuna informazione aggiuntiva sulla chiave. Ciò significa che:
- Quando imposti le chiavi quando l'utente visualizza o fa clic su un annuncio e in seguito effettua una conversione, devi impostare le chiavi in modo affidabile in base ai valori delle dimensioni che rappresentano.
- Quando definisci le chiavi per le quali vuoi richiedere i report di riepilogo, devi generare o accedere rapidamente in modo affidabile alle stesse chiavi impostate quando l'utente ha visualizzato o fatto clic su un annuncio e ha effettuato la conversione, in base ai valori delle dimensioni per le quali vuoi visualizzare i dati aggregati.
Codifica delle dimensioni utilizzando le mappe strutturali delle chiavi
Per codificare le dimensioni in chiavi, puoi creare e gestire in anticipo una mappa della struttura delle chiavi, al momento della definizione delle chiavi (prima della pubblicazione degli annunci).
Una mappa della struttura della chiave rappresenta tutte le dimensioni e la loro posizione nella chiave.
In pratica, creare e mantenere mappe di strutture chiave significa che devi implementare e mantenere la logica di decoder. Se stai cercando un metodo che non richiede di eseguire questa operazione, valuta la possibilità di utilizzare un approccio basato su hash.
Ecco un esempio:
Supponiamo che tu abbia intenzione di monitorare sia gli acquisti sia i valori di acquisto per campagne, regioni geografiche e prodotti specifici.
La categoria di prodotto, l'ID area geografica e l'ID campagna devono essere dimensioni nelle chiavi. Inoltre, poiché vuoi monitorare due diversi obiettivi di misurazione (conteggio degli acquisti e valore di acquisto), devi aggiungere una dimensione all'interno della chiave che tenga traccia del tipo di chiave. In questo modo, potrai definire cosa rappresenta effettivamente il valore aggregable dopo aver ricevuto coppie di {key,aggregable value} nei report di riepilogo.
Con questi obiettivi di misurazione, la chiave ha le seguenti dimensioni:
- Categoria di prodotto
- Tipo di obiettivo di misurazione
- ID area geografica
- ID campagna
Esaminando ogni dimensione, supponiamo che per il tuo caso d'uso sia necessario monitorare quanto segue:
- 29 diverse categorie di prodotti.
- Otto diverse regioni geografiche: Nord America, Centro America, Sud America, Europa, Africa, Asia, Caraibi e Oceania.
- 16 campagne diverse.
Ecco il numero di bit necessari per codificare ogni dimensione nella chiave:
- Categoria di prodotto: 5 bit (25 = 32 > 29).
- Tipo di obiettivo di misurazione: 1 bit. L'obiettivo di misurazione è il numero di acquisti o il valore di acquisto, ovvero due possibilità distinte: pertanto è sufficiente un solo bit per archiviarli.
ID area geografica: 3 bit (23 = 8). Devi inoltre definire una mappa delle dimensioni per l'ID geografia in modo da conoscere la regione geografica rappresentata da ciascun valore binario. La mappa delle dimensioni per l'ID area geografica potrebbe avere il seguente aspetto:
Valore binario nella chiave Area geografica 000 Nord America 001 America centrale 010 Sud America 011 Europa 100 Africa 101 Asia 110 Caraibici 111 Oceania ID campagna: 4 bit (24 = 16)
Le chiavi che seguono questa struttura sarebbero lunghe 13 bit (5 + 1 + 3 + 4).
Per questo esempio, la mappa della struttura delle chiavi per queste chiavi sarebbe simile alla seguente:
![Mappa della struttura delle chiavi.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-map-4664a0905c7de.png?authuser=19&hl=it)
Sei tu a decidere l'ordine delle dimensioni all'interno della chiave.
Per illustrare come le dimensioni compongono una struttura chiave, utilizziamo una rappresentazione binaria, motivo per cui l'ID campagna (primi bit) è quello più a destra e la categoria di prodotto (ultimi bit) è quella più a sinistra.
All'interno di ogni dimensione, il bit più significativo (quello che porta il valore numerico maggiore) è il bit più a sinistra. Il bit meno significativo (quello che porta il valore numerico più piccolo) è il bit più a destra.
Vediamo come useresti una mappa struttura delle chiavi per decodificare una chiave.
Prendiamo 0b1100100111100 come chiave di esempio arbitraria e supponiamo di avere un modo per sapere che questa chiave segue la mappa della struttura della chiave nell'illustrazione precedente.
In base alla mappa della struttura delle chiavi, questa chiave verrebbe decodificata in 11001 0 011 1100
.
Quindi la chiave 0b1100100111100 rappresenta il numero di acquisti della categoria di prodotto 25 per l'ID campagna 12 lanciato in Europa.
Codifica di dimensioni utilizzando una funzione hash
Anziché usare una mappa struttura delle chiavi, puoi utilizzare una funzione di hashing per generare dinamicamente le chiavi in modo coerente e affidabile.
Questo funziona nel seguente modo:
- Seleziona un algoritmo di hashing.
- Al momento della pubblicazione degli annunci, genera una stringa che includa tutte le dimensioni da monitorare e i relativi valori. Per generare la parte della chiave lato sorgente,
Esegui l'hashing di questa stringa e valuta la possibilità di aggiungere un suffisso a 64 bit di zeri per align
con il pezzo chiave sul lato del grilletto e rendere più facile ragionare su XOR.
- Elemento della chiave lato origine
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Tieni presente che
COUNT
codifica la stessa cosa dimeasurementGoalType=0
nell'approccio alla mappa della struttura chiave.COUNT
è un po' più snello e più esplicito.
- Elemento della chiave lato origine
- Al momento della conversione, genera una stringa che includa tutte le dimensioni da monitorare.
sui loro valori. Per generare una porzione della chiave lato trigger, esegui l'hashing di questa stringa e aggiungi un prefisso a 64 bit composto da zeri:
- Elemento chiave lato trigger
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Elemento chiave lato trigger
=
- Il browser applica uno XOR a questi elementi chiave per generare una chiave.
- Chiave di aggregazione a 128 bit
=<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
- Chiave di aggregazione a 128 bit
- In seguito, quando vorrai richiedere un report di riepilogo per questa chiave, generalo in tempo reale:
- In base alle dimensioni che ti interessano, genera un elemento chiave lato origine e lato trigger come hai fatto in precedenza.
- Elemento della chiave lato origine
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Elemento chiave lato trigger
=<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- elemento chiave lato trigger =
toHex(hash("productCategory=25"))
- Elemento della chiave lato origine
- Proprio come il browser, utilizza XOR per questi elementi chiave per generare la stessa chiave generata in precedenza dal browser.
- Chiave di aggregazione a 128 bit
=<64-bit source-side key piece hash><64-bit source-side key piece hash>
- Chiave di aggregazione a 128 bit
- In base alle dimensioni che ti interessano, genera un elemento chiave lato origine e lato trigger come hai fatto in precedenza.
Ecco alcuni suggerimenti pratici se utilizzi questo approccio basato su hash:
- Utilizza sempre lo stesso ordinamento delle dimensioni. Ciò garantisce che gli hash possano essere rigenerati in modo affidabile. (
"COUNT, CampaignID=12, GeoID=7"
non genererà lo stesso hash di"COUNT, GeoID=7, CampaignID=12"
). Un modo semplice per raggiungere questo obiettivo è ordinare le dimensioni in modo alfanumerico. Questo è ciò che faremo nell'esempio, ad eccezione del fatto che renderemo sempreCOUNT
oVALUE
il primo elemento della dimensione. Si tratta di una scelta per la leggibilità, poichéCOUNT
oVALUE
codificano informazioni concettualmente diverse da quelle di tutte le altre dimensioni. - Tieni traccia dell'insieme di dimensioni in uso nelle chiavi. Vuoi evitare di generare chiavi basate su un insieme di dimensioni mai utilizzate.
- Le collisioni di hash sono rare se viene utilizzata una funzione hash adatta, ma il controllo degli hash utilizzati in precedenza (che dovrebbero essere archiviati per interpretare i risultati dal servizio di aggregazione) consente di evitare l'introduzione di nuove chiavi che collidono con chiavi meno recenti.
Scopri come utilizzare nella pratica le chiavi basate su hash nell'esempio di una conversione per clic o visualizzazione.
Valori aggregabili nella pratica
L'azienda di ad tech imposta valori aggregabili quando un utente effettua una conversione.
Per proteggere la privacy degli utenti, i contributi di ogni utente hanno un limite massimo. Tra tutti i valori aggregabili associati a una singola sorgente (clic sull'annuncio o visualizzazione), nessun valore può essere superiore a un determinato limite di contributi.
Ci riferiremo a questo limite come CONTRIBUTION_BUDGET
. Nella spiegazione, questo limite è chiamato budget L1, ma è uguale al CONTRIBUTION_BUDGET
.
Per un quadro dettagliato del budget per il contributo, consulta Budget contributo per i report di riepilogo.
Esempio: una conversione per clic o visualizzazione
Per questo esempio, supponiamo che tu voglia rispondere alle seguenti domande:
- Quali sono le categorie di prodotto più redditizie in ogni regione?
- Quali sono le strategie delle campagne più efficaci in ogni regione?
Supponiamo anche che per il tuo caso d'uso tu abbia bisogno di insight settimanali.
Devi inoltre monitorare quanto segue:
- 16 campagne diverse.
- Otto diverse regioni geografiche: Nord America, Centro America, Sud America, Europa, Africa, Asia, Caraibi e Oceania.
- 29 diverse categorie di prodotto.
Che cosa misurare
Anche se molte aziende di ad tech incoraggiano gli inserzionisti a configurare diversi tipi di conversione, concentrarsi sulle conversioni più importanti, come gli acquisti, è un buon modo per garantire che i risultati aggregati siano dettagliati e accurati per questi importanti eventi di conversione. In effetti, più metriche misuri, minore sarà il budget di contributo per metrica e, di conseguenza, più rumoroso sarà ciascun valore. Per questo motivo, devi selezionare con attenzione gli elementi da misurare.
In questo esempio, ci concentreremo sulle configurazioni delle campagne che misurano solo una conversione per clic o visualizzazione: un acquisto.
Continuerai a misurare sia il numero di acquisti sia il valore di acquisto e potrai accedere a una serie di importanti statistiche aggregate, come il valore totale di acquisto e le suddivisioni geografiche. In questo modo il rumore è ragionevole e garantisce un semplice approccio di scalabilità per il budget di contributo.
E le valute?
La pubblicazione di campagne in regioni diverse implica che le valute devono essere prese in considerazione. Potresti:
- Imposta la valuta come dimensione dedicata nelle chiavi di aggregazione.
- In alternativa, deduci la valuta da un ID campagna e converti tutte le valute in valute di riferimento.
In questo esempio, supponiamo che tu possa dedurre la valuta da un ID campagna. In questo modo puoi convertire qualsiasi valore di acquisto dalla valuta locale dell'utente a una valuta di riferimento a tua scelta. Puoi anche eseguire la conversione al volo, quando l'utente acquista un articolo.
Con questa tecnica, tutti i valori aggregabili sono nella stessa valuta di riferimento e possono quindi essere sommati per generare un valore di acquisto aggregato totale, ovvero un valore di acquisto riepilogativo.
Trasformazione degli obiettivi in chiavi
Gli obiettivi e le metriche di misurazione offrono diverse opzioni per il strategia chiave. Concentriamoci su due di queste strategie:
- Strategia A: una struttura chiave granulare.
- Strategia B: due strutture chiave approssimative.
Strategia A: un albero profondo (una struttura chiave granulare)
Nella strategia A viene utilizzata una struttura chiave granulare, che include tutte le dimensioni necessarie:
![Una struttura chiave granulare](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/one-granular-key-structur-85e0f0ef579b3.png?authuser=19&hl=it)
Tutte le chiavi utilizzano questa struttura.
Suddividi questa struttura chiave in due tipi chiave per supportare due tipi di misurazione obiettivi.
- Tipo di chiave 0: tipo di obiettivo di misurazione = 0, che decidi di definire come conteggio degli acquisti.
- Tipo di chiave 1: tipo di obiettivo di misurazione = 1, che decidi di definire come valore di acquisto.
I report di riepilogo hanno il seguente aspetto:
![Strategia: un report di riepilogo.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/strategy-summary-report-c13d51d0ef5b.png?authuser=19&hl=it)
Puoi pensare alla strategia A come a "un albero profondo" strategia:
- Ogni valore di riepilogo nei report di riepilogo è associato a tutti i dimensioni che stai monitorando.
- Puoi aggregare questi valori di riepilogo accanto a ciascuna di queste dimensioni in modo che questi raggruppamenti possano avere un livello di profondità pari al numero di dimensioni a tua disposizione.
Con la strategia A, rispondere alle domande nel seguente modo:
Domanda | Risposta |
---|---|
Quali sono le categorie di prodotto più redditizie in ogni regione? | Somma il riepilogo dei conteggi e dei valori degli acquisti riportati nel riepilogo
report, in tutte le campagne. Ottieni il numero e il valore degli acquisti per ID geografico × prodotto categoria. Per ogni regione, confronta il valore di acquisto e il conteggio dei diversi categorie di prodotti. |
Quali sono le strategie delle campagne più efficaci in ogni regione? | Somma il riepilogo dei conteggi e dei valori degli acquisti riportati nel riepilogo
di tutte le categorie di prodotto. Fornisce il conteggio e il valore degli acquisti per ID campagna x ID geografico. Per ogni regione, confronta il valore di acquisto e conta per diverse campagne. |
Con la strategia A, puoi anche rispondere direttamente a questa terza domanda:
"Quante entrate per ogni prodotto sono state generate da ognuna delle mie campagne in ogni area geografica regione di destinazione?"
Anche se i valori di riepilogo sono rumorosi, è possibile determinare quando le differenze nel valore misurato tra una campagna e l'altra non sono dovute a rumore da soli. Scopri come farlo nella sezione Comprendere il rumore.
Strategia B: due alberi poco profondi (due strutture chiave grezze)
Nella strategia B, vengono utilizzate due strutture chiave approssimative, ognuna con un sottoinsieme di le dimensioni necessarie:
![Struttura chiave 1 e struttura chiave 2.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-1-key-stru-f5313e8766cd6.png?authuser=19&hl=it)
Occorre suddividere ciascuna di queste strutture chiave in due tipi di chiavi per supportare obiettivi di misurazione.
- Tipo di obiettivo di misurazione = 0, che decidi di definire come acquisto conteggio.
- Tipo di obiettivo di misurazione = 1, che decidi di definire come acquisto predefinito.
Si finisce per avere quattro tipi di chiavi:
- Tipo di chiave I-0: struttura della chiave I, conteggio acquisti.
- Tipo di chiave I-1: struttura chiave I, valore di acquisto.
- Tipo di codice II-0: struttura del codice II, numero di acquisti.
- Tipo chiave II-1: struttura chiave II, valore di acquisto.
I report di riepilogo hanno il seguente aspetto:
![Strategia B per il report di riepilogo.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/summary-report-strategy-b-a402cebbf58ca.png?authuser=19&hl=it)
Puoi pensare alla strategia B come a "due alberi superficiali" strategia:
- I valori di riepilogo nei report di riepilogo vengono mappati a uno dei due piccoli gruppi di dimensioni.
- Puoi aggregare questi valori di riepilogo accanto a ciascuna delle dimensioni in i set di dati, ciò significa che i dati aggregati non sono così dettagliati come nell'opzione A, perché ci sono meno dimensioni a cui eseguire l'aggregazione.
Con la strategia B, risponderesti alle domande nel seguente modo:
Domanda | Risposta |
---|---|
Quali sono le categorie di prodotto più redditizie in ogni regione? | Accedi direttamente al riepilogo dei conteggi e dei valori degli acquisti presenti in i report di riepilogo. |
Quali sono le strategie delle campagne più efficaci in ogni regione? | Accedi direttamente al riepilogo dei conteggi e dei valori degli acquisti presenti in i report di riepilogo. |
Decisione: strategia A
La strategia A è più semplice: tutti i dati seguono la stessa struttura chiave, che a sua volta significa che devi mantenere una sola struttura chiave.
Tuttavia, con la strategia A, devi sommare i valori riepilogativi che ricevi report di riepilogo per rispondere ad alcune delle tue domande. Ciascuno di questi valori di riepilogo è rumoroso. Riepilogando questi dati, ottieni anche somma il rumore.
Questo non è il caso della strategia B, in cui i valori riepilogativi sono esposti nel riepilogo. forniscono già le informazioni di cui hai bisogno. Ciò significa che la strategia B probabilmente l'impatto del rumore sarà minore rispetto alla strategia A.
Come devi stabilire la strategia da utilizzare? Per gli inserzionisti esistenti o campagne, potresti fare affidamento sui dati storici per determinare se il volume conversioni è più adatto alla strategia A o alla strategia B. Tuttavia, per i nuovi inserzionisti o campagne, puoi decidere di:
- Raccogli i dati relativi a un mese con le chiavi granulari (strategia A). Poiché stai estendendo la durata della raccolta dei dati, i valori di riepilogo sarà più alto e il rumore sarà relativamente più basso.
- Valuta con ragionevole precisione il conteggio delle conversioni settimanali e valore di acquisto.
In questo esempio, supponiamo che il numero di acquisti settimanali e il valore di acquisto sono abbastanza alti affinché la strategia A generi una percentuale di rumore che ritieni accettabile per il tuo caso d'uso.
Perché la strategia A è più semplice e porta a un impatto che non influisce sulla tua capacità di prendere decisioni, decidi di adottare la strategia A.
Seleziona un algoritmo di hashing
Decidi di adottare un approccio basato su hash per generare le tue chiavi. Per farlo devi selezionare un algoritmo di hashing supportano tale approccio.
Supponiamo di aver selezionato l'algoritmo SHA-256. Puoi anche usare un modello un algoritmo sicuro come MD5.
Nel browser: impostazione di chiavi e valori
Ora che hai deciso una struttura chiave e un algoritmo di hashing, pronto a registrare chiavi e valori quando gli utenti fanno clic o visualizzano gli annunci e successivamente convertire.
La prossima è una panoramica delle intestazioni che imposterai per registrare le chiavi e i valori in il browser:
![Registra chiavi e valori per una vista o un clic.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-59763f86a1f19.png?authuser=19&hl=it)
![Registra le chiavi e i valori per una conversione.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-155f081dc7bca.png?authuser=19&hl=it)
Imposta elementi chiave lato origine
Quando un utente fa clic o visualizza un annuncio, imposta le chiavi di aggregazione nella
Intestazione Attribution-Reporting-Register-Aggregatable-Source
.
In questa fase, per ogni chiave puoi impostare solo la parte della chiave, oppure
l'elemento chiave, noto al momento della pubblicazione degli annunci.
Generiamo le parti principali:
Elemento della chiave lato di origine per l'ID chiave... | Stringa contenente i valori delle dimensioni da impostare | Hash di questa stringa come esadecimale, tagliato ai primi 64 bit (64/4 = 16 caratteri1) | Hash esadecimale con zeri aggiunti per semplificare Elaborazione XOR. Questo è l'elemento chiave lato origine. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Impostiamo gli elementi chiave:
// 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"
}
])
);
Tieni presente che gli ID chiave non verranno visualizzati nei report finali. Vengono usati solo durante l'impostazione delle chiavi nel browser, in modo che le chiavi lato origine e lato trigger che possono essere mappati tra loro e combinati in una chiave completa.
(Facoltativo) Report a livello di evento
Se devi utilizzare report a livello di evento insieme a report aggregabili, assicurati che, per una determinata origine, i dati a livello di evento (ID evento sorgente e dati di trigger) e i chiave di aggregazione.
Potresti utilizzare entrambi i report se, ad esempio, prevedi di utilizzare report a livello di evento per eseguire modelli sui tipi di annunci che tendono a generare il maggior numero di acquisti.
Un utente effettua una conversione
Quando un utente effettua una conversione, di solito viene inviata una richiesta di pixel al server ad tech. Una volta ricevuta questa richiesta:
- Imposta i componenti chiave sul lato conversione (lato attivatore) per completare la chiave.
Imposterai questi elementi chiave tramite l'intestazione
Attribution-Reporting-Register-Aggregatable-Trigger-Data
. - Impostare il valore aggregabile per quella conversione tramite l'intestazione
Attribution-Reporting-Register-Aggregatable-Values
.
Metti le chiavi sul lato del trigger per completare la chiave
Generiamo le parti principali:
Chiave lato trigger per l'ID chiave... | Stringa contenente i valori delle dimensioni da impostare | Hash di questa stringa come esadecimale, tagliato ai primi 64 bit (64/4 = 16 caratteri1) | Hash esadecimale con zeri aggiunti per semplificare l'XOR-ing. Questo è l'elemento chiave lato origine. |
---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(uguale) | (uguale) | (uguale) |
Impostiamo gli elementi chiave:
// 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"]
},
])
);
Nota come aggiungi la stessa parte di chiave a diverse chiavi, elencando diverse
ID chiave in source_keys
: la parte della chiave verrà aggiunta a entrambe le chiavi.
Valori aggregabili
Prima di impostare i valori aggregabili, devi scalarli e ridurre il rumore.
Supponiamo che sia stato effettuato un acquisto per il tipo di prodotto 25 a 52 €.
Non imposterai direttamente questi valori aggregabili:
key_purchaseCount
: 1 conversionekey_purchaseValue
: 52 $
Prima di registrare questi valori aggregabili, scalabilità per ridurre al minimo il rumore.
Hai due obiettivi per spendere il tuo budget di contributo, quindi potresti decidi di suddividere il budget per il contributo in due.
In questo caso, a ogni obiettivo viene assegnato un massimo di CONTRIBUTION_BUDGET/2
(=65.536/2=32.768).
Supponiamo che il valore di acquisto massimo per un singolo utente sia basato sull'acquisto. per tutti gli utenti del sito, è di 1.500 $. Potrebbero esserci dei valori anomali, ad esempio pochissimi utenti che hanno speso più di tale importo, ma puoi decidere di ignorare a questi outlier.
Il fattore di scala per il valore di acquisto deve essere:
((CONTRIBUTION_BUDGET
/2) / 1500) = 32.768/1.500 = 21,8 ≈ 22
Il fattore di scala per il conteggio degli acquisti è 32.768/1 = 32.768, dato che deciso di monitorare al massimo un acquisto per clic sull'annuncio o visualizzazione (evento di origine).
Ora puoi impostare questi valori:
key_purchaseCount
: 1 × 32.768 = 32.768key_purchaseValue
: 52 × 22 = 1144
In pratica, le imposteresti come segue, utilizzando l'intestazione dedicata
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,
})
);
Viene generato un report aggregabile
Il browser associa la conversione a una visualizzazione o a un clic precedente e genera un aggregabile, che include il payload criptato accanto al report metadati.
Di seguito è riportato un esempio dei dati che si possono trovare all’interno del payload aggregabile, se leggibile in chiaro:
[
{
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]
},
]
Qui puoi vedere due diversi contributi all'interno di un singolo aggregazione report.
Richiedere un report di riepilogo
- Report aggregabili in batch. Segui i consigli offerti in Raggruppamento in batch.
- Genera le chiavi per cui vuoi visualizzare i dati. Ad esempio, per vedere un riepilogo
dati per
COUNT
(numero totale di acquisti) eVALUE
(valore di acquisto totale) per ID campagna 12 × ID area geografica 7 × Categoria di prodotto 25:- .
- Genera il pezzo della chiave lato origine, come hai fatto durante l'impostazione. nel browser.
- Genera la chiave lato trigger, come hai fatto durante l'impostazione nel browser.
Metrica che vuoi richiedere1 | Elemento della chiave lato origine | Elemento chiave lato trigger | Chiave da richiedere al servizio di aggregazione2 |
---|---|---|---|
Numero totale di acquisti (COUNT ) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Valore totale dell'acquisto (VALUE ) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Richiedi dati di riepilogo al servizio di aggregazione per queste chiavi.
Gestire il report di riepilogo
In definitiva, riceverai un report di riepilogo che potrebbe avere il seguente aspetto:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Il primo bucket è la chiave COUNT
nel file binario. Il secondo bucket è la chiave VALUE
in formato binario.
Tieni presente che sebbene le chiavi siano eterogenee (COUNT
o VALUE
), sono contenute
nello stesso report.
Fai lo scale down dei valori
- 2.558.500 si riferisce al numero di acquisti per questa chiave, aumentato del il fattore di scalabilità calcolato in precedenza. Il fattore di scala per il numero di acquisti è stato 32.768. Dividi 2.558.500 per il contributo dell'obiettivo budget: 2.558.500/32.768 = 156,15 acquisti.
- 687.060 → 687.060/22 = valore di acquisto totale di 31.230 $.
Di conseguenza, i report di riepilogo forniscono le seguenti informazioni:
- Durante il periodo di tempo del report, campagna 12 eseguita in Europa ha generato circa 156 acquisti (± rumore) della categoria prodotto 25.
- Durante il periodo di tempo del report, campagna 12 in Europa ha generato 31.230 $di acquisti (± rumore) della categoria prodotto 25.