Klucze agregacji na potrzeby raportów atrybucji

Co to są klucze agregacji, jak się ich używa w interfejsie Attribution Reporting API i jak można przekształcić cele w klucze.

Jako firma z branży technologii reklamowych prowadzisz kampanie w różnych lokalizacjach dla różnych kategorii produktów. Chcesz pomóc reklamodawcom uzyskać odpowiedzi na te pytania:

  1. Ile zakupów w ramach każdej kategorii produktów wygenerowały poszczególne kampanie w każdym regionie geograficznym?
  2. Ile przychodów w przypadku każdej kategorii produktów wygenerowały poszczególne kampanie w każdym regionie geograficznym?

Chociaż wiele firm zajmujących się technologiami reklamowymi zachęca reklamodawców do konfigurowania różnych typów konwersji, skupienie się na najważniejszych konwersjach, np. zakupach, to dobry sposób na zapewnienie szczegółowych i dokładnych wyników podsumowania w przypadku tych ważnych zdarzeń.

Zanim zaczniesz zbierać dane, zastanów się, na jakie pytania chcesz uzyskać odpowiedzi.

Wymiary, klucze i wartości

Aby odpowiedzieć na te pytania, przyjrzyjmy się wymiarom, kluczom i wartościom.

Wymiary

Aby dowiedzieć się, jak Twoje kampanie generują przychody, musisz śledzić te wymiary:

  • Identyfikator kampanii reklamowej: identyfikator konkretnej kampanii.
  • Identyfikator geografii: region geograficzny, w którym wyświetlono reklamę.
  • Kategoria produktu: typ produktu zdefiniowany przez Ciebie.

Wymiary Identyfikator kampanii i Identyfikator geografii są znane w momencie wyświetlenia reklamy (czas wyświetlania reklamy), natomiast kategoria produktu jest znana ze zdarzenia wywołującego, gdy użytkownik dokona konwersji (czas konwersji).

Wymiary, które chcesz śledzić w tym przykładzie, wyglądają tak:

Identyfikator kampanii, identyfikator regionu geograficznego i kategoria produktu.
Wymiary do śledzenia

Czym są klucze agregacji (segmenty)?

Klucz i zasobek agregacji terminów odnoszą się do tego samego. Klucz agregacji jest używany w interfejsach API przeglądarki do konfigurowania raportów. Termin element jest używany w raportach podlegających agregacji i podsumowujących oraz w interfejsach API usługi agregującej.

Klucz agregacji (w skrócie klucz) to część danych, która reprezentuje wartości śledzonych wymiarów. Dane są później agregowane według każdego klucza agregacji.

Załóżmy na przykład, że śledzisz wymiary Kategoria produktu, Identyfikator geografii i Identyfikator kampanii.

Gdy użytkownik znajdujący się w regionie o identyfikatorze geograficznym 7 zobaczy reklamę z kampanii o identyfikatorze 12, a potem dokona konwersji, kupując produkt z kategorii Produkty 25, możesz ustawić klucz agregacji podobny do tego na poniższym obrazku:

Klucz agregacji konwersji.

Jak się przekonasz, klucz agregacji w praktyce nie wygląda dokładnie tak, jak w tym przykładzie, ale na razie skup się na informacjach zawartych w kluczu.

Czym są wartości agregowalne?

Aby odpowiedzieć na pytania dotyczące podanych przez nas wymiarów, musisz wiedzieć:

  • Liczba zakupów (liczba zakupów). Po zsumowaniu i udostępnieniu w raporcie podsumowującym będzie to łączna liczba zakupów (wartość podsumowująca).
  • Przychody z każdego zakupu (wartość zakupu). Po zsumowaniu i udostępnieniu w raporcie podsumowującym będzie to łączny przychód (wartość podsumowująca).

Każda z tych wartości – liczba zakupów dla jednej konwersji i wartość zakupu dla jednej konwersji – może być wartością agregowaną. Wartości agregowane możesz traktować jako wartości celów pomiarowych.

Pytanie Wartość możliwa do zsumowania = cel pomiaru
Ile zakupów Liczba zakupów
Ile przychodów Wartość zakupu

Gdy użytkownik znajdujący się w regionie o identyfikatorze geograficznym 7 zobaczy reklamę kampanii o identyfikatorze 12, a potem dokona konwersji, kupując produkt z kategorii Produkt 25 za 120 USD (przy założeniu, że walutą jest dolar amerykański), możesz ustawić klucz agregacji i wartości agregacji, które wyglądają tak:

Klucze i wartości agregacji.
Klucz agregacji i wartości podlegające agregacji. Pamiętaj, że wartości, które można zsumować, są wyświetlane pogrubioną czcionką na niebieskim tle.

Wartości, które można agregować, są sumowane według klucza dla wielu użytkowników, aby generować zbiorcze statystyki w postaci wartości podsumowania w raportach podsumowań.

generowanie zbiorczych statystyk,

Wartości podlegające agregacji są sumowane, aby generować zagregowane statystyki na potrzeby celów pomiarowych.

Pamiętaj, że ten diagram pomija odszyfrowywanie i przedstawia uproszczony przykład bez dodanego szumu. W następnej sekcji przedstawimy ten przykład z dodatkiem szumów.

Od kluczy i wartości do raportów

Porozmawiajmy teraz o tym, jak klucze i wartości podlegające agregacji są powiązane z raportami.

Raporty zbiorcze

Gdy użytkownik kliknie lub obejrzy reklamę, a potem dokona konwersji, przekazujesz przeglądarce instrukcję przechowywania pary {klucz agregacji, wartość agregacji}.

W naszym przykładzie, gdy użytkownik kliknie lub obejrzy reklamę, a potem dokona konwersji, przekazujesz przeglądarce instrukcję generowania 2 wartości dodanych (po jednej na każdy cel pomiarowy).

Generuję 2 poprawki.

Później zobaczysz, że raport z danymi agregowalnymi {klucz agregacji, wartość agregowalna} nie wygląda dokładnie tak samo, ale na razie skup się na informacjach zawartych w tym raporcie.

Gdy podasz przeglądarce instrukcje generowania 2 wartości, przeglądarka wygeneruje raport, który można zsumować (jeśli uda się dopasować konwersję do wcześniejszego wyświetlenia lub kliknięcia).

Raport możliwy do zsumowania zawiera:

Wygenerowany raport możliwy do agregacji.

Raporty podlegające agregacji są w formacie JSON i zawierają m.in. pole ładunku, które będzie używane jako dane wejściowe do końcowego raportu podsumowania.

Ładunek zawiera listę skrótów, z których każdy jest parą {klucz agregacji, wartość agregacji}:

  • bucket: klucz agregacji zakodowany jako ciąg bajtów.
  • value: wartość zbiorcza dla tego celu pomiaru, zakodowana jako ciąg bajtów.

Oto przykład:

{
  "data": [
    {
      "bucket": "111001001",
      "value": "11111010000",
    }
  ],
  "operation": "histogram"
}

W praktyce raporty podlegające agregacji są kodowane w taki sposób, że zbiory i wartości wyglądają inaczej niż w poprzednim przykładzie (czyli zbiór może wyglądać jak \u0000\u0000\x80\u0000). Zbiórwartość to oba ciągi bajtów.

Raporty podsumowujące

Raporty z możliwością agregacji są agregowane na podstawie wielu przeglądarek i urządzeń (użytkowników) w następujący sposób:

  • Dostawca technologii reklamowych prosi o raporty podsumowujące dotyczące danego zbioru kluczy i danego zbioru raportów z możliwością agregacji pochodzących z wielu różnych przeglądarek (użytkowników).
  • Raporty z możliwością agregacji są odszyfrowywane przez usługę agregującą.
  • W przypadku każdego klucza wartości z raportów podlegających agregacji są sumowane.
  • Do wartości podsumowania jest dodawany szum.
Raporty z możliwością agregacji oraz wyniki agregacji, odszyfrowywania i hałasu składają się na raport podsumowujący.

W efekcie otrzymujesz raport podsumowujący, który zawiera zestaw par {klucz agregacji, wartość podsumowująca}.

Raport podsumowania zawiera zestaw par klucz-wartość w formie słownika JSON. Każda para zawiera:

  • bucket: klucz agregacji zakodowany jako ciąg bajtów.
  • value: wartość zbiorcza w postaci liczby dziesiętnej dla danego celu pomiarowego, zsumowana z wszystkich dostępnych raportów, które można agregować, z dodatkiem szumu.

Przykład:

[
  {"bucket": "111001001", "value": "2558500"},
  {"bucket": "111101001", "value": "3256211"},
  {...}
]

W praktyce raporty zbiorcze są kodowane w taki sposób, aby zbiory i wartości wyglądały inaczej niż w przykładzie (czyli zbiór może wyglądać jak \u0000\u0000\x80\u0000). Zbiór i wartość to oba ciągi bajtów.

Klucze agregacji w praktyce

Klucze agregacji (segmenty) są definiowane przez firmę zajmującą się technologią reklamową, zwykle w 2 etapach: gdy reklama jest klikana lub wyświetlana oraz gdy użytkownik dokonuje konwersji.

Struktura klucza

Używamy terminu struktura klucza, aby oznaczać zbiór wymiarów zakodowanych w kluczu.

Na przykład kluczowa struktura to Identyfikator kampanii × Identyfikator lokalizacji × Kategoria produktu.

Struktura klucza.

Typy kluczy

Wartości, które można agregować, są sumowane dla danego klucza w przypadku wielu użytkowników i przeglądarek. Zauważyliśmy jednak, że wartości podlegające agregacji mogą służyć do śledzenia różnych celów pomiarowych, np. wartości zakupu lub liczby zakupów. Chcesz mieć pewność, że usługa agregacji zsumuje wartości agregowalne tego samego typu.

Aby to zrobić, w każdym kluczu zakoduj część danych, która informuje, co reprezentuje wartość podsumowania, czyli cel pomiaru, do którego odnosi się ten klucz. Jednym ze sposobów jest utworzenie dodatkowego wymiaru klucza, który będzie reprezentować typ celu pomiarowego.

W przypadku naszego wcześniejszego przykładu ten typ celu pomiarowego może mieć 2 różne wartości:

  • Liczba zakupów to pierwszy typ celu pomiarowego.
  • Wartość zakupu to drugi typ celu pomiarowego.
Cele pomiaru i ich typy.

Jeśli masz n celów pomiarowych, typ celu pomiarowego będzie miał n różnych typów wartości.

Wymiary klucza możesz traktować jak dane. Na przykład „liczba zakupów danego produktu w danej kampanii w danym regionie”.

Rozmiar klucza, rozmiar wymiaru

Maksymalny rozmiar klucza jest definiowany w bitach – liczba zer i jedynek w systemie binarnym, które tworzą pełny klucz. Interfejs API umożliwia użycie klucza o długości 128 bitów.

Ten rozmiar umożliwia tworzenie bardzo szczegółowych kluczy, ale im są one bardziej szczegółowe, tym większa szansa na pojawienie się wartości z większym szumem. Więcej informacji o szumach znajdziesz w artykule Więcej informacji o szumach.

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ąć. W zależności od mocy zbioru każdy wymiar musi być reprezentowany przez określoną liczbę bitów. Za pomocą n bitów można wyrazić 2n różne opcje.

Na przykład wymiar Kraj może mieć moc zbioru 200, ponieważ na świecie jest około 200 krajów. Ile bitów potrzeba do zakodowania tej wymiary?

7 bitów pozwoliłoby zapisać tylko 27 = 128 różnych opcji, co jest mniej niż wymagane 200.

8 bitów pozwoliłoby przechowywać 28 = 256 różnych opcji, czyli więcej niż wymagane 200, więc możesz użyć n=8 bitów do zakodowania tej wymiary.

Kodowanie klucza

Klucze ustawiane w przeglądarce powinny być zakodowane w systemie szesnastkowym. W raportach podsumowujących klucze będą widoczne w postaci binarnej (i nazywane będą zasobnikami).

Ustaw 2 części klucza, aby utworzyć pełny klucz

Załóżmy, że używasz klucza do śledzenia tych wymiarów:

  • Identyfikator kampanii
  • Identyfikator geografii
  • Kategoria produktów

Wymiary Identyfikator kampanii i Identyfikator geografii są znane w momencie wyświetlenia reklamy (czas wyświetlania reklamy), natomiast kategoria produktu będzie znana ze zdarzenia wywołującego, gdy użytkownik dokona konwersji (czas konwersji).

W praktyce oznacza to, że klucz ustawisz w 2 krokach:

  1. Jedną część klucza (identyfikator kampanii × identyfikator geografii) ustawiasz w momencie kliknięcia lub wyświetlenia reklamy.
  2. Drugą część klucza, czyli kategorię produktu, ustawiasz w momencie konwersji.

Te różne części klucza nazywamy elementami klucza.

Klucz jest obliczany jako OR (v) jego elementów.

Elementy klucza OR.

Przykład:

  • Element klucza po stronie źródła = 0x159
  • Element klucza po stronie aktywatora = 0x400
  • Klucz = 0x159 v 0x400 = 0x559

Dopasowywanie elementów klucza

Dwa 64-bitowe klucze zostały rozszerzone do 128 bitów za pomocą starannie umieszczonych 64-bitowych wypełniaczy/przesunięcia (16 zer), a użycie operatora LUB jest równoznaczne z ich sprzężeniem, co jest łatwiejsze do uzasadnienia i weryfikacji:

  • Element klucza po stronie źródła = 0xa7e297e7c8c8d0540000000000000000
  • Element klucza po stronie aktywatora = 0x0000000000000000674fbe308a597271
  • Klucz = 0xa7e297e7c8c8d0540000000000000000 v 0x0000000000000000674fbe308a597271 = 0xa7e297e7c8c8d054674fbe308a597271

Wiele kluczy na kliknięcie lub obejrzenie 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, który śledzi identyfikator Geografia × Identyfikator kampanii.
  • Kolejny klucz, który śledzi typ kreacji × identyfikator kampanii.

Innym przykładem jest strategia B.

Kodowanie wymiarów w klucze

Aby uzyskać raporty podsumowujące, musisz poinformować usługę agregującą, do jakich danych chcesz uzyskać dostęp, prosząc o raporty podsumowujące dotyczące określonego zbioru kluczy agregacji.

Raporty podsumowania zawierają pary {klucz, wartość podsumowania} bez dodatkowych informacji o kluczu. Oznacza to, że:

  • Gdy ustawiasz klucze w momencie, gdy użytkownik wyświetla lub klika reklamę, a potem dokonuje konwersji, musisz niezawodnie ustawiać klucze na podstawie wartości wymiarów, które reprezentują.
  • Podczas definiowania kluczy, których chcesz używać w raportach zbiorczych, musisz niezawodnie generować te same klucze lub uzyskiwać do nich dostęp w bieżącym czasie. Muszą one być takie same jak klucze ustawione podczas wyświetlenia lub kliknięcia reklamy przez użytkownika i doprowadzenia do konwersji. Klucze te muszą być generowane na podstawie wartości wymiarów, dla których chcesz wyświetlać dane zbiorcze.

Kodowanie wymiarów za pomocą map kluczowych struktur

Aby zakodować wymiary w kluczach, możesz utworzyć i utrzymywać mapę struktury kluczy z wyprzedzeniem, gdy definiujesz klucze (przed czasem wyświetlania reklam).

Mapa struktury klucza przedstawia wszystkie wymiary i ich pozycję w kluczu.

W praktyce tworzenie i utrzymywanie map struktury kluczy oznacza, że trzeba zaimplementować i utrzymywać logikę dekodera. Jeśli szukasz metody, która nie wymaga tego, rozważ użycie metody opartej na haśle.

Oto przykład:

Załóżmy, że planujesz śledzić zarówno zakupy, jak i wartości zakupów w przypadku określonych kampanii, regionów geograficznych i produktów.

Kategoria produktu, identyfikator geografii i identyfikator kampanii muszą być wymiarami w kluczach. Ponieważ chcesz śledzić 2 różne cele pomiarowe – liczbę i wartość zakupów – musisz dodać do klucza 1 wymiar, który będzie rejestrować typ klucza. Dzięki temu możesz określić, co tak naprawdę reprezentuje wartość podlegająca agregacji po otrzymaniu par {key, aggregatable value} w raportach zbiorczych.

W przypadku tych celów pomiarowych klucz ma te wymiary:

  • Kategoria produktów
  • Typ celu pomiaru
  • Identyfikator geografii
  • Identyfikator kampanii

Przyjrzyjmy się teraz poszczególnym wymiarom. Załóżmy, że w Twoim przypadku należy śledzić te dane:

  • 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 potrzebna do zakodowania poszczególnych wymiarów w kluczu:

  • Kategoria produktu: 5 bitów (25 = 32 > 29).
  • Typ celu pomiaru: 1 bit. Celem pomiaru jest liczba lub wartość zakupu, co oznacza 2 różne możliwości, więc do przechowywania wystarczy 1 bit.
  • Identyfikator regionu: 3 bity (23 = 8). Musisz też zdefiniować mapę wymiaru dla identyfikatora geograficznego, aby wiedzieć, który region geograficzny reprezentuje dana wartość binarna. 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ą miałyby 13 bitów (5 + 1 + 3 + 4).

W tym przykładzie mapa struktury kluczy wyglądałaby tak:

Mapa struktury klucza.

Kolejność wymiarów w kluczu zależy od Ciebie.

Aby zilustrować, jak wymiary tworzą strukturę klucza, użyjemy reprezentacji binarnej. W tym celu identyfikator kampanii (pierwsze bity) będzie znajdować się po prawej stronie, a kategoria produktu (ostatnie bity) – po lewej stronie.

W każdym wymiarze najistotniejszy bit (mający największą wartość liczbową) znajduje się z największym prawdopodobieństwem po lewej stronie. Najmniej znaczący bit – ten, który przechowuje najmniejszą wartość liczbową – znajduje się najdalej na prawo.

Zobaczmy, jak za pomocą mapy struktury klucza można odkodować klucz.

Weźmy losowy klucz 0b1100100111100 i załóżmy, że wiesz, że ten klucz jest zgodny z mapą struktury klucza na poprzedniej ilustracji.

Zgodnie z mapą struktury klucza ten klucz zostałby odkodowany w ten sposób:

`11001 0 011 1100`

Klucz 0b1100100111100 oznacza liczbę zakupów w kategorii Produkty 25 w ramach kampanii o identyfikatorze 12 uruchomionej w Europie.

Kodowanie wymiarów za pomocą funkcji szyfrowania

Zamiast mapy struktury kluczy możesz użyć funkcji szyfrowania, aby dynamicznie generować klucze w sposób spójny i niezawodny.

Działa to w ten sposób:

  1. Wybierz algorytm szyfrowania.
  2. W momencie wyświetlania reklamy wygeneruj ciąg znaków zawierający wszystkie rozmiary, które chcesz śledzić, oraz ich wartości. Aby wygenerować część klucza po stronie źródła, zaszyfruj ten ciąg znaków i rozważ dodanie 64-bitowego sufiksu zer, aby dostosować go do części klucza po stronie reguły i ułatwić sobie tworzenie reguł OR.
    • Element klucza po stronie źródła
      = <64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
    • Pamiętaj, że w przypadku mapy struktury kluczy COUNT koduje to samo co measurementGoalType=0. COUNT jest nieco prostszy i bardziej jednoznaczny.
  3. W momencie konwersji wygeneruj ciąg znaków zawierający wszystkie wymiary, które chcesz śledzić, oraz ich wartości. Aby wygenerować część klucza po stronie reguły, zaszyfruj ten ciąg znaków i dodaj 64-bitowy prefiks z zerami:
    • Element klucza po stronie aktywatora = <64-bit 00000000…><64-bit hex hash("productCategory=25")>
  4. Aby wygenerować klucz, przeglądarka łączy te elementy klucza OR.
    • 128-bitowy klucz agregacji
      = <64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
  5. Gdy później będziesz gotowy/a poprosić o raport podsumowujący dla tego klucza, wygeneruj go na bieżąco:
    • Na podstawie wymiarów, które Cię interesują, wygeneruj fragment klucza po stronie źródła i po stronie reguły, tak jak to miało miejsce wcześniej.
      • Element klucza po stronie źródła
        = <64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
      • Element klucza po stronie aktywatora
        = <64-bit 00000000…><64-bit hex hash("productCategory=25")>
      • Element klucza po stronie aktywatora = toHex(hash("productCategory=25"))
    • Podobnie jak przeglądarka, OR te elementy klucza, aby wygenerować ten sam klucz, który został wygenerowany wcześniej przez przeglądarkę.
      • 128-bitowy klucz agregacji
        = <64-bit source-side key piece hash><64-bit source-side key piece hash>

Oto kilka praktycznych wskazówek dotyczących korzystania z tego podejścia opartego na haszowaniu:

  • Zawsze używaj tej samej kolejności wymiarów. Dzięki temu można niezawodnie wygenerować ponownie hashe. ("COUNT, CampaignID=12, GeoID=7" nie wygeneruje tego samego hasha co "COUNT, GeoID=7, CampaignID=12"). Jednym z prostych sposobów na osiągnięcie tego celu jest posortowanie wymiarów według alfabetu. W przykładzie będziemy robić to samo, z tą różnicą, że zawsze ustawimy COUNT lub VALUE jako pierwszy element w wymiarze. Zrobimy to ze względu na czytelność, ponieważ COUNT lub VALUE kodują informacje, które są nieco inne pod względem koncepcyjnym niż inne wymiary.
  • Śledź zestaw wymiarów, których używasz w kluczach. Nie chcesz generować kluczy na podstawie zestawu wymiarów, których nigdy nie używasz.
  • Kolizje haszy występują rzadko, jeśli używana jest odpowiednia funkcja haszu, ale sprawdzenie wcześniej użytych haszy (które powinny być przechowywane, aby interpretować wyniki z usługi agregacji) może zapobiec wprowadzaniu nowych kluczy, które kolidują ze starszymi kluczami.

W przykładzie konwersji na kliknięcie lub obejrzenie dowiesz się, jak używać kluczy opartych na haśle.

Wartości nadające się do agregacji w praktyce

Gdy użytkownik dokona konwersji, firma zajmująca się technologiami reklamowymi ustawia wartości agregowalne.

Aby chronić prywatność użytkowników, w przypadku każdego z nich obowiązuje limit. Wśród wszystkich wartości możliwych do zsumowania powiązanych z pojedynczym źródłem (kliknięcie lub wyświetlenie reklamy) żadna wartość nie może być wyższa niż określony limit udziału.

Ten limit nazywamy CONTRIBUTION_BUDGET. W artykule ten limit jest nazywany budżetem L1, ale jest taki sam jak CONTRIBUTION_BUDGET.

Szczegółowe informacje o budżecie na wkład znajdziesz w artykule Budżet na wkład w raportach zbiorczych.

Przykład: 1 konwersja na kliknięcie lub wyświetlenie

Załóżmy, że chcesz uzyskać odpowiedź na te pytania:

  • Które kategorie produktów są najbardziej wartościowe w poszczególnych regionach?
  • Które strategie kampanii są najskuteczniejsze w poszczególnych regionach?

Załóżmy też, że w Twoim przypadku potrzebne są statystyki tygodniowe.

Musisz też śledzić te kwestie:

  • 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ć

Chociaż wiele firm zajmujących się technologiami reklamowymi zachęca reklamodawców do konfigurowania różnych typów konwersji, skupienie się na najważniejszych konwersjach, np. zakupach, 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 mierzysz, tym mniejszy jest budżet na dane, a w konsekwencji każda wartość może być bardziej niejednorodna. Dlatego musisz dokładnie wybrać, co chcesz mierzyć.

W tym przykładzie skupimy się na konfiguracjach kampanii, które mierzą tylko 1 konwersję na kliknięcie lub wyświetlenie: zakup.

Nadal będziesz mierzyć zarówno liczbę zakupów, jak i ich wartość, a także uzyskasz dostęp do różnych ważnych zbiorczych statystyk, np. łączną wartość zakupów i podział na obszary geograficzne. Dzięki temu szum będzie na rozsądnym poziomie, a Ty będziesz mieć pewność, że Twój budżet na udziały będzie się skalował w prosty sposób.

A co z walutami?

Prowadzenie kampanii w różnych regionach oznacza, że należy wziąć pod uwagę waluty. Możesz:

  • Ustaw walutę jako wymiar w kluczach agregacji.
  • Możesz też określić walutę na podstawie identyfikatora kampanii i przeliczyć wszystkie waluty na walutę odniesienia.

W tym przykładzie zakładamy, że możesz określić walutę na podstawie identyfikatora kampanii. Dzięki temu możesz przeliczyć dowolną wartość zakupu z lokalnej waluty użytkownika na wybraną przez siebie walutę odniesienia. Konwersję możesz też przeprowadzić w locie, gdy użytkownik kupi dany produkt.

Dzięki tej metodzie wszystkie wartości podlegające agregacji są w tej samej walucie odniesienia, dzięki czemu można je zsumować, aby uzyskać łączną wartość zakupu – podsumowaną wartość zakupu.

Przekształcanie celów w klucze

Dzięki celom i danym pomiarowym masz do dyspozycji kilka opcji strategii kluczowej. Skupmy się na 2 z nich:

  • Strategia A: jedna szczegółowa struktura klucza.
  • Strategia B: 2 grube struktury kluczy.

Strategia A: jedno rozbudowane drzewo (jedna szczegółowa struktura kluczy)

W strategii A używasz jednej szczegółowej struktury klucza, która zawiera wszystkie potrzebne wymiary:

jedna szczegółowa struktura klucza,

Wszystkie klucze używają tej struktury.

Aby obsługiwać 2 cele pomiarowe, dzielisz tę strukturę kluczy na 2 typy kluczy.

  • Typ klucza 0: typ celu pomiarowego = 0, który zdefiniujesz jako liczbę zakupów.
  • Klucz typu 1: typ celu pomiaru = 1, który zdefiniujesz jako wartość zakupu.

Raporty podsumowujące wyglądają tak:

Raport zbiorczy strategii A.

Strategię A można nazwać strategią „jednego głębokiego drzewa”:

  • Każda wartość podsumowania w raportach podsumowania jest powiązana ze wszystkimi wymiarami, które śledzisz.
  • Możesz podsumować te wartości podsumowania w przypadku każdego z tych wymiarów, a podsumowania te mogą być tak szczegółowe, jak tylko chcesz.

W przypadku strategii A na pytania odpowiadasz w ten sposób:

Pytanie Odpowiedź
Które kategorie produktów są najbardziej wartościowe w poszczególnych regionach? Suma liczby i wartości zakupów w raportach podsumowujących, obejmująca wszystkie kampanie.
Znajdziesz tu liczbę i wartość zakupów w ramach danego identyfikatora geograficznego × kategorii produktu.
Porównaj wartość zakupów i liczbę różnych kategorii produktów w każdym regionie.
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? Suma liczby i wartości zakupów w raportach zbiorczych we wszystkich kategoriach produktów.
Na tej podstawie możesz określić liczbę i wartość zakupów na podstawie identyfikatora kampanii × identyfikatora geograficznego.
Porównaj wartość zakupu i liczbę dla różnych kampanii w każdym regionie.

W przypadku strategii A możesz też bezpośrednio odpowiedzieć na to trzecie pytanie:

„Ile przychodów z każdego produktu przyniosły mi poszczególne kampanie w każdym regionie geograficznym?”

Mimo że wartości podsumowania będą nieprecyzyjne, możesz określić, kiedy różnice w wartościach zmierzonych w poszczególnych kampaniach nie wynikają wyłącznie z tego rodzaju nieścisłości. Więcej informacji znajdziesz w artykule Znajomość szumów.

Strategia B: 2 płytkie drzewa (2 grube struktury kluczy)

W strategii B używasz 2 grubych struktur kluczy, z których każda zawiera podzbiór wymiarów, którego potrzebujesz:

Struktura klucza 1 i struktura klucza 2.

Każdą z tych struktur kluczy dzielisz na 2 typy kluczy, aby realizować 2 cele pomiarowe.

  • Typ celu pomiaru = 0, który zdefiniujesz jako liczbę zakupów.
  • Typ celu pomiaru = 1, który możesz zdefiniować jako wartość zakupu.

W rezultacie otrzymujesz 4 typy kluczy:

  • 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 podsumowujące wyglądają tak:

Strategia B raportu zbiorczego

Strategię B można nazwać strategią „2 płytkie drzewa”:

  • Wartości podsumowania w raportach podsumowania są mapowane na jeden z 2 mniejszych zbiorów wymiarów.
  • Te wartości możesz podsumować obok każdego z wymiarów w tych zbiorach. Oznacza to, że te podsumowania nie będą tak głębokie jak w opcji A, ponieważ będzie w nich mniej wymiarów.

W przypadku strategii B na pytania odpowiadasz w ten sposób:

Pytanie Odpowiedź
Które kategorie produktów są najbardziej wartościowe w poszczególnych regionach? bezpośredni dostęp do liczby i wartości zakupów podanych w raportach zbiorczych;
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? bezpośredni dostęp do liczby i wartości zakupów podanych w raportach zbiorczych;

Decyzja: strategia A

Strategia A jest prostsza: wszystkie dane mają tę samą strukturę klucza, co oznacza, że musisz utrzymywać tylko jedną strukturę klucza.

Jednak w przypadku strategii A, aby uzyskać odpowiedzi na niektóre pytania, musisz zsumować wartości podsumowania w raportach podsumowania. Każda z tych wartości podsumowania jest nieprecyzyjna. Sumując te dane, sumujesz też szum.

W przypadku strategii B nie jest to konieczne, ponieważ wartości podsumowania podawane w raportach podsumowania zawierają już potrzebne informacje. Oznacza to, że strategia B będzie prawdopodobnie mniej podatna na szumy niż strategia A.

Jak określić, której strategii użyć? W przypadku dotychczasowych reklamodawców lub kampanii możesz polegać na danych historycznych, aby określić, czy większa liczba konwersji jest bardziej odpowiednia dla strategii A czy B. W przypadku nowych reklamodawców lub kampanii możesz jednak:

  • Zbieraj dane z całego miesiąca za pomocą kluczy szczegółowych (strategia A). Ponieważ wydłużasz czas zbierania danych, wartości podsumowania będą wyższe, a szum będzie stosunkowo mniejszy.
  • Określ z rozsądną dokładnością tygodniową liczbę konwersji i wartość zakupu.

W tym przykładzie przyjmijmy, że tygodniowy wynik i wartość zakupu są na tyle wysokie, że strategia A spowoduje, że odsetek szumu będzie akceptowalny w Twoim przypadku.

Ponieważ strategia A jest prostsza i powoduje zakłócenia, które nie wpływają na Twoją zdolność do podejmowania decyzji, decydujesz się na nią.

Wybieranie algorytmu haszowania

Postanawiasz zastosować metodę o partycji haszowanej do generowania kluczy. Aby to zrobić, musisz wybrać algorytm szyfrowania, który obsługuje to podejście.

Załóżmy, że wybrano SHA-256. Możesz też użyć prostszego, mniej bezpiecznego algorytmu, takiego jak MD5.

W przeglądarce: ustaw klucze i wartości

Po wybraniu struktury kluczy i algorytmu szyfrowania możesz już rejestrować klucze i wartości, gdy użytkownicy klikają lub wyświetlają reklamy, a potem dokonują konwersji.

Poniżej znajdziesz omówienie nagłówków, które musisz ustawić, aby zarejestrować klucze i wartości w przeglądarce:

Rejestrowanie kluczy i wartości w przypadku wyświetlenia lub kliknięcia.
Rejestrowanie kluczy i wartości konwersji.

Konfigurowanie elementów kluczowych po stronie źródła

Gdy użytkownik kliknie lub wyświetli reklamę, ustaw w nagłówku Attribution-Reporting-Register-Aggregatable-Source klucze agregacji. Na tym etapie możesz ustawić tylko część klucza lub element klucza, który jest znany w momencie wyświetlania reklamy.

Wygenerujmy najważniejsze elementy:

Element klucza po stronie źródła dla identyfikatora klucza… Ciąg zawierający wartości wymiarów, które chcesz ustawić Hasz tego ciągu w formacie szesnastkowym, przycięty do pierwszych 64 bitów (64/4 = 16 znaków1) Hasz szesnastkowy z dołączonymi zerami, aby uprościć operacje OR. Jest to element klucza po stronie źródła.
key_purchaseCount COUNT, CampaignID=12, GeoID=7 0x3cf867903fbb73ec 0x3cf867903fbb73ec0000000000000000
key_purchaseValue VALUE, CampaignID=12, GeoID=7 0x245265f432f16e73 0x245265f432f16e730000000000000000
1 Każda cyfra szesnastkowa reprezentuje 4 bity (cyfry binarne).

Skonfigurujmy 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 będą widoczne w raportach końcowych. Są one używane tylko podczas konfigurowania kluczy w przeglądarce, aby można było mapować elementy klucza po stronie źródła i po stronie wyzwalacza oraz łączyć je w pełny klucz.

Opcjonalnie: raporty na poziomie zdarzenia

Jeśli raportów na poziomie zdarzenia i raportów zbiorczych chcesz używać jednocześnie, sprawdź, czy w przypadku danego źródła można dopasować dane na poziomie zdarzenia (identyfikator źródłowego zdarzenia i dane reguły) oraz klucz agregacji.

Możesz używać obu raportów, jeśli np. planujesz używać raportów na poziomie zdarzenia do uruchamiania modeli, które określają, które typy reklam zwykle prowadzą do największej liczby zakupów.

Użytkownik dokonuje konwersji

Gdy użytkownik dokona konwersji, żądanie pikselu jest zwykle wysyłane do serwera firmy zewnętrznej obsługującej reklamy. Po otrzymaniu tej prośby:

  • Aby utworzyć klucz, skonfiguruj elementy klucza po stronie konwersji (po stronie wyzwalacza). Te kluczowe elementy ustawisz w nagłówku Attribution-Reporting-Register-Aggregatable-Trigger-Data.
  • Ustaw wartość agregacyjną dla tej konwersji za pomocą nagłówka.Attribution-Reporting-Register-Aggregatable-Values

Ustaw elementy klucza po stronie wyzwalacza, aby utworzyć klucz

Wygenerujmy najważniejsze elementy:

Element klucza po stronie aktywatora dla identyfikatora klucza… Ciąg zawierający wartości wymiarów, które chcesz ustawić Hasz tego ciągu w formacie szesnastkowym, przycięty do pierwszych 64 bitów (64/4 = 16 znaków1) Hasz szesnastkowy z dołączonymi zerami, aby uprościć operacje OR. Jest to klucz po stronie źródła.
key_purchaseCount ProductCategory=25 0x1c7ce88c4904bbe2 0x0000000000000000f9e491fe37e55a0c
key_purchaseValue (to samo) (to samo) (to samo)
1 Każda cyfra szesnastkowa reprezentuje 4 bity (cyfry binarne).

Skonfigurujmy 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ę, że dodając ten sam element klucza do kilku kluczy, podajesz kilka identyfikatorów kluczy w sekcji source_keys. Element klucza zostanie dodany do obu kluczy.

Ustawianie wartości możliwych do zsumowania

Zanim ustawisz wartości podlegające agregacji, musisz je przeskalować, aby zmniejszyć szum.

Załóżmy, że dokonano jednego zakupu produktu typu 25 za 52 PLN.

Nie ustawiasz ich bezpośrednio jako wartości podlegających agregacji:

  • key_purchaseCount: 1 konwersja
  • key_purchaseValue: 52 USD

Zanim zarejestrujesz te wartości podlegające agregacji, musisz je przekształcić, aby zminimalizować szum.

Masz 2 cele, na które możesz wydać budżet na udział, więc możesz zdecydować się na jego podział na 2 części.

W tym przypadku każdemu celowi przypisuje się maksymalnie CONTRIBUTION_BUDGET/2(=65 536/2=32 768).

Załóżmy, że maksymalna wartość zakupu pojedynczego użytkownika na podstawie historii zakupów wszystkich użytkowników witryny wynosi 1500 USD. Mogą się pojawić wartości odstające, np. bardzo niewielu użytkowników, którzy wydali więcej niż ta suma, ale możesz zdecydować się na zignorowanie tych wartości.

Współczynnik skalowania wartości zakupu powinien wynosić:

((CONTRIBUTION_BUDGET/2) / 1,500) = 32,768/1,500 = 21.8 ≈ 22

Współczynnik skalowania liczby zakupów to 32 768/1 = 32 768, ponieważ zdecydowałeś(-aś) śledzić co najwyżej 1 zakup na kliknięcie lub obejrzenie reklamy (zmienna source_event).

Możesz teraz ustawić te wartości:

  • key_purchaseCount: 1 × 32 768 = 32 768
  • key_purchaseValue: 52 × 22 = 1144

W praktyce ustawienia te należy ustawić w ten sposób, korzystając z 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,
  })
);

Generowanie raportu umożliwiającego agregację

Przeglądarka dopasowuje konwersję do poprzedniego wyświetlenia lub kliknięcia i generuje raport możliwy do zsumowania, który zawiera zaszyfrowane dane obok metadanych raportu.

Oto przykład danych, które można znaleźć w ładunku raportu podlegającego agregacji, gdyby był on czytelny w postaci zwykłego tekstu:

[
  {
    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]
  },
]

Tutaj możesz zobaczyć 2 oddzielne dane w jednym agregatywnym raporcie.

Prośba o raport podsumowujący

  • Raporty zbiorcze. Postępuj zgodnie z poradami podanymi w artykule Praca zbiorcza.
  • Wygeneruj klucze, których dane chcesz zobaczyć. Aby na przykład wyświetlić dane zbiorcze COUNT (łączna liczba zakupów) i VALUE (łączna wartość zakupów) dla kampanii o identyfikatorze 12 × lokalizacja o identyfikatorze 7 × kategoria produktów 25:
Dane, których chcesz zażądać1 Element klucza po stronie źródła Element klucza po stronie wyzwalacza Klucz do wysyłania żądań 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
1 Dane, których chcesz zażądać (dla identyfikatora kampanii 12 × identyfikator obszaru geograficznego 7 × kategoria produktu 25). 2Klucz do wysyłania do usługi agregacji = część klucza po stronie źródła LUB część klucza po stronie wyzwalacza.
  • Poproś usługę agregującą o dane zbiorcze dotyczące tych kluczy.

Obsługa raportu z podsumowaniem

Ostatecznie otrzymasz raport podsumowujący, który może wyglądać tak:

[
  {"bucket": "00111100111110000110011110010000001111111011101101110011111011001111100111100100100100011111111000110111111001010101101000001100",
    "value": "2558500"},
  {"bucket": "00100100010100100110010111110100001100101111000101101110011100111111100111100100100100011111111000110111111001010101101000001100",
    "value": "687060"},
  
]

Pierwszy zbiór to klucz COUNT w postaci binarnej. Drugi zasobnik to klucz VALUE w postaci binarnej. Pamiętaj, że chociaż klucze są niejednorodne (COUNT w porównaniu z VALUE), znajdują się w tym samym raporcie.

zmniejszenie wartości,

  • Wartość 2 558 500 odnosi się do liczby zakupów dla tego klucza, powiększonej o wcześniej obliczony współczynnik skalowania. Współczynnik skalowania dla liczby zakupów wynosił 32 768. Podziel 2558 500 zł przez budżet udziału w celu: 2558 500 zł/32 768 = 156,15 zakupów.
  • 687 060 → 687 060/22 = 31 230 PLN łączna wartość zakupu.

Dzięki temu raporty podsumowujące zawierają te statystyki:

- 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.