Czym są klucze agregacji, jak są używane w interfejsie Attribution Reporting API i jak można przekładać cele na klucze.
Jako firma z branży technologii reklamowych, która prowadzi kampanie reklamowe różnych kategorii produktów w wielu lokalizacjach, chcesz pomóc reklamodawcom uzyskać odpowiedzi na te pytania:
- Ile zakupów z poszczególnych kategorii produktów wygenerowały poszczególne kampanie w poszczególnych regionach geograficznych?
- Jakie przychody z poszczególnych kategorii produktów wygenerowały poszczególne kampanie w poszczególnych regionach geograficznych?
Wiele firm z branży technologii reklamowych zachęca reklamodawców do konfigurowania różnych typów konwersji. Skoncentrowanie się na najważniejszych konwersjach, takich jak zakupy, to dobry sposób na zapewnienie szczegółowości i dokładności podsumowania wyników tych ważnych zdarzeń.
Aby to zrobić, zastanów się, na jakie pytania chcesz odpowiedzieć, zanim zbierzemy dane.
Wymiary, klucze i wartości
Aby odpowiedzieć na te pytania, spójrzmy na wymiary, klucze i wartości.
Wymiary
Aby dowiedzieć się, jak Twoje kampanie generują przychody, musisz śledzić te wymiary:
- Identyfikator kampanii reklamowej: identyfikator konkretnej kampanii.
- Identyfikator geograficzny: region, w którym reklama została wyświetlona.
- Kategoria produktu: zdefiniowany przez Ciebie typ produktu.
Chociaż wymiary „Identyfikator kampanii” i „Identyfikator geograficzny” są znane w chwili wyświetlenia reklamy (czas wyświetlania reklamy), kategoria produktu jest znana ze zdarzenia wywołującego, gdy użytkownik zrealizuje konwersję (czas konwersji).
Wymiary, które chcesz śledzić w tym przykładzie, przedstawiono na tej ilustracji:
![Identyfikator kampanii, identyfikator geograficzny i kategoria produktów.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/campaign-id-geography-id-223ed5327b057.png?authuser=9&hl=pl)
Czym są klucze agregacji (zasobniki)?
Hasła klucz agregacji i zasobnik odnoszą się do tego samego elementu. Klucz agregacji jest używany w interfejsach API przeglądarki używanych do konfigurowania raportów. Termin zasobnik jest używany w raportach agregowanych i podsumowujących oraz w interfejsach API usługi agregacji.
Klucz agregacji to fragment danych, który reprezentuje wartości śledzonych wymiarów. Dane są później agregowane według każdego klucza agregacji.
Załóżmy np., że śledzisz wymiary Kategoria produktu, Identyfikator regionu i Identyfikator kampanii.
Jeśli użytkownik z identyfikatorem regionu geograficznego 7 zobaczy reklamę kampanii o identyfikatorze 12, a później dokona konwersji, kupując produkt z kategorii produktów 25, możesz ustawić klucz agregacji podobny do tego na tej ilustracji:
![Klucz agregacji dotyczący konwersji.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-key-a-conver-0cd37e4079fee.png?authuser=9&hl=pl)
Później przekonasz się, że klucz agregacji nie wygląda tak dokładnie w praktyce. Skupmy się jednak na tym, jakie informacje zawiera.
Czym są wartości agregujące?
Poniżej znajdziesz odpowiedzi na swoje pytania dotyczące opisanych wymiarów:
- liczba zakupów (liczba zakupów); Po zagregowaniu i udostępnieniu w raporcie podsumowującym łączną liczbę zakupów (wartość podsumowania).
- Przychody z każdego zakupu (wartość zakupu). Po zagregowaniu i udostępnieniu w raporcie podsumowującym ich łączne przychody (wartość podsumowania).
Każda z tych wartości – liczba zakupów dla jednej konwersji i wartość zakupu w przypadku jednej konwersji – jest wartością sumaryczną. Wartości agregujące można traktować jako wartości celów pomiarowych.
Pytanie | Wartość agregująca = cel pomiaru |
---|---|
Liczba zakupów... | Liczba zakupów |
Jakie przychody... | Wartość zakupu |
Jeśli użytkownik z identyfikatorem obszaru geograficznego 7 zobaczy reklamę kampanii o identyfikatorze 12, a później dokona konwersji, kupując produkt z kategorii produktów 25 za 120 zł (zakładając, że jego walutą jest dolar amerykański), możesz ustawić klucz agregacji i wartości agregowane, które wyglądają tak:
![Klucze i wartości agregacji.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregation-keys-values-912b4f69661bd.png?authuser=9&hl=pl)
Agregowane wartości są sumowane według klucza wielu użytkowników w celu wygenerowania zagregowanych statystyk w postaci wartości podsumowujących w raportach podsumowujących.
![Generuję statystyki zbiorcze.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-aggregated-ins-e7ef89ea0a238.png?authuser=9&hl=pl)
Agregowane wartości są sumowane, aby wygenerować zagregowane statystyki dotyczące Twoich celów pomiarowych.
Pamiętaj, że diagram pomija odszyfrowanie i przedstawia uproszczony przykład bez zastosowania szumu. W następnej sekcji omówimy ten przykład z użyciem szumu.
Od kluczy i wartości do raportów
Teraz omówmy związek kluczy i wartości agregujących z raportami.
Raporty agregowane
Gdy użytkownik kliknie lub obejrzy reklamę, a później dokona konwersji, instruujesz przeglądarkę, aby zapisała parę {agregation key, agregatable value}.
W naszym przykładzie, gdy użytkownik kliknie lub obejrzy reklamę, a potem dokona konwersji, instruujesz przeglądarkę, aby wygenerowała 2 elementy (po 1 na cel pomiaru).
![Generuję 2 elementy.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/generating-contributions-fa8bc97295bc7.png?authuser=9&hl=pl)
Później przekonasz się, że raport zbiorczy {klucz agregacji, aggregatable value} nie wygląda tak dokładnie tak, jak ten raport. Skupmy się jednak na informacjach zawartych w raporcie.
Jeśli na to zezwolisz, przeglądarka wygeneruje raport agregowany (jeśli może dopasować konwersję do poprzedniego wyświetlenia lub kliknięcia).
Raport agregowany zawiera:
- Skonfigurowane przez Ciebie treści.
- Metadane zdarzenia kliknięcia lub wyświetlenia oraz zdarzenia konwersji, czyli witryna, w której nastąpiła konwersja, itp. Zobacz wszystkie pola w raporcie agregowanym
![Powstały w ten sposób raport do zagregowania.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/the-resulting-aggregatabl-3df86364f7725.png?authuser=9&hl=pl)
Raporty agregujące mają format JSON i zawierają m.in. pole ładunku, które zostanie wykorzystane jako dane wejściowe do końcowego raportu podsumowującego.
Ładunek zawiera listę przekazanych danych, z których każdy jest parą {klucza agregacji, wartości agregacji}:
bucket
: klucz agregacji zakodowany jako ciąg bajtów.value
: agregowana wartość dla danego celu pomiarowego, zakodowana w postaci ciągu bajtów.
Oto przykład:
{
"data": [
{
"bucket": "111001001",
"value": "11111010000",
}
],
"operation": "histogram"
}
W praktyce raporty agregujące są kodowane w taki sposób, że segmenty i wartości wyglądają inaczej niż w poprzednim przykładzie (tzn. zasobnik może wyglądać tak, jak \u0000\u0000\x80\u0000
). Zasobnik i wartość to ciągi bajtów.
Raporty podsumowujące
Raporty zbiorcze są agregowane w ten sposób dotyczące wielu przeglądarek i urządzeń (użytkowników):
- Technika reklamowa żąda raportów podsumowujących dla danego zestawu kluczy i danego zestawu raportów zbiorczych, które pochodzą z wielu różnych przeglądarek (użytkowników).
- Raporty agregowane są odszyfrowywane przez usługę agregacji.
- Dla każdego klucza agregowane wartości z raportów agregowanych są sumowane.
- Do wartości podsumowania jest dodawany szum.
![Raporty agregujące oraz wyniki agregacji, odszyfrowywania i szumu w raporcie podsumowującym.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/aggregatable-reports-plus-9bd26966f76f7.png?authuser=9&hl=pl)
Wynikiem jest raport podsumowujący zawierający zbiór par {klucz agregacji, podsumowania wartości}.
Raport podsumowujący zawiera zestaw par klucz-wartość w stylu słownika JSON. Każda para obejmuje:
bucket
: klucz agregacji zakodowany jako ciąg bajtów.value
: łączna wartość dziesiętna dla danego celu pomiarowego, podsumowana ze wszystkich dostępnych raportów agregowanych, z dodatkowym poziomem szumu.
Przykład:
[
{"bucket": "111001001", "value": "2558500"},
{"bucket": "111101001", "value": "3256211"},
{...}
]
W praktyce raporty podsumowujące są kodowane w taki sposób, że segmenty i wartości wyglądają inaczej niż w przykładzie (tzn. zasobnik może wyglądać tak: \u0000\u0000\x80\u0000
). Zasobnik i wartość to ciągi bajtów.
Klucze agregacji w praktyce
Klucze agregacji (zasobniki) są definiowane przez firmę z branży technologii reklamowych – zwykle w 2 etapach: gdy użytkownik klika lub wyświetla reklamę i dokonuje konwersji.
Struktura klucza
Wykorzystamy termin struktura klucza, by wskazać zbiór wymiarów zakodowanych w kluczu.
Na przykład identyfikator kampanii × identyfikator geograficzny × Kategoria produktu to kluczowa struktura.
![Struktura klucza.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-17b99e9ad0974.png?authuser=9&hl=pl)
Typy kluczy
Wartości agregujące są sumowane dla danego klucza dla różnych użytkowników/przeglądarek. Zauważyliśmy jednak, że agregowane wartości pozwalają śledzić różne cele pomiarowe, np. wartość zakupu czy liczbę zakupów. Chcesz mieć pewność, że usługa agregacji będzie sumować wartości tego samego typu, które można agregować.
Aby to zrobić, w każdym kluczu zakoduj fragment danych, który informuje, co reprezentuje wartość podsumowania, czyli cel pomiarowy, do którego odnosi się ten klucz. Jednym ze sposobów jest utworzenie dla klucza dodatkowego wymiaru, który będzie reprezentował typ celu pomiarowego.
W poprzednim przykładzie ten typ celu pomiarowego miałby 2 możliwe wartości:
- Liczba zakupów to pierwszy rodzaj celu pomiaru.
- Wartość zakupu to drugi typ celu pomiarowego.
![Cele związane z pomiarami i ich rodzaje.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/measurement-goals-measur-6f6f8b6468ec3.png?authuser=9&hl=pl)
Gdyby było n celów pomiarowych, typ celu pomiarowego miałby n różnych typów wartości.
Wymiary klucza możesz traktować jak dane. Na przykład „liczba zakupów danego produktu na kampanię w danym regionie”.
Rozmiar klucza, rozmiar wymiaru
Maksymalny rozmiar klucza jest określony w bitach, czyli liczbie zer i jedynek w formacie binarnym potrzebnych do utworzenia pełnego klucza. Interfejs API zezwala na użycie klucza o długości 128 bitów.
Taki rozmiar umożliwia użycie bardzo szczegółowych kluczy, ale bardziej szczegółowe klucze mogą generować bardziej zaszumione wartości. Więcej informacji o szumie znajdziesz w artykule Co to jest szum?
Jak już wspomnieliśmy, wymiary są kodowane w kluczu agregacji. Każdy wymiar ma określoną moc zbioru, czyli liczbę różnych wartości, które może przyjąć. Zależnie od jego mocy zbioru każdy wymiar musi być reprezentowany przez określoną liczbę bitów. Przy n bitów możliwe jest określenie 2n różnych opcji.
np. wymiar Kraj może mieć moc zbioru wynoszący 200, ponieważ jest to około 200 krajów na świecie. Ile bitów potrzeba do zakodowania tego wymiaru?
W przypadku 7 bitów zapisywane jest tylko 27 = 128 różnych opcji, czyli mniej niż wymagane 200.
W przypadku 8 bitów zapisane jest 28 = 256 różnych opcji, czyli więcej niż wymagane 200, więc do zakodowania tego wymiaru można użyć n=8 bitów.
Kodowanie klucza
Klucze ustawione w przeglądarce powinny być zakodowane w formacie szesnastkowym. W raportach podsumowujących klucze będą widoczne w formacie binarnym (i będą nazwane zasobnikami).
Ustawienie dwóch kluczowych elementów dla pełnego klucza
Załóżmy, że używasz klucza do śledzenia tych wymiarów:
- Identyfikator kampanii
- Identyfikator regionu
- Kategoria produktu
Chociaż wymiary „Identyfikator kampanii” i „Identyfikator geograficzny” są znane w chwili wyświetlenia reklamy (czas wyświetlania reklamy), kategoria produktów jest znana ze zdarzenia wywołującego, gdy użytkownik zrealizuje konwersję (czas konwersji).
W praktyce oznacza to, że trzeba skonfigurować klucz w 2 krokach:
- Jedna część klucza – identyfikator kampanii × identyfikator geograficzny – ustawia się w momencie kliknięcia lub wyświetlenia.
- Drugą część klucza (kategorię produktu) ustawiasz podczas konwersji.
Te różne części klawiszy są nazywane kluczowymi fragmentami.
Klucz jest obliczany przez równanie XOR (^
) jego kluczowych części.
![Najważniejsze elementy gry XOR.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/xoring-key-pieces-6c7b39f58a41f.png?authuser=9&hl=pl)
Przykład:
- Klucz po stronie źródła =
0x159
- Klucz po stronie aktywatora =
0x400
- Klucz =
0x159 ^ 0x400 = 0x559
Wyrównywanie kluczowych elementów
W przypadku dwóch 64-bitowych części klucza rozszerzonego do 128-bitowego z użyciem starannie rozmieszczonych 64-bitowych wypełniaczy/przesunięć (szesnaście zer) fragment klucza XOR jest odpowiednikiem ich konkatenacji, co jest łatwiejsze do wyciągnięcia wniosków i weryfikacji:
- Klucz po stronie źródła =
0xa7e297e7c8c8d0540000000000000000
- Klucz po stronie aktywatora =
0x0000000000000000674fbe308a597271
- Klucz =
0xa7e297e7c8c8d0540000000000000000 ^ 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271
Wiele kluczy na kliknięcie lub wyświetlenie reklamy
W praktyce możesz ustawić wiele kluczy na zdarzenie źródła atrybucji (kliknięcie lub wyświetlenie reklamy). Możesz na przykład ustawić:
- Klucz do śledzenia identyfikatora geograficznego × identyfikator kampanii.
- Inny klucz śledzący typ kreacji × identyfikator kampanii.
Przyjrzyjmy się innemu przykładowi strategii B.
Kodowanie wymiarów w kluczach
Żądając raportów podsumowujących, musisz wskazać usłudze agregacji, do jakich danych chcesz mieć dostęp. W tym celu musisz zażądać raportów podsumowujących dla określonego zestawu kluczy agregacji.
Raporty podsumowujące zawierają nieprzetworzone pary {klucz, wartość podsumowania} i nie zawierają dodatkowych informacji o kluczu. Oznacza to, że:
- Gdy ustawiasz klucze, gdy użytkownik wyświetla lub klika reklamę, a potem dokonuje konwersji, musisz skonfigurować klucze niezawodnie na podstawie wartości reprezentowanych przez nie wymiarów.
- Podczas definiowania kluczy, dla których chcesz otrzymywać raporty podsumowujące, musisz generować i na bieżąco uzyskiwać te same klucze, które zostały ustawione, gdy użytkownik wyświetlił lub kliknął reklamę i dokonał konwersji, na podstawie wartości wymiarów, o których chcesz zobaczyć zbiorcze dane.
Kodowanie wymiarów za pomocą map struktury kluczy
Aby zakodować wymiary w klucze, możesz utworzyć i obsługiwać mapę struktury kluczy z wyprzedzeniem po zdefiniowaniu kluczy (przed rozpoczęciem wyświetlania reklam).
Mapa struktury kluczy reprezentuje każdy wymiar i jego pozycję w kluczu.
W praktyce tworzenie i utrzymywanie map struktury kluczy oznacza wdrożenie i obsługę logiki dekodera. Jeśli szukasz metody, która nie wymaga tego, rozważ użycie metody opartej na haszach.
Oto przykład:
Załóżmy, że planujesz śledzić zarówno zakupy, jak i wartości zakupów w przypadku konkretnych kampanii, regionów geograficznych i produktów.
Kategoria produktu, identyfikator regionu i identyfikator kampanii muszą być wymiarami w kluczach. Poza tym chcesz śledzić 2 różne cele pomiarowe – liczbę zakupów i wartość zakupu – musisz też dodać w kluczu 1 wymiar, który śledzi typ klucza. Pozwoli Ci to określić, co faktycznie agregowana wartość reprezentuje po otrzymaniu par {key, aggregatable value} w raportach podsumowujących.
W przypadku tych celów pomiarowych klucz ma następujące wymiary:
- Kategoria produktu
- Typ celu pomiaru
- Identyfikator regionu
- Identyfikator kampanii
Przyjrzyjmy się teraz poszczególnym wymiarom, załóżmy, że w Twoim przypadku użycia musisz śledzić te elementy:
- 29 różnych kategorii produktów.
- 8 różnych regionów geograficznych: Ameryka Północna, Ameryka Środkowa, Ameryka Południowa, Europa, Afryka, Azja, Karaiby i Oceania.
- 16 różnych kampanii.
Oto liczba bitów potrzebnych do zakodowania każdego wymiaru w Twoim kluczu:
- Kategoria produktu: 5 bitów (25 = 32 > 29).
- Typ celu pomiaru: 1 bit. Celem pomiaru jest liczba zakupów lub wartość zakupu, co oznacza dwie różne możliwości: dlatego do jego zapisania wystarczy 1 bit.
Identyfikator regionu: 3 bity (23 = 8). Zdefiniowano też mapę wymiarów dla identyfikatora geograficznego, by sprawdzić, z jakiego regionu geograficznego odpowiadają poszczególne wartości binarne. Mapa wymiarów dla wymiaru Identyfikator geograficzny może wyglądać tak:
Wartość binarna w kluczu Geografia 000 Ameryka Północna 001 Ameryka Środkowa 010 Ameryka Południowa 011 Europa 100 Afryka 101 Azja 110 Karaiby 111 Oceania Identyfikator kampanii: 4 bity (24 = 16)
Klucze zgodne z tą strukturą będą miały 13 bitów (5 + 1 + 3 + 4).
W tym przykładzie mapa struktury kluczy dla tych kluczy powinna wyglądać tak:
![Mapa struktury kluczy.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-map-4664a0905c7de.png?authuser=9&hl=pl)
Kolejność wymiarów w kluczu zależy od Ciebie.
Aby pokazać, jak wymiary składają się na strukturę kluczową, użyjemy reprezentacji binarnej. Dlatego identyfikator kampanii (pierwsze bity) znajduje się skrajnie z prawej strony, a kategoria produktów (ostatnie bity) – na lewą stronę.
W każdym wymiarze najbardziej istotny fragment, czyli ten, który zawiera największą wartość liczbową, to ten, który znajduje się najbardziej na lewo. Najmniejszy bit istotny – ten, który zawiera najmniejszą wartość liczbową, to ten, który znajduje się najbardziej po prawej stronie.
Zobaczmy, jak użyć mapy struktury kluczy do zdekodowania klucza.
Przeanalizujmy klucz 0b1100100111100 jako dowolny przykładowy klucz i załóżmy, że masz pewność, że ten klucz jest zgodny z mapą struktury klucza na poprzedniej ilustracji.
Zgodnie z mapą struktury klucza ten klucz zostałby dekodowany na język 11001 0 011 1100
.
Klucz 0b1100100111100 reprezentuje liczbę zakupów w kategorii produktów 25 w przypadku identyfikatora kampanii 12 uruchomionej w Europie.
Kodowanie wymiarów za pomocą funkcji skrótu
Zamiast korzystać z mapy struktury kluczy, możesz użyć funkcji szyfrowania, aby dynamicznie generować klucze w spójny i niezawodny sposób.
Działa to w następujący sposób:
- Wybierz algorytm szyfrowania.
- W momencie wyświetlania reklam wygeneruj ciąg znaków zawierający wszystkie wymiary, które chcesz śledzić, oraz ich wartości. Aby wygenerować klucz po stronie źródła,
zaszyfruj ten ciąg i rozważ dodanie 64-bitowego sufiksu zer w celu align
za pomocą klucza po stronie aktywatora, co ułatwia wyciąganie wniosków.
- Klucz po stronie źródła
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Pamiętaj, że
COUNT
koduje to samo comeasurementGoalType=0
w metodzie mapy struktury klucza.COUNT
jest nieco luźniejszy i bardziej bezpośredni.
- Klucz po stronie źródła
- W momencie konwersji wygeneruj ciąg znaków zawierający wszystkie wymiary, które chcesz śledzić.
własnymi wartościami. Aby wygenerować fragment klucza po stronie aktywatora, zaszyfruj ten ciąg i dodaj 64-bitowy przedrostek zer:
- Klucz po stronie aktywatora
=
<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- Klucz po stronie aktywatora
=
- Przeglądarka wykonuje komendę XOR na te kluczowe fragmenty, aby wygenerować klucz.
- 128-bitowy klucz agregacji
=<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
- 128-bitowy klucz agregacji
- Gdy zechcesz wygenerować raport podsumowujący ten klucz, wygeneruj go na bieżąco:
- Na podstawie interesujących Cię wymiarów wygeneruj klucz po stronie źródła i po stronie reguły, tak jak wcześniej.
- Klucz po stronie źródła
=<64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
- Klucz po stronie aktywatora
=<64-bit 00000000…><64-bit hex hash("productCategory=25")>
- fragment klucza po stronie aktywatora =
toHex(hash("productCategory=25"))
- Klucz po stronie źródła
- Podobnie jak w przypadku przeglądarki, wykonaj XOR na kluczu, aby wygenerować ten sam klucz, który przeglądarka wygenerowała wcześniej.
- 128-bitowy klucz agregacji
=<64-bit source-side key piece hash><64-bit source-side key piece hash>
- 128-bitowy klucz agregacji
- Na podstawie interesujących Cię wymiarów wygeneruj klucz po stronie źródła i po stronie reguły, tak jak wcześniej.
Kilka praktycznych wskazówek dotyczących korzystania z tej metody opartej na haszowaniu:
- Kolejność wymiarów zawsze powinna być taka sama. Zapewni to prawidłowe generowanie haszy. (
"COUNT, CampaignID=12, GeoID=7"
nie wygeneruje takiego samego hasza jak"COUNT, GeoID=7, CampaignID=12"
). Prostym sposobem, aby to osiągnąć, jest sortowanie wymiarów w sposób alfanumeryczny. To właśnie zrobimy w przykładzie. Wyjątkiem jest sytuacja, w której pierwszym elementem w wymiarze będzieCOUNT
lubVALUE
– warto to zrobić, aby zwiększyć czytelność, ponieważ wartościCOUNT
lubVALUE
kodują informacje, które są nieco inne koncepcyjnie niż wszystkie pozostałe wymiary. - Śledź zestaw wymiarów w kluczach. Nie chcesz generować kluczy na podstawie zestawu wymiarów, które nigdy nie były używane.
- Zderzenia haszy występują rzadko, jeśli używana jest odpowiednia funkcja skrótu, ale sprawdzenie pod kątem wcześniej używanych haszów (które należy przechowywać w celu interpretacji wyników z usługi agregacji) może uniknąć wprowadzania nowych kluczy w konflikcie ze starszymi kluczami.
W przykładzie z jedną konwersją na kliknięcie lub wyświetlenie dowiesz się, jak używać kluczy opartych na haszowaniu.
Wartości agregujące w praktyce
Gdy użytkownik dokonuje konwersji, firma z branży technologii reklamowych ustawia agregowane wartości.
Aby chronić prywatność użytkowników, obowiązuje górny limit publikowanych treści. We wszystkich agregowanych wartościach powiązanych z jednym źródłem (kliknięciem lub wyświetleniem reklamy) żadna wartość nie może być wyższa niż określony limit udziału.
Będziemy je nazywać CONTRIBUTION_BUDGET
. W objaśnieniu ten limit nazywa się budżetem L1, ale jest taki sam jak CONTRIBUTION_BUDGET
.
Szczegółowe informacje o budżecie darowizn znajdziesz w artykule Budżet darowizn na potrzeby raportów podsumowujących.
Przykład: jedna konwersja na kliknięcie lub wyświetlenie
W tym przykładzie załóżmy, że chcesz uzyskać odpowiedzi na następujące pytania:
- Które kategorie produktów są najcenniejsze w każdym regionie?
- Które strategie kampanii są najskuteczniejsze w poszczególnych regionach?
Załóżmy też, że w Twoim przypadku użycia potrzebujesz statystyk co tydzień.
Musisz też śledzić:
- 16 różnych kampanii.
- 8 różnych regionów geograficznych: Ameryka Północna, Ameryka Środkowa, Ameryka Południowa, Europa, Afryka, Azja, Karaiby i Oceania.
- 29 różnych kategorii produktów.
Co warto mierzyć
Wiele firm z branży technologii reklamowych zachęca reklamodawców do konfigurowania różnych typów konwersji. Skoncentrowanie się na najważniejszych konwersjach, takich jak zakupy, to dobry sposób na zapewnienie szczegółowych i dokładnych wyników zbiorczych w przypadku tych ważnych zdarzeń konwersji. Im więcej danych zmierzysz, tym mniejszy będzie budżet przekazany na dany rodzaj danych, a co za tym idzie, im więcej będzie szumu w przypadku każdej wartości. Dlatego musisz starannie wybrać, co chcesz mierzyć.
W tym przykładzie skupimy się na konfiguracjach kampanii, które mierzą tylko jedną konwersję na kliknięcie lub wyświetlenie: zakup.
Nadal będziesz mierzyć zarówno liczbę zakupów, jak i ich wartość. Masz też dostęp do różnych ważnych statystyk zbiorczych, takich jak łączna wartość zakupów czy zestawienia geograficzne. Zapewnia to rozsądne skalowanie szumu i zapewnia proste skalowanie budżetu przeznaczonego na darowizny.
A co z walutami?
Prowadzenie kampanii w różnych regionach oznacza, że trzeba wziąć pod uwagę różne waluty. Możesz:
- Ustaw walutę jako specjalny wymiar w kluczach agregacji.
- Możesz też wywnioskować walutę na podstawie identyfikatora kampanii i przeliczyć wszystkie waluty na waluty referencyjne.
W tym przykładzie zakładamy, że można wywnioskować walutę na podstawie identyfikatora kampanii. Umożliwia to przeliczenie wartości zakupu z waluty lokalnej użytkownika na wybraną walutę referencyjną. Możesz też dokonać tej konwersji na bieżąco, gdy użytkownik kupi produkt.
Dzięki tej metodzie wszystkie agregowane wartości są podawane w tej samej walucie referencyjnej i dlatego można je zsumować, by wygenerować łączną zagregowaną wartość zakupu – sumę wartości zakupu.
Przekształć cele na klucze
W przypadku celów i danych pomiarowych masz do wyboru wiele opcji jako kluczową strategię. Skupmy się na dwóch z tych strategii:
- Strategia A: jedna szczegółowa struktura kluczowa
- Strategia B: dwie ogólne struktury kluczowe.
Strategia A: jedno głębokie drzewo (1 szczegółowa struktura kluczowa)
W strategii A stosujesz jedną szczegółową strukturę klucza, która obejmuje wszystkie potrzebne wymiary:
![1 szczegółowa struktura klucza](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/one-granular-key-structur-85e0f0ef579b3.png?authuser=9&hl=pl)
Wszystkie Twoje klucze korzystają z tej struktury.
Podzieliłeś tę strukturę klucza na 2 typy kluczy, aby obsługiwać 2 pomiary celów.
- Typ klucza 0: typ celu pomiarowego = 0, który decydujesz się zdefiniować jako liczba zakupów.
- Typ klucza 1: typ celu pomiarowego = 1, który decydujesz się zdefiniować jako wartość zakupu.
Raporty podsumowania wyglądają tak:
![Raport podsumowujący Strategia A](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/strategy-summary-report-c13d51d0ef5b.png?authuser=9&hl=pl)
Strategię A można traktować jako „jedno głębokie drzewo” strategia:
- Każda wartość podsumowania w raportach podsumowujących jest powiązana ze wszystkimi w których śledzisz wymiary.
- Możesz podsumować te wartości z każdym z tych wymiarów, Ich zakres może sięgać tak miarodaj jak liczby wymiarów.
W przypadku strategii A można odpowiedzieć na pytania w ten sposób:
Pytanie | Odpowiedź |
---|---|
Które kategorie produktów są najcenniejsze w każdym regionie? | Zsumuj liczbę zakupów i ich wartości podane w podsumowaniu.
we wszystkich kampaniach. Wskazuje liczbę zakupów i wartość na identyfikator geograficzny × produkt. . Porównaj wartość zakupu i liczbę różnych produktów w każdym regionie. kategorii produktów. |
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? | Zsumuj liczbę zakupów i ich wartości podane w podsumowaniu.
we wszystkich kategoriach produktów. W ten sposób poznasz liczbę zakupów i wartość na identyfikator kampanii × identyfikator geograficzny. Porównaj wartość zakupu z każdego regionu i licz: kampanie. |
W przypadku strategii A możesz także bezpośrednio odpowiedzieć bezpośrednio na trzecie pytanie:
„Jaki przychód z każdego produktu przyniósł każda z moich kampanii w poszczególnych regionach w danym regionie?”
Mimo że wartości podsumowania mogą być zaszumione, możesz określić, różnice w wartości mierzonej między poszczególnymi kampaniami nie wynikają z szumu z innymi. Aby dowiedzieć się, jak to zrobić, przeczytaj artykuł Interpretowanie szumu.
Strategia B: dwa płytkie drzewa (dwie podstawowe struktury o grubości)
W strategii B używasz 2 przybliżonych struktur kluczy, z których każda zawiera podzbiór potrzebne wymiary:
![Struktura klucza 1 i struktura klucza 2.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/key-structure-1-key-stru-f5313e8766cd6.png?authuser=9&hl=pl)
Dzielimy każdą z tych struktur kluczowych na 2 typy, aby obsługiwać 2 celów pomiarowych.
- Typ celu pomiaru = 0, który określasz jako zakup count.
- Typ celu pomiaru = 1, który określasz jako zakup .
Otrzymujemy 4 główne typy:
- Typ klucza I-0: struktura klucza I, liczba zakupów.
- Typ klucza I-1: struktura klucza I, wartość zakupu.
- Typ klucza II-0: struktura klucza II, liczba zakupów.
- Typ klucza II-1: struktura klucza II, wartość zakupu.
Raporty podsumowania wyglądają tak:
![Strategia raportu podsumowującego B.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/summary-report-strategy-b-a402cebbf58ca.png?authuser=9&hl=pl)
Strategia B to „dwa płytkie drzewa”, strategia:
- Wartości podsumowania w raportach podsumowujących są mapowane na jeden z dwóch małych zbiorów wymiarów.
- Te wartości podsumowania możesz podsumować przy każdym z wymiarów w – to oznacza, że nie są one tak szczegółowe jak opcja A, bo jest mniej wymiarów, które można uwzględnić.
W przypadku strategii B należy odpowiedzieć na pytania w taki sposób:
Pytanie | Odpowiedź |
---|---|
Które kategorie produktów są najcenniejsze w każdym regionie? | Bezpośrednie uzyskiwanie dostępu do podsumowania liczby zakupów oraz wartości, które są w raporty podsumowujące. |
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? | Bezpośrednie uzyskiwanie dostępu do podsumowania liczby zakupów oraz wartości, które są w raporty podsumowujące. |
Decyzja: strategia A
Strategia A jest prostsza, wszystkie dane mają tę samą strukturę klucza, oznacza, że musisz utrzymywać tylko jedną strukturę kluczową.
W przypadku strategii A musisz jednak zsumować wartości podsumowania otrzymane w raportów podsumowujących, które zawierają odpowiedzi na niektóre z Twoich pytań. Każda z tych wartości podsumowania jest głośne. Podsumowując te dane, sumowanie szumu.
Inaczej jest w przypadku strategii B, w której wartości podsumowania są podawane w podsumowaniu. raporty zawierają już potrzebne informacje. Oznacza to, że strategia B prawdopodobnie doprowadzą do mniejszego wpływu szumu niż strategia A.
Jak wybrać odpowiednią strategię? Dotychczasowi reklamodawcy lub w kampaniach, można polegać na danych historycznych, aby określić, czy konwersje są bardziej odpowiednie dla strategii A lub B. Jednak w przypadku nowych reklamodawców lub kampanii, możesz:
- Aby zbierać dane z całego miesiąca, użyj szczegółowych kluczy (strategia A). Wydłużasz czas zbierania danych, dlatego wartości podsumowania będzie wyższy, a szum będzie stosunkowo niższy.
- Ocenić z odpowiednią dokładnością tygodniową liczbę konwersji wartości zakupu.
W tym przykładzie załóżmy, że tygodniowa liczba zakupów i wartość zakupów są na tyle wysokie, że strategia A doprowadziła do osiągnięcia odsetka szumu, który Twoim zdaniem w Twoim przypadku użycia.
Ponieważ strategia A jest prostsza i prowadzi do negatywnego wpływu szumu na zdolność do podejmowania decyzji, należy wybrać strategię A.
Wybierz algorytm szyfrowania
Decydujesz się na podejście oparte na haszach. aby wygenerować klucze. Aby to zrobić, musisz wybrać algorytm haszujący, wspierają takie podejście.
Załóżmy, że masz wybrany SHA-256. Możesz też użyć prostszego, bezpiecznego algorytmu, np. MD5.
W przeglądarce: ustawianie kluczy i wartości
Po wybraniu struktury klucza i algorytmu szyfrowania gotowy do rejestrowania kluczy i wartości, gdy użytkownicy klikają lub wyświetlają reklamy, konwersji.
Następny jest przegląd nagłówków, które skonfigurujesz, aby rejestrować klucze i wartości w przeglądarka:
![Zarejestruj klucze i wartości dla widoku lub kliknięcia.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-59763f86a1f19.png?authuser=9&hl=pl)
![Zarejestruj klucze i wartości na potrzeby konwersji.](https://developers-dot-devsite-v2-prod.appspot.com/static/privacy-sandbox/assets/images/register-keys-values-a-155f081dc7bca.png?authuser=9&hl=pl)
Ustaw kluczowe elementy po stronie źródła
Gdy użytkownik kliknie lub zobaczy reklamę, ustaw klucze agregacji w sekcji
Nagłówek Attribution-Reporting-Register-Aggregatable-Source
.
Na tym etapie dla każdego klawisza możesz ustawić tylko jego część lub
kluczowy element znany podczas wyświetlania reklam.
Wygenerujmy kluczowe elementy:
Fragment kodu po stronie źródła dla identyfikatora klucza... | Ciąg znaków zawierający wartości wymiarów, które chcesz ustawić | Skrót szesnastkowy tego ciągu przycięty do pierwszych 64 bitów (64/4) = 16 znaków1) | Skrót szesnastkowy z dołączonymi zerami w celu uproszczenia XOR-ing. To jest klucz po stronie źródła. |
---|---|---|---|
key_purchaseCount |
COUNT, CampaignID=12, GeoID=7 |
0x3cf867903fbb73ec | 0x3cf867903fbb73ec0000000000000000 |
key_purchaseValue |
VALUE, CampaignID=12, GeoID=7 |
0x245265f432f16e73 | 0x245265f432f16e730000000000000000 |
Ustalmy teraz najważniejsze elementy:
// 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"
}
])
);
Pamiętaj, że identyfikatory kluczy nie pojawią się w raportach końcowych. Tylko w użyciu podczas ustawiania kluczy w przeglądarce, tak aby klucz po stronie źródła i po stronie aktywatora fragmenty można mapować ze sobą i łączyć w pełny klucz.
Opcjonalnie: raporty na poziomie zdarzenia
Jeśli musisz używać raportów na poziomie zdarzenia razem z raportami agregowanymi, upewnij się, że w przypadku danego źródła dane na poziomie zdarzenia (identyfikator zdarzenia źródłowego i dane reguły) oraz klucz agregacji można dopasować.
Możesz używać obu tych raportów, jeśli np. planujesz korzystać z raportów na poziomie zdarzenia, aby wygenerować modele określające, które typy reklam generują zwykle największą liczbę zakupów.
Użytkownik dokonuje konwersji
Gdy użytkownik dokonuje konwersji, do serwera technologii reklamowych jest zazwyczaj wysyłane żądanie piksela. Po otrzymaniu prośby:
- Ustaw fragmenty klucza po stronie konwersji (po stronie reguły), aby uzupełnić klucz.
Te kluczowe elementy ustawisz w nagłówku
Attribution-Reporting-Register-Aggregatable-Trigger-Data
- Ustaw agregowaną wartość dla tej konwersji w nagłówku
Attribution-Reporting-Register-Aggregatable-Values
Ustaw fragmenty klucza po stronie aktywatora, aby uzupełnić klucz
Wygenerujmy kluczowe elementy:
Fragment klucza po stronie aktywatora dla identyfikatora klucza... | Ciąg znaków zawierający wartości wymiarów, które chcesz ustawić | Skrót szesnastkowy tego ciągu przycięty do pierwszych 64 bitów (64/4) = 16 znaków1) | Skrót szesnastkowy z dołączonymi zerami, aby uprościć wykonywanie operacji XOR. To jest klucz po stronie źródła. |
---|---|---|---|
key_purchaseCount |
ProductCategory=25 |
0x1c7ce88c4904bbe2 | 0x0000000000000000f9e491fe37e55a0c |
key_purchaseValue |
(ta sama) | (ta sama) | (ta sama) |
Ustalmy teraz najważniejsze elementy:
// 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"]
},
])
);
Zwróć uwagę, jak dodajesz ten sam klucz do kilku kluczy, podając
w source_keys
– fragment klucza zostanie dodany do obu kluczy.
Ustaw wartości agregujące
Zanim ustawisz wartości agregujące, przeskaluj je w górę, zredukować szum.
Załóżmy, że jeden zakup produktu typu 25 został dokonany za 52 zł.
Tych wartości nie można ustawić bezpośrednio jako wartości agregujących:
key_purchaseCount
: 1 konwersjakey_purchaseValue
: 52 USD
Zamiast tego, zanim zarejestrujesz te agregujące wartości, musisz wykonać skala w celu zminimalizowania szumu.
Masz dwa cele, na które możesz wydać swój budżet, więc możesz podjąć decyzję o podzieleniu budżetu darowizn na 2 części.
W tym przypadku każdy cel jest przydzielony maksymalnie CONTRIBUTION_BUDGET/2
(65 536/2 = 32 768).
Załóżmy, że maksymalna wartość zakupu dla pojedynczego użytkownika jest określona na podstawie liczby zakupów historii wszystkich użytkowników witryny wynosi 1500 USD. Mogą wystąpić odchylenia od normy, np. bardzo niewielu użytkowników, którzy wydali więcej, niż ta suma, ale możesz zdecydować się te odchylenia od normy.
Współczynnik skalowania wartości zakupu powinien wynosić:
((CONTRIBUTION_BUDGET
/2) / 1500) = 32 768/1500 = 21,8 ≈ 22
Współczynnik skalowania liczby zakupów wynosi 32 768/1 = 32 768, ponieważ użytkownik zdecydował się śledzić maksymalnie jeden zakup na kliknięcie lub wyświetlenie reklamy (zdarzenie źródłowe).
Możesz teraz ustawić następujące wartości:
key_purchaseCount
: 1 × 32 768 = 32 768key_purchaseValue
: 52 × 22 = 1144
W praktyce należy ustawić je w ten sposób, używając dedykowanego nagłówka
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,
})
);
Raport agregacyjny jest generowany
Przeglądarka dopasowuje konwersję do poprzedniego wyświetlenia lub kliknięcia i generuje raport agregowany, który zawiera zaszyfrowany ładunek obok raportu metadanych.
Oto przykładowe dane, które można znaleźć w ładunku raport zagregowany, o ile był czytelny w formie tekstu nieszyfrowanego:
[
{
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]
},
]
W jednej tabeli zbiorczej zobaczysz 2 osobne treści raport.
Prośba o raport podsumowujący
- Raporty agregowane zbiorczo. Postępuj zgodnie ze wskazówkami na stronie Grupowanie wsadowe.
- Wygeneruj klucze, których dane chcesz wyświetlić. Aby na przykład zobaczyć podsumowanie
dane dotyczące produktów
COUNT
(łączna liczba zakupów) iVALUE
(łączna wartość zakupów) dla identyfikatora kampanii 12 × identyfikator geograficzny 7 × Kategoria produktu 25:- Wygeneruj klucz po stronie źródła, tak jak podczas ustawiania w przeglądarce.
- Wygeneruj klucz po stronie aktywatora w taki sam sposób jak podczas ustawiania go w przeglądarce.
Dane, których dotyczy żądanie1 | Klucz po stronie źródła | Klucz po stronie aktywatora | Klucz żądania do usługi agregacji2 |
---|---|---|---|
Łączna liczba zakupów (COUNT ) |
0x3cf867903fbb73ec 0000000000000000 |
0x00000000000000 00f9e491fe37e55a0c |
0x3cf867903fbb73 ecf9e491fe37e55a0c |
Łączna wartość zakupu (VALUE ) |
0x245265f432f16e73 0000000000000000 |
0x0000000000000000 f9e491fe37e55a0c |
0x245265f432f16e73 f9e491fe37e55a0c |
- Poproś o dane podsumowujące te klucze do usługi agregacji.
Praca z raportem podsumowującym
Ostatecznie raport podsumowujący może wyglądać tak:
[
{"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
"value": "2558500"},
{"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
"value": "687060"},
…
]
Pierwszy zasobnik to klucz COUNT
w formacie binarnym. Drugi zasobnik to klucz VALUE
jako wartość binarną.
Pamiętaj, że chociaż klucze są heterogeniczne (COUNT
i VALUE
), są zawarte w nich
w tym samym raporcie.
Skalowanie wartości w dół
- 2 558 500 oznacza liczbę zakupów tego klucza, skalowaną w górę obliczony wcześniej współczynnik skalowania. Współczynnik skalowania dla liczba zakupów wyniosła 32 768. Podziel 2 558 500 przez wkład w cel budżet: 2 558 500/32 768 = 156,15 zakupów.
- 687 060 → 687 060/22 = łączna wartość zakupu w wysokości 31 230 USD.
W rezultacie raporty podsumowujące zawierają następujące informacje:
- W okresie raportowania kampania nr 12 bieg w Europie doprowadził do około 156 zakupów (± szum) dla kategorii produktów nr 25.
- W okresie raportowania kampania nr 12 bieg w Europie przyniósł 31 230 USD zakupów (± hałas) dla kategorii produktów nr 25.