Cosa sono le chiavi di aggregazione, come vengono utilizzate nell'API Attribution Reporting e come puoi tradurre gli obiettivi in chiavi.
In qualità di azienda di tecnologia pubblicitaria che gestisce campagne in più località per varie categorie di prodotti, vuoi aiutare gli inserzionisti a rispondere alle seguenti domande:
- Quanti acquisti di ogni categoria di prodotto hanno generato le mie campagne in ogni regione geografica?
- Quante entrate per ogni categoria di prodotto ha generato ciascuna delle mie campagne in ogni regione geografica?
Sebbene molte società di tecnologia pubblicitaria incoraggino gli inserzionisti a configurare una serie di tipi di conversione, concentrarsi sulle conversioni più importanti, come gli acquisti, è un buon modo per verificare che i risultati riepilogativi siano dettagliati e accurati per questi eventi importanti.
Per farlo, devi pensare a quali domande vuoi rispondere prima della raccolta dei dati.
Dimensioni, chiavi e valori
Per rispondere a queste domande, esaminiamo dimensioni, chiavi e valori.
Dimensioni
Per capire come le tue campagne generano entrate, come descritto qui, devi monitorare le seguenti dimensioni:
- ID campagna pubblicitaria: l'identificatore della campagna specifica.
- ID geografia: la regione geografica in cui è stato pubblicato l'annuncio.
- Categoria di prodotto: il tipo di prodotto come lo hai definito.
Mentre le dimensioni ID campagna e ID geografia sono note al momento della pubblicazione dell'annuncio (durante la pubblicazione), la categoria di prodotto sarà nota da un evento trigger, quando l'utente completa una conversione (al momento della conversione).
Le dimensioni che vuoi monitorare per questo esempio sono quelle mostrate nell'immagine seguente:
Che cosa sono le chiavi di aggregazione (bucket)?
La chiave di aggregazione dei termini e il 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 del servizio di aggregazione.
Una chiave di aggregazione (o semplicemente chiave) è un insieme di dati che rappresenta i valori delle dimensioni monitorate. I dati vengono poi aggregati in base a ogni chiave di aggregazione.
Ad esempio, supponiamo di monitorare le dimensioni Categoria prodotto, ID area geografica e ID campagna.
Quando un utente che si trova nell'ID geografia 7 visualizza un annuncio con ID campagna 12 e successivamente esegue una conversione acquistando un prodotto nella categoria di prodotto 25, puoi impostare una chiave di aggregazione simile a quella nell'immagine seguente:
Vedrai in seguito che in pratica una chiave di aggregazione non ha esattamente questo aspetto, ma per ora concentriamoci sulle informazioni contenute nella chiave.
Che cosa sono i valori aggregabili?
Per rispondere alle tue domande sulle dimensioni che abbiamo descritto, devi sapere:
- Il numero di acquisti (il conteggio degli acquisti). Una volta aggregato e reso disponibile in un report di riepilogo, questo sarà il conteggio totale degli acquisti (valore di riepilogo).
- Le entrate per ogni acquisto (il valore dell'acquisto). Una volta aggregato e reso disponibile in un report di riepilogo, questo sarà il totale delle entrate (valore di riepilogo).
Ciascuno di questi valori (il conteggio degli acquisti per una conversione e il valore degli acquisti per una conversione) è un valore aggregabile. Puoi considerare i valori aggregabili come i valori dei tuoi obiettivi di misurazione.
| Domanda | Valore aggregabile = Obiettivo di misurazione |
|---|---|
| Quanti acquisti… | Conteggio acquisti |
| A quanto ammontano le entrate… | Valore di acquisto |
Quando un utente che si trova nell'ID geografia 7 visualizza un annuncio con ID campagna 12 e in seguito genera una conversione acquistando un prodotto della categoria di prodotto 25 per 120 $ (supponendo che la valuta sia il dollaro statunitense), puoi impostare una chiave di aggregazione e valori aggregabili simili a questi:
I valori aggregabili vengono sommati per chiave in molti utenti per generare approfondimenti aggregati, sotto forma di valori di riepilogo nei report di riepilogo.
I valori aggregabili vengono sommati per generare approfondimenti aggregati per gli obiettivi di misurazione.
Tieni presente che questo diagramma omette la decriptazione e rappresenta un esempio semplificato senza rumore applicato. Nella sezione successiva, descriveremo questo esempio con il rumore.
Dalle chiavi e dai valori ai report
Ora parliamo della relazione tra chiavi e valori aggregabili e i report.
Report aggregabili
Quando un utente fa clic su un annuncio o lo visualizza e in seguito effettua una conversione, chiedi al browser di memorizzare una coppia {chiave di aggregazione, valore aggregabile}.
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).
Vedrai in seguito che un report aggregabile {chiave di aggregazione, valore aggregabile} non ha esattamente questo aspetto, ma per ora concentriamoci sulle informazioni contenute nel report.
Quando chiedi al browser di generare due contributi, il browser genera un report aggregabile (se riesce ad abbinare la conversione a una visualizzazione o un clic precedenti).
Un report aggregabile contiene:
- I contributi che hai configurato.
- Metadati sull'evento di clic o visualizzazione e sull'evento di conversione: il sito in cui si è verificata la conversione e altro ancora. Visualizzare tutti i campi in un report aggregabile.
I report aggregabili sono in formato JSON e includono, tra le altre cose, un campo payload che verrà utilizzato come input di dati per il report di riepilogo finale.
Il payload contiene un elenco di contributi, ognuno dei quali è una coppia {chiave di aggregazione, valore aggregabile}:
bucket: la chiave di aggregazione, codificata come stringa di byte.value: il valore aggregabile per l'obiettivo di misurazione, codificato come stringa di byte.
Ecco un esempio:
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
In pratica, i report aggregabili vengono codificati in modo che i bucket e i valori appaiano diversi rispetto all'esempio precedente (ovvero, un bucket potrebbe avere l'aspetto di \u0000\u0000\x80\u0000). Bucket e valore sono entrambi stringhe di byte.
Report di riepilogo
I report aggregabili vengono aggregati su più browser e dispositivi (utenti) nel seguente modo:
- Una tecnologia pubblicitaria richiede report di riepilogo per un determinato insieme di chiavi e un determinato insieme di report aggregabili provenienti da molti browser (utenti) diversi.
- I report aggregabili vengono decriptati dal servizio di aggregazione.
- Per ogni chiave, i valori aggregabili dei report aggregabili vengono sommati.
- Il rumore viene aggiunto al valore di riepilogo.
Il risultato è un report riepilogativo che contiene un insieme di coppie {chiave di aggregazione, valore riepilogativo}.
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 stringa di byte.value: il valore di riepilogo in formato decimale per un determinato obiettivo di misurazione, sommato da tutti i report aggregabili disponibili, con un livello di rumore aggiunto.
Esempio:
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
In pratica, i report di riepilogo vengono codificati in modo che i bucket e i valori appaiano diversi da quelli indicati nell'esempio (ad esempio, un bucket potrebbe avere l'aspetto di \u0000\u0000\x80\u0000). Sia il bucket che il valore sono stringhe di byte.
Chiavi di aggregazione in pratica
Le chiavi di aggregazione (bucket) vengono definite da un'azienda di tecnologia pubblicitaria, in genere in due passaggi: quando viene fatto clic su un annuncio o quando viene visualizzato e quando un utente effettua una conversione.
Struttura della chiave
Utilizzeremo il termine struttura della chiave per indicare l'insieme di dimensioni codificate in una chiave.
Ad esempio, ID campagna × ID geografico × Categoria di prodotto è una struttura chiave.
Tipi di chiavi
I valori aggregabili vengono sommati per una determinata chiave su più utenti/browser. Tuttavia, abbiamo notato che i valori aggregabili possono monitorare diversi obiettivi di misurazione, ad esempio un valore di acquisto o un conteggio degli acquisti. Vuoi verificare che il servizio di aggregazione sommi i valori aggregabili dello stesso tipo.
A questo scopo, all'interno di ogni chiave codifica un insieme di dati che indicano 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 valori possibili diversi:
- Conteggio acquisti è il primo tipo di obiettivo di misurazione.
- Il valore di acquisto è il secondo tipo di obiettivo di misurazione.
Se avevi n obiettivi di misurazione, il tipo di obiettivo di misurazione avrebbe n tipi di valori diversi.
Puoi considerare le dimensioni di una chiave come una metrica. Ad esempio, "il numero di acquisti di un determinato prodotto per campagna per area geografica".
Dimensione della chiave, dimensione della dimensione
La dimensione massima della chiave è definita in bit, ovvero il numero di zeri e uno in formato 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 portino a valori più rumorosi. Per saperne di più sul rumore, consulta la sezione Informazioni sul rumore.
Come spiegato in precedenza, le dimensioni vengono 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 determinato numero di bit. Con n bit, è possibile esprimere 2n opzioni distinte.
Ad esempio, una dimensione Paese può avere una cardinalità di 200, poiché ci sono circa 200 paesi al mondo. Quanti bit sono necessari per codificare questa dimensione?
7 bit memorizzerebbero solo 27 = 128 opzioni distinte, che sono meno delle 200 necessarie.
8 bit memorizzerebbero 28 = 256 opzioni distinte, che sono più delle 200 necessarie, quindi puoi utilizzare n=8 bit per codificare questa dimensione.
Codifica della chiave
Quando imposti le chiavi nel browser, devono essere codificate in formato esadecimale. Nei report di riepilogo, le chiavi vengono visualizzate in formato binario (e vengono chiamate bucket).
Imposta due pezzi della chiave per una chiave completa
Supponiamo che tu utilizzi una chiave per monitorare le seguenti dimensioni:
- ID campagna
- ID area geografica
- Categoria di prodotto
Mentre le dimensioni ID campagna e ID geografia sono note al momento della pubblicazione dell'annuncio (durante la pubblicazione dell'annuncio), la categoria di prodotto sarà nota da un evento trigger, quando l'utente completa una conversione (al momento della conversione).
In pratica, dovrai impostare una chiave in due passaggi:
- Imposterai una parte della chiave, ovvero ID campagna × ID area geografica, al momento del clic o della visualizzazione.
- Imposterai la seconda parte della chiave, ovvero la categoria di prodotto, al momento della conversione.
Queste diverse parti delle chiavi vengono chiamate componenti della chiave.
Una chiave viene calcolata prendendo l'OR (v) dei suoi componenti chiave.
Esempio:
- Componente della chiave lato origine =
0x159 - Componente della chiave lato attivatore =
0x400 - Chiave =
0x159 v 0x400 = 0x559
Allineamento dei pezzi chiave
Con due parti di chiave a 64 bit estese a 128 bit utilizzando riempitivi o offset a 64 bit posizionati con cura (i sedici zeri), l'operazione OR sulle parti di chiave equivale a concatenarle, il che è più facile da ragionare e verificare:
- Componente della chiave lato origine =
0xa7e297e7c8c8d0540000000000000000 - Componente della chiave lato attivatore =
0x0000000000000000674fbe308a597271 - Chiave =
0xa7e297e7c8c8d0540000000000000000 v 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Più chiavi per clic o visualizzazione dell'annuncio
In pratica, puoi impostare più chiavi per evento di origine dell'attribuzione (clic o visualizzazione dell'annuncio). Ad esempio, puoi impostare:
- Una chiave che monitora l'ID geografia × l'ID campagna.
- Un'altra chiave che monitora Tipo di creatività × ID campagna.
Per un altro esempio, dai un'occhiata alla strategia B.
Codifica delle dimensioni nelle chiavi
Quando richiedi report di riepilogo, devi comunicare al servizio di aggregazione a quali metriche vuoi accedere richiedendo report di riepilogo per un determinato insieme di chiavi di aggregazione.
I report di riepilogo contengono coppie {chiave, valore di riepilogo} non elaborate e nessuna informazione aggiuntiva sulla chiave. Ciò significa che:
- Quando imposti le chiavi mentre l'utente visualizza o fa clic su un annuncio e in seguito effettua una conversione, devi impostarle in modo affidabile in base ai valori delle dimensioni che rappresentano.
- Quando definisci le chiavi per cui vuoi richiedere report riepilogativi, devi generare o accedere in modo affidabile al volo alle stesse chiavi impostate quando l'utente ha visualizzato o fatto clic su un annuncio e ha eseguito una conversione, in base ai valori delle dimensioni per cui vuoi visualizzare i dati aggregati.
Codifica delle dimensioni utilizzando le mappe della struttura delle chiavi
Per codificare le dimensioni nelle chiavi, puoi creare e gestire una mappa della struttura delle chiavi in anticipo, al momento della definizione delle chiavi (prima della pubblicazione degli annunci).
Una mappa della struttura della chiave rappresenta ciascuna delle dimensioni e la relativa posizione nella chiave.
In pratica, creare e gestire le mappe della struttura delle chiavi significa implementare e gestire la logica del decodificatore. Se cerchi un metodo che non lo richieda, valuta la possibilità di utilizzare un approccio basato sull'hash.
Ecco un esempio:
Supponiamo che tu voglia monitorare sia gli acquisti che 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 obiettivi di misurazione diversi (numero di acquisti e valore di acquisto), devi aggiungere una dimensione all'interno della chiave che tiene traccia del tipo di chiave. In questo modo, potrai definire cosa rappresenta effettivamente il valore aggregabile al momento della ricezione delle coppie {chiave, valore aggregabile} 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
Ora, esaminando ogni dimensione, supponiamo che per il tuo caso d'uso tu debba monitorare quanto segue:
- 29 diverse categorie di prodotti.
- 8 diverse regioni geografiche: Nord America, America centrale, 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 conteggio degli acquisti o il valore degli acquisti, il che significa due possibilità distinte; pertanto, è sufficiente un bit per memorizzare questo valore.
ID area geografica: 3 bit (23 = 8). Definisci anche una mappa delle dimensioni per l'ID geografico per sapere quale regione geografica rappresenta ogni valore binario. La mappa delle dimensioni per la dimensione ID geografico 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 avranno una lunghezza di 13 bit (5 + 1 + 3 + 4).
Per questo esempio, la mappa della struttura delle chiavi per queste chiavi avrebbe il seguente aspetto:
L'ordine delle dimensioni all'interno della chiave dipende da te.
Per illustrare come le dimensioni costituiscono una struttura chiave, utilizzeremo una rappresentazione binaria, motivo per cui l'ID campagna (i primi bit) è quello più a destra e la categoria di prodotto (gli ultimi bit) è quella più a sinistra.
All'interno di ogni dimensione, il bit più significativo, quello che ha il valore numerico più alto, è il bit più a sinistra. Il bit meno significativo, quello che porta il valore numerico più piccolo, è il bit più a destra.
Vediamo come utilizzare una mappa della struttura della chiave per decodificare una chiave.
Prendiamo 0b1100100111100 come chiave di esempio arbitraria e supponiamo di sapere che questa chiave segue la mappa della struttura della chiave nell'illustrazione precedente.
In base alla mappa della struttura della chiave, questa chiave verrebbe decodificata in:
`11001 0 011 1100`
Pertanto, la chiave 0b1100100111100 rappresenta il numero di acquisti della categoria di prodotto 25 per l'ID campagna 12 lanciata in Europa.
Codifica delle dimensioni utilizzando una funzione hash
Anziché utilizzare una mappa della struttura delle chiavi, puoi utilizzare una funzione di hashing per generare dinamicamente le chiavi in modo coerente e affidabile.
Ecco come funziona:
- Seleziona un algoritmo di hashing.
- Al momento della pubblicazione dell'annuncio, genera una stringa che includa tutte le dimensioni che vuoi monitorare e i relativi valori. Per generare la parte della chiave lato origine,
calcola l'hash di questa stringa e valuta la possibilità di aggiungere un suffisso di zeri a 64 bit per allinearla
alla parte della chiave lato trigger e semplificare il ragionamento relativo a OR.
- Componente chiave lato origine
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…> - Tieni presente che
COUNTcodifica la stessa cosa dimeasurementGoalType=0nell'approccio di mappatura della struttura delle chiavi.COUNTè un po' più snello ed esplicito.
- Componente chiave lato origine
- Al momento della conversione, genera una stringa che includa tutte le dimensioni che vuoi monitorare e
i relativi valori. Per generare un pezzo di chiave lato trigger, esegui l'hashing di questa stringa e aggiungi un prefisso di zeri a 64 bit:
- Componente chiave lato attivatore
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Componente chiave lato attivatore
=
- Il browser combina 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 un secondo momento, quando è tutto pronto per richiedere un report riepilogativo per questa chiave, generarlo al volo:
- In base alle dimensioni che ti interessano, genera un pezzo di chiave lato sorgente e lato trigger come hai fatto in precedenza.
- Componente chiave lato origine
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…> - Componente della chiave lato attivatore
=<64-bit 00000000…><64-bit hex hash("productCategory=25")> - trigger-side key piece =
toHex(hash("productCategory=25"))
- Componente chiave lato origine
- Proprio come il browser, esegui l'operazione OR su 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 pezzo di chiave lato sorgente e lato trigger come hai fatto in precedenza.
Ecco alcuni suggerimenti pratici se utilizzi questo approccio basato sull'hash:
- Utilizza sempre lo stesso ordine delle dimensioni. In questo modo, gli hash possono 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 farlo è ordinare le dimensioni in ordine alfanumerico. Questo è ciò che faremo nell'esempio, tranne per il fatto cheCOUNToVALUEsarà sempre il primo elemento della dimensione. Si tratta di una scelta per facilitare la lettura, in quantoCOUNToVALUEcodifica informazioni concettualmente leggermente diverse da tutte le altre dimensioni. - Tieni traccia del set di dimensioni che utilizzi nelle chiavi. Vuoi evitare di generare chiavi basate su un insieme di dimensioni che non hai mai utilizzato.
- Le collisioni di hash sono rare se viene utilizzata una funzione hash adatta, ma il controllo rispetto agli hash utilizzati in precedenza (che devono essere archiviati per interpretare i risultati del servizio di aggregazione) può evitare l'introduzione di nuove chiavi che entrano in conflitto con quelle precedenti.
Scopri come utilizzare le chiavi basate su hash in pratica nell'esempio di una conversione per clic o visualizzazione.
Valori aggregabili in pratica
La società di tecnologia pubblicitaria imposta i valori aggregabili quando un utente esegue una conversione.
Per proteggere la privacy degli utenti, i contributi di ciascun utente hanno un limite massimo. Per tutti i valori aggregabili associati a una singola origine (clic o visualizzazione dell'annuncio), nessun valore può superare un determinato limite di contributo.
Ci riferiremo a questo limite come CONTRIBUTION_BUDGET. Nella spiegazione, questo limite è chiamato budget L1, ma è uguale a CONTRIBUTION_BUDGET.
Per una discussione approfondita del budget di contributo, consulta Budget di 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 categorie di prodotto sono le più preziose in ogni regione?
- Quali strategie per le campagne sono più efficaci in ogni regione?
Supponiamo anche che per il tuo caso d'uso ti servano approfondimenti settimanali.
Devi anche monitorare quanto segue:
- 16 campagne diverse.
- 8 diverse regioni geografiche: Nord America, America centrale, Sud America, Europa, Africa, Asia, Caraibi e Oceania.
- 29 diverse categorie di prodotti.
Che cosa misurare
Sebbene molte società di tecnologia pubblicitaria incoraggino gli inserzionisti a configurare una serie di tipi di conversione, concentrarsi sulle conversioni più importanti, come gli acquisti, è un buon modo per verificare che i risultati aggregati siano dettagliati e accurati per questi importanti eventi di conversione. Infatti, più metriche misuri, minore è il budget di attribuzione per metrica e quindi più è probabile che ogni valore sia rumoroso. Pertanto, devi selezionare attentamente cosa misurare.
In questo esempio, ci concentreremo sulle configurazioni delle campagne che misurano una sola conversione per clic o visualizzazione: un acquisto.
Continuerai a misurare sia il conteggio degli acquisti sia il valore degli acquisti e ad accedere a una serie di importanti statistiche aggregate, come il valore totale degli acquisti e le suddivisioni geografiche. In questo modo, il rumore viene gestito in modo efficace, confermando al contempo un metodo di scalabilità semplice per il budget dei contributi.
E le valute?
La pubblicazione di campagne in regioni diverse implica la necessità di prendere in considerazione le valute. Potresti:
- Rendi la valuta una dimensione dedicata nelle chiavi di aggregazione.
- oppure dedurre la valuta da un ID campagna e convertire 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.
Tradurre gli obiettivi in chiavi
Con i tuoi obiettivi e le tue metriche di misurazione, hai a disposizione diverse opzioni per la tua strategia chiave. Concentriamoci su due di queste strategie:
- Strategia A: una struttura delle chiavi granulare.
- Strategia B: due strutture di chiavi grossolane.
Strategia A: un albero profondo (una struttura di chiavi granulare)
Nella strategia A, utilizzi una struttura delle chiavi granulare che include tutte le dimensioni di cui hai bisogno:
Tutte le tue chiavi utilizzano questa struttura.
Dividi questa struttura di chiavi in due tipi di chiavi per supportare due obiettivi di misurazione.
- Tipo di chiave 0: tipo di obiettivo di misurazione = 0, che decidi di definire come un conteggio 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:
Puoi considerare la strategia A come una strategia "ad albero di un solo livello":
- Ogni valore di riepilogo nei report di riepilogo è associato a tutte le dimensioni che monitori.
- Puoi aggregare questi valori di riepilogo insieme a ciascuna di queste dimensioni, in modo che queste aggregazioni possano essere profonde quanto il numero di dimensioni che hai.
Con la strategia A, risponderesti alle domande nel seguente modo:
| Domanda | Risposta |
|---|---|
| Quali categorie di prodotto sono le più preziose in ogni regione? | Somma i conteggi e i valori degli acquisti riepilogativi presenti nei report riepilogativi
in tutte le campagne. In questo modo, ottieni il conteggio e il valore degli acquisti per ID geografico × categoria di prodotto. Per ogni regione, confronta il valore e il conteggio degli acquisti di diverse categorie di prodotto. |
| Quali strategie per le campagne sono più efficaci in ogni regione? | Somma i conteggi e i valori degli acquisti riepilogativi
nei report riepilogativi, in tutte le categorie di prodotto. In questo modo, ottieni il conteggio e il valore degli acquisti per ID campagna × ID area geografica. Per ogni regione, confronta il valore e il conteggio degli acquisti per diverse campagne. |
Con la strategia A, puoi rispondere direttamente anche a questa terza domanda:
"Quante entrate per prodotto ha generato ciascuna delle mie campagne in ogni regione geografica?"
Anche se i valori di riepilogo saranno rumorosi, puoi determinare quando le differenze nel valore misurato tra ogni campagna non sono dovute solo al rumore. Scopri come farlo in Informazioni sul rumore.
Strategia B: due alberi superficiali (due strutture di chiavi grossolane)
Nella strategia B, utilizzi due strutture di chiavi grossolane, ciascuna delle quali include un sottoinsieme delle dimensioni che ti servono:
Dividi ciascuna di queste strutture chiave in due tipi principali per supportare due obiettivi di misurazione.
- Tipo di obiettivo di misurazione = 0, che decidi di definire come conteggio acquisti.
- Tipo di obiettivo di misurazione = 1, che decidi di definire come valore dell'acquisto.
Si ottengono quattro tipi di chiavi:
- Tipo di chiave I-0: struttura della chiave I, conteggio degli acquisti.
- Tipo di chiave I-1: struttura della chiave I, valore di acquisto.
- Tipo di chiave II-0: struttura della chiave II, conteggio acquisti.
- Tipo di chiave II-1: struttura della chiave II, valore di acquisto.
I report di riepilogo hanno il seguente aspetto:
Puoi considerare la strategia B come una strategia "a due alberi poco profondi":
- I valori di riepilogo nei report di riepilogo vengono mappati a uno dei due piccoli insiemi di dimensioni.
- Puoi aggregare questi valori di riepilogo insieme a ciascuna delle dimensioni in questi set. Ciò significa che queste aggregazioni non sono profonde come nell'opzione A, poiché ci sono meno dimensioni da aggregare.
Con la strategia B, risponderesti alle domande nel seguente modo:
| Domanda | Risposta |
|---|---|
| Quali categorie di prodotto sono le più preziose in ogni regione? | Accedere direttamente ai conteggi e ai valori degli acquisti riepilogativi nei report riepilogativi. |
| Quali strategie per le campagne sono più efficaci in ogni regione? | Accedere direttamente ai conteggi e ai valori degli acquisti riepilogativi nei report riepilogativi. |
Decisione: strategia A
La strategia A è più semplice: tutti i dati seguono la stessa struttura delle chiavi, il che significa anche che devi mantenere una sola struttura delle chiavi.
Tuttavia, con la strategia A, devi sommare i valori riepilogativi che ricevi nei report riepilogativi per rispondere ad alcune domande. Ciascuno di questi valori di riepilogo è rumoroso. Sommando questi dati, sommi anche il rumore.
Non è così per la strategia B, in cui i valori riepilogativi esposti nei report riepilogativi forniscono già le informazioni necessarie. Ciò significa che la strategia B probabilmente avrà un impatto minore del rumore rispetto alla strategia A.
Come si determina quale strategia utilizzare? Per gli inserzionisti o le campagne esistenti, puoi fare affidamento sui dati storici per determinare se il volume di conversioni è più adatto alla strategia A o alla strategia B. Tuttavia, per i nuovi inserzionisti o campagne, puoi decidere di:
- Raccogli i dati di un mese con le chiavi granulari (strategia A). Poiché stai estendendo la durata della raccolta dei dati, i valori di riepilogo saranno più alti e il rumore sarà relativamente più basso.
- Valutare con ragionevole precisione il conteggio delle conversioni settimanali e il valore degli acquisti.
In questo esempio, supponiamo che il conteggio degli acquisti settimanali e il valore degli acquisti siano sufficientemente elevati da far sì che la strategia A porti a una percentuale di rumore che ritieni accettabile per il tuo caso d'uso.
Poiché la strategia A è più semplice e porta a un impatto acustico 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 sull'hashing per generare le chiavi. Per farlo, devi selezionare un algoritmo di hashing per supportare questo approccio.
Supponiamo che tu abbia selezionato SHA-256. Potresti anche utilizzare un algoritmo più semplice e meno sicuro, come MD5.
Nel browser: imposta chiavi e valori
Ora che hai scelto una struttura delle chiavi e un algoritmo di hashing, puoi registrare chiavi e valori quando gli utenti fanno clic o visualizzano gli annunci e successivamente eseguono una conversione.
Di seguito è riportata una panoramica delle intestazioni che imposterai per registrare chiavi e valori nel browser:
Impostare i componenti chiave lato origine
Quando un utente fa clic o visualizza un annuncio, imposta le chiavi di aggregazione nell'intestazione
Attribution-Reporting-Register-Aggregatable-Source.
In questa fase, per ogni chiave puoi impostare solo la parte della chiave, o pezzo di chiave, nota al momento della pubblicazione dell'annuncio.
Generiamo gli elementi chiave:
| Componente della chiave lato origine per l'ID chiave… | Stringa contenente i valori delle dimensioni che vuoi impostare | Hash di questa stringa in formato esadecimale, troncato ai primi 64 bit (64/4 = 16 caratteri1) | Hash esadecimale con zeri aggiunti per semplificare l'operazione OR. Questo è il componente chiave lato origine. |
|---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Ora impostiamo i pezzi 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 utilizzati solo quando vengono impostate le chiavi nel browser, in modo che i pezzi di chiave lato origine e lato trigger possano 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, verifica che per una determinata origine i dati a livello di evento (ID evento sorgente e dati di attivazione) e la chiave di aggregazione possano essere abbinati.
Potresti utilizzare entrambi i report se, ad esempio, prevedi di utilizzare i 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 esegue una conversione, in genere viene inviata una richiesta di pixel al server di tecnologia pubblicitaria. Una volta ricevuta questa richiesta:
- Imposta i pezzi chiave lato conversione (lato trigger) per completare la chiave.
Imposterai questi elementi chiave utilizzando l'intestazione
Attribution-Reporting-Register-Aggregatable-Trigger-Data. - Imposta il valore aggregabile per la conversione utilizzando l'intestazione
Attribution-Reporting-Register-Aggregatable-Values.
Imposta i pezzi della chiave lato trigger per completare la chiave
Generiamo gli elementi chiave:
| Componente della chiave lato attivatore per l'ID chiave… | Stringa contenente i valori delle dimensioni che vuoi impostare | Hash di questa stringa in formato esadecimale, troncato ai primi 64 bit (64/4 = 16 caratteri1) | Hash esadecimale con zeri aggiunti per semplificare l'operazione OR. Questo è il componente chiave lato origine. |
|---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(idem) | (idem) | (idem) |
Ora impostiamo i pezzi 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 lo stesso pezzo di chiave a più chiavi elencando più ID chiave in source_keys. Il pezzo di chiave verrà aggiunto a entrambe le chiavi.
Impostare valori aggregabili
Prima di impostare i valori aggregabili, devi aumentarli per ridurre il rumore.
Supponiamo che sia stato effettuato un acquisto per il tipo di prodotto 25 per 52 $.
Non imposterai questi valori direttamente come aggregabili:
key_purchaseCount: 1 conversionekey_purchaseValue: 52 $
Prima di registrare questi valori aggregabili, devi scalarli per ridurre al minimo il rumore.
Hai due obiettivi per spendere il budget per i contributi, quindi potresti decidere di dividere il budget per i contributi 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 massimo di acquisto per un singolo utente, in base alla cronologia degli acquisti di tutti gli utenti del sito, sia di 1500 $. Potrebbero esserci valori anomali, ad esempio pochissimi utenti che hanno speso più di quella somma, ma potresti decidere di ignorarli.
Il fattore di scalabilità per il valore di acquisto deve essere:
((CONTRIBUTION_BUDGET/2) / 1500) = 32.768/1500 = 21,8 ≈ 22
Il fattore di scalabilità per il conteggio degli acquisti è 32.768/1 = 32.768, poiché hai deciso di monitorare al massimo un acquisto per clic o visualizzazione dell'annuncio (evento origine).
Ora puoi impostare questi valori:
key_purchaseCount: 1 × 32.768 = 32.768key_purchaseValue: 52 × 22 = 1144
In pratica, li 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,
})
);
Il report aggregabile viene generato
Il browser abbina la conversione a una visualizzazione o a un clic precedenti e genera un report aggregabile, che include il payload criptato accanto ai metadati del report.
Di seguito è riportato un esempio dei dati che potrebbero essere trovati all'interno del payload del report aggregabile, se fosse leggibile in testo non crittografato:
[
{
key: 0x3cf867903fbb73ecf9e491fe37e55a0c, // = source-side key piece OR 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 OR 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 contributi separati in un unico report aggregabile.
Richiedere un report riepilogativo
- Report aggregabili batch. Segui i consigli forniti in Batching.
- Genera le chiavi per cui vuoi visualizzare i dati. Ad esempio, per visualizzare i dati di riepilogo
per
COUNT(numero totale di acquisti) eVALUE(valore totale degli acquisti) per l'ID campagna 12 × ID geografia 7 × Categoria prodotto 25:- Genera il componente della chiave lato origine, come hai fatto quando l'hai impostato nel browser.
- Genera la parte della chiave lato trigger, come hai fatto quando l'hai impostata nel browser.
| Metrica che vuoi richiedere1 | Componente della chiave lato origine | Componente della chiave lato trigger | Chiave per la richiesta al servizio di aggregazione2 |
|---|---|---|---|
Conteggio totale degli acquisti (COUNT) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Valore totale dell'acquisto (VALUE) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Richiedi i dati di riepilogo al servizio di aggregazione per queste chiavi.
Gestire il report di riepilogo
Alla fine, ricevi un report di riepilogo simile a questo:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Il primo bucket è la chiave COUNT in formato binario. Il secondo bucket è la chiave VALUE
in formato binario.
Tieni presente che, sebbene le chiavi siano eterogenee (COUNT rispetto a VALUE), sono contenute
nello stesso report.
Ridimensiona i valori
- 2.558.500 si riferisce al numero di acquisti per questa chiave, aumentato in base al fattore di scalabilità calcolato in precedenza. Il fattore di scalabilità per il conteggio degli acquisti era 32.768. Dividi 2.558.500 per il budget di contributo dell'obiettivo: 2.558.500/32.768 = 156,15 acquisti.
- 687.060 → 687.060/22 = 31.230 $di valore totale dell'acquisto.
Di conseguenza, i report di riepilogo forniscono le seguenti informazioni:
- Within the reporting time period, campaign #12
run in Europe drove about 156 purchases (± noise)
for the product category #25
```
```text
- Within the reporting time period, campaign #12
run in Europe drove $31,230 of purchases (± noise)
for the product category #25.