Klucze agregacji na potrzeby raportów atrybucji

Czym są klucze agregacji, jak są używane w interfejsie Attribution Reporting API i jak możesz przekształcać cele w klucze.

Jako firma z branży technologii reklamowych, która prowadzi kampanie w wielu lokalizacjach w różnych kategoriach produktów, chcesz pomóc reklamodawcom w odpowiedzi na te pytania:

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

Wiele firm z branży technologii reklamowych zachęca reklamodawców do konfigurowania różnych typów konwersji, ale skupienie się na najważniejszych konwersjach, takich jak zakupy, to dobry sposób na sprawdzenie, czy wyniki podsumowujące są szczegółowe i dokładne w przypadku tych ważnych zdarzeń.

Aby to zrobić, musisz zastanowić się, na jakie pytania chcesz odpowiedzieć przed zebraniem danych.

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 (zgodnie z opisem tutaj), musisz śledzić te wymiary:

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

Wymiary Identyfikator kampanii i Identyfikator obszaru geograficznego są znane w momencie wyświetlania reklamy (czas wyświetlania reklamy), a Kategoria produktu jest znana na podstawie zdarzenia wywołującego, gdy użytkownik dokona konwersji (czas konwersji).

Wymiary, które chcesz śledzić w tym przykładzie, są widoczne na tym obrazie:

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

Co to są klucze agregacji (koszyki)?

Terminy klucz agregacji i zasobnik odnoszą się do tego samego. Klucz agregacji jest używany w interfejsach API przeglądarki, które służą do konfigurowania raportów. Termin zasobnik jest używany w raportach podlegających agregacji i raportach 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 geograficzny i Identyfikator kampanii.

Gdy użytkownik z lokalizacji o identyfikatorze geograficznym 7 zobaczy reklamę z kampanii o identyfikatorze 12, a następnie dokona konwersji, kupując produkt z kategorii 25, możesz ustawić klucz agregacji podobny do tego na obrazie poniżej:

Klucz agregacji konwersji.
Klucz agregacji konwersji.

Później zobaczysz, że w praktyce klucz agregacji nie wygląda dokładnie tak, ale na razie skupmy się na informacjach, które zawiera.

Co to są wartości, które można agregować?

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

  • Liczba zakupów. Po zagregowaniu 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 zagregowaniu i udostępnieniu w raporcie podsumowującym będzie to łączny przychód (wartość podsumowania).

Każda z tych wartości – liczba zakupów w przypadku jednej konwersji i wartość zakupu w przypadku jednej konwersji – jest wartością, którą można agregować. Wartości podlegające agregacji to wartości Twoich celów pomiarowych.

Pytanie Wartość podlegająca agregacji = Cel pomiaru
Ile zakupów Liczba zakupów
Ile przychodów Wartość zakupu

Gdy użytkownik znajdujący się w lokalizacji o identyfikatorze 7 zobaczy reklamę o identyfikatorze 12, a później dokona konwersji, kupując produkt z kategorii 25 za 120 PLN (przy założeniu, że Twoją walutą jest PLN), możesz ustawić klucz agregacji i wartości podlegające agregacji w ten sposób:

Klucze i wartości agregacji.
Klucz agregacji i wartości podlegające agregacji. Wartości, które można agregować, są pogrubione na niebieskim tle.

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

Generowanie zbiorczych statystyk.
Generowanie statystyk zbiorczych.

Wartości, które można agregować, są sumowane, aby generować zagregowane statystyki dotyczące celów pomiarowych.

Pamiętaj, że ten diagram pomija odszyfrowywanie i przedstawia uproszczony przykład bez zastosowania szumu. W następnej sekcji przedstawimy ten przykład z szumem.

Od kluczy i wartości do raportów

Omówmy teraz, jak klucze i wartości, które można agregować, są powiązane z raportami.

Raporty, które można agregować

Gdy użytkownik kliknie lub wyświetli reklamę, a później dokona konwersji, przeglądarka otrzyma instrukcję zapisania pary {klucz agregacji, wartość podlegająca agregacji}.

W naszym przykładzie, gdy użytkownik kliknie lub wyświetli reklamę, a potem dokona konwersji, przeglądarka wygeneruje 2 wartości (po jednej na każdy cel pomiaru).

Generowanie 2 poprawek.
Generowanie 2 publikacji.

Później zobaczysz, że raport podlegający agregacji w formacie {klucz agregacji, wartość podlegająca agregacji} nie wygląda dokładnie tak, ale na razie skupmy się na informacjach, które zawiera.

Gdy poprosisz przeglądarkę o wygenerowanie 2 raportów, wygeneruje ona raport z możliwością agregacji (jeśli uda jej się dopasować konwersję do poprzedniego wyświetlenia lub kliknięcia).

Raport z możliwością agregacji zawiera:

Wynikowy raport z możliwością agregacji.
Wynikowy raport, który można agregować.

Raporty z możliwością agregacji są sformatowane w JSON i zawierają m.in. pole ładunku, które będzie używane jako dane wejściowe do końcowego raportu podsumowującego.

Ładunek zawiera listę wkładów, z których każdy jest parą {klucz agregacji, wartość podlegająca agregacji}:

  • bucket: klucz agregacji zakodowany jako ciąg bajtów.
  • value: wartość, którą można agregować, dla tego celu pomiarowego, 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 grupy i wartości wyglądają inaczej niż w poprzednim przykładzie (np. grupa może wyglądać tak: \u0000\u0000\x80\u0000). Zarówno grupa, jak i wartość są ciągami bajtów.

Raporty podsumowujące

Raporty z możliwością agregacji są agregowane w wielu przeglądarkach i na wielu urządzeniach (użytkownikach) w ten sposób:

  • Dostawca technologii reklamowej przesyła żądanie raportów podsumowujących dla danego zestawu kluczy i danego zestawu 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ę do agregacji.
  • W przypadku każdego klucza sumowane są wartości z raportów podlegających agregacji.
  • Do wartości podsumowania dodawany jest szum.
Raporty z możliwością agregacji oraz wyniki agregacji, odszyfrowywania i szumu są zawarte w raporcie podsumowującym.
Raporty, które można agregować, oraz wyniki agregacji, odszyfrowywania i szumu w raporcie zbiorczym.

Wynikiem jest raport podsumowujący, który zawiera zbiór par {klucz agregacji, wartość podsumowania}.

Raport podsumowujący zawiera zbiór par klucz-wartość w formacie słownika JSON. Każda para zawiera:

  • bucket: klucz agregacji zakodowany jako ciąg bajtów.
  • value: wartość podsumowania w formacie dziesiętnym dla danego celu pomiarowego, zsumowana ze wszystkich dostępnych raportów, które można agregować, z dodatkowym poziomem szumu.

Przykład:

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

W praktyce raporty zbiorcze są kodowane w taki sposób, że przedziały i wartości wyglądają inaczej niż w przykładzie (tzn. przedział może wyglądać jak \u0000\u0000\x80\u0000). Zarówno przedział, jak i wartość są ciągami bajtów.

Klucze agregacji w praktyce

Klucze agregacji (segmenty) są definiowane przez firmę technologiczną zajmującą się reklamami, zwykle w 2 etapach: gdy reklama zostanie kliknięta lub wyświetlona oraz gdy użytkownik dokona konwersji.

Struktura klucza

Terminu struktura klucza będziemy używać do określania zbioru wymiarów zakodowanych w kluczu.

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

struktura klucza,
Struktura klucza.

Typy kluczy

Wartości podlegające agregacji są sumowane dla danego klucza w przypadku wielu użytkowników lub przeglądarek. Zauważyliśmy jednak, że wartości podlegające agregacji mogą śledzić różne cele pomiarowe, takie jak wartość zakupu lub liczba zakupów. Chcesz sprawdzić, czy usługa agregacji zsumuje wartości podlegające agregacji tego samego typu.

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

W naszym wcześniejszym przykładzie ten typ celu pomiaru miałby 2 różne możliwe wartości:

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

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

Wymiary klucza można traktować jako dane. Na przykład „liczba zakupów określonego produktu w poszczególnych kampaniach i regionach”.

Rozmiar klucza, rozmiar wymiaru

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

Ten rozmiar umożliwia tworzenie bardzo szczegółowych kluczy, ale bardziej szczegółowe klucze częściej prowadzą do uzyskiwania bardziej zaszumionych wartości. Więcej informacji o szumie znajdziesz w artykule Szum.

Jak wspomnieliśmy wcześniej, wymiary są kodowane w kluczu agregacji. Każdy wymiar ma określoną moc zbioru, czyli liczbę różnych wartości, jakie może przyjmować. 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óżnych opcji.

Na przykład wymiar Kraj może mieć moc zbioru równą 200, ponieważ na świecie jest około 200 krajów. Ile bitów jest potrzebnych do zakodowania tego wymiaru?

7 bitów wystarczyłoby tylko do przechowywania 27 = 128 różnych opcji, czyli mniej niż wymagane 200.

8 bitów może przechowywać 28 = 256 różnych opcji, czyli więcej niż wymagane 200, więc do zakodowania tego wymiaru możesz użyć n=8 bitów.

Kodowanie klucza

Klucze ustawiane w przeglądarce powinny być zakodowane w formacie szesnastkowym. W raportach podsumowujących klucze będą wyświetlane w formacie binarnym (i będą nazywane zasobnikami).

Ustaw 2 kluczowe elementy, aby utworzyć pełny klucz

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

  • Identyfikator kampanii
  • Identyfikator geograficzny
  • Kategoria produktu

Wymiary Identyfikator kampanii i Identyfikator obszaru geograficznego są znane w momencie wyświetlania reklamy (czas wyświetlania reklamy), a kategoria produktu jest znana na podstawie 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 lokalizacji geograficznej – ustawisz w momencie kliknięcia lub wyświetlenia.
  2. Drugą część klucza, czyli kategorię produktu, ustawisz w momencie konwersji.

Te różne części kluczy są nazywane elementami klucza.

Klucz jest obliczany przez wykonanie operacji OR (v) na jego częściach.

łączenie kluczowych elementów za pomocą operatora OR;
Łączenie kluczowych elementów za pomocą operatora OR.

Przykład:

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

Dopasowywanie kluczowych elementów

Dwa 64-bitowe fragmenty klucza rozszerzone do 128 bitów za pomocą starannie umieszczonych 64-bitowych wypełniaczy lub przesunięć (szesnastu zer) połączone operatorem OR są równoważne z ich złączeniem, co jest łatwiejsze do zrozumienia i zweryfikowania:

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

Wiele kluczy na kliknięcie lub wyświetlenie reklamy

W praktyce możesz ustawić wiele kluczy dla każdego zdarzenia źródłowego atrybucji (kliknięcia lub wyświetlenia reklamy). Możesz na przykład ustawić:

  • Klucz, który śledzi identyfikator geograficzny × identyfikator kampanii.
  • Kolejny klucz, który śledzi typ kreacji × identyfikator kampanii.

Inny przykład znajdziesz w sekcji Strategia B.

Kodowanie wymiarów w kluczach

Gdy prosisz o raporty podsumowujące, musisz poinformować usługę agregującą, do jakich danych chcesz mieć dostęp, przesyłając prośbę o raporty podsumowujące dla określonego zestawu kluczy agregacji.

Raporty podsumowujące zawierają surowe pary {klucz, wartość podsumowania} i nie zawierają dodatkowych informacji o kluczu. Oznacza to, że:

  • Podczas ustawiania kluczy, gdy użytkownik wyświetla lub klika reklamę, a następnie dokonuje konwersji, musisz niezawodnie ustawiać klucze na podstawie wartości wymiarów, które reprezentują.
  • Podczas definiowania kluczy, dla których chcesz otrzymywać raporty zbiorcze, musisz niezawodnie generować lub uzyskiwać na bieżąco 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, dla których chcesz wyświetlać zagregowane dane.

Kodowanie wymiarów za pomocą map struktur kluczy

Aby zakodować wymiary w kluczach, możesz wcześniej utworzyć i utrzymywać mapę struktury kluczy, definiując klucze (przed wyświetlaniem reklam).

Mapa struktury klucza przedstawia poszczególne wymiary i ich pozycję w kluczu.

W praktyce tworzenie i utrzymywanie map struktury kluczy oznacza, że musisz wdrożyć i utrzymywać logikę dekodera. Jeśli szukasz metody, która tego nie wymaga, rozważ użycie podejścia opartego na haszowaniu.

Oto przykład:

Załóżmy, że planujesz śledzić zakupy i wartości zakupów w przypadku konkretnych kampanii, regionów geograficznych i produktów.

Kategoria produktu, identyfikator obszaru geograficznego i identyfikator kampanii muszą być wymiarami w kluczach. Dodatkowo, ponieważ chcesz śledzić 2 różne cele pomiarowe – liczbę zakupów i wartość zakupów – musisz dodać do klucza 1 wymiar, który będzie śledzić typ klucza. Dzięki temu możesz określić, co w rzeczywistości reprezentuje wartość podlegająca agregacji po otrzymaniu par {klucz, wartość podlegająca agregacji} w raportach podsumowujących.

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

  • Kategoria produktu
  • Rodzaj celu pomiaru
  • Identyfikator geograficzny
  • Identyfikator kampanii

Załóżmy, że w Twoim przypadku musisz śledzić te wymiary:

  • 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 kluczu:

  • Kategoria produktu: 5 bitów (25 = 32 > 29).
  • Typ celu pomiaru: 1 bit. Celem pomiaru jest liczba lub wartość zakupów, co oznacza 2 różne możliwości. Wystarczy więc 1 bit, aby zapisać tę informację.
  • Identyfikator obszaru geograficznego: 3 bity (23 = 8). Musisz też zdefiniować mapę wymiarów dla identyfikatora geograficznego, aby wiedzieć, jaki region geograficzny reprezentuje każda wartość binarna. Mapa wymiarów dla wymiaru identyfikatora geograficznego 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 Kuchnia karaibska
    111 Oceania

  • Identyfikator kampanii: 4 bity (24 = 16)

Klucze o takiej strukturze miałyby długość 13 bitów (5 + 1 + 3 + 4).

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

Mapa struktury klucza.
Mapa struktury klucza

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

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

W każdym wymiarze najbardziej znaczący bit – ten, który ma największą wartość liczbową – znajduje się po lewej stronie. Najmniej znaczący bit, czyli ten, który ma najmniejszą wartość liczbową, znajduje się po prawej stronie.

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

Załóżmy, że klucz 0b1100100111100 jest przykładowym kluczem, i założymy, że wiesz, że jest on zgodny z mapą struktury klucza z poprzedniej ilustracji.

Zgodnie z mapą struktury klucza ten klucz zostanie zdekodowany jako:

`11001 0 011 1100`

Klucz 0b1100100111100 reprezentuje liczbę zakupów kategorii produktów 25 w przypadku kampanii o identyfikatorze 12 uruchomionej w Europie.

Kodowanie wymiarów za pomocą funkcji skrótu

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

Działa to w ten sposób:

  1. Wybierz algorytm mieszający.
  2. W momencie wyświetlania reklamy 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, oblicz skrót tego ciągu znaków i rozważ dodanie 64-bitowego sufiksu zer, aby dopasować go do klucza po stronie wywołania i ułatwić rozumowanie operacji OR.
    • Klucz po stronie źródła 
      = <64-bit hex hash("COUNT, campaignID=12, geoID=7"))><64-bit 00000000…>
    • Pamiętaj, że w przypadku mapy struktury klucza symbol COUNT oznacza to samo co measurementGoalType=0. COUNT jest nieco bardziej zwięzła i wyraźna.
  3. W momencie konwersji wygeneruj ciąg znaków zawierający wszystkie wymiary, które chcesz śledzić, oraz ich wartości. Aby wygenerować klucz po stronie wyzwalacza, oblicz skrót tego ciągu znaków i dodaj 64-bitowy prefiks zer:
    • Klucz po stronie aktywatora = <64-bit 00000000…><64-bit hex hash("productCategory=25")>
  4. Przeglądarka łączy te części klucza za pomocą operacji OR, aby wygenerować klucz.
    • 128-bitowy klucz agregacji
      =<64-bit hex source-side key piece hash><64-bit hex source-side key piece hash>
  5. Gdy zechcesz poprosić o raport podsumowujący dotyczący tego klucza, wygeneruj go na bieżąco:
    • Na podstawie interesujących Cię wymiarów wygeneruj klucz po stronie źródła i po stronie wywołania, 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")>
      • trigger-side key piece = toHex(hash("productCategory=25"))
    • Podobnie jak przeglądarka, OR te części klucza, 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>

Oto kilka praktycznych wskazówek, jeśli korzystasz z tego podejścia opartego na haszowaniu:

  • Zawsze używaj tej samej kolejności wymiarów. Dzięki temu możesz niezawodnie odtwarzać hasze. ("COUNT, CampaignID=12, GeoID=7" nie wygeneruje tego samego skrótu co "COUNT, GeoID=7, CampaignID=12"). Jednym z prostych sposobów na osiągnięcie tego celu jest posortowanie wymiarów alfanumerycznie. Tak właśnie zrobimy w przykładzie, z tym że zawsze umieścimy COUNT lub VALUE jako pierwszy element w wymiarze. Zrobimy to dla czytelności, ponieważ COUNT lub VALUE koduje informacje, które są nieco inne pod względem koncepcyjnym niż wszystkie inne wymiary.
  • Śledź zestaw wymiarów używanych w kluczach. Chcesz uniknąć generowania kluczy na podstawie zestawu wymiarów, których nigdy nie używasz.
  • Kolizje skrótów są rzadkie, jeśli używana jest odpowiednia funkcja skrótu, ale sprawdzanie pod kątem wcześniej używanych skrótów (które powinny być przechowywane w celu interpretowania wyników z usługi agregacji) może zapobiec wprowadzeniu nowych kluczy, które powodują kolizję ze starszymi kluczami.

Więcej informacji o tym, jak używać kluczy opartych na haszowaniu, znajdziesz w przykładzie jednej konwersji na kliknięcie lub wyświetlenie.

Wartości, które można agregować, w praktyce

Gdy użytkownik dokona konwersji, firma technologii reklamowej ustawi wartości, które można agregować.

Aby chronić prywatność użytkowników, wkład każdego z nich jest ograniczony. W przypadku wszystkich wartości, które można agregować i które są powiązane z jednym źródłem (kliknięciem lub wyświetleniem reklamy), żadna wartość nie może przekraczać określonego limitu udziału.

Będziemy go nazywać CONTRIBUTION_BUDGET. W wyjaśnieniu ten limit jest nazywany budżetem L1, ale jest taki sam jak CONTRIBUTION_BUDGET.

Szczegółowe informacje o budżecie na udział znajdziesz w artykule Budżet na udział w przypadku raportów podsumowujących.

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

Załóżmy, że chcesz znaleźć odpowiedzi 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 użycia potrzebujesz statystyk tygodniowych.

Musisz też śledzić te dane:

  • 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, ale skupienie się na najważniejszych konwersjach, takich jak zakupy, to dobry sposób na sprawdzenie, czy wyniki zbiorcze są szczegółowe i dokładne w przypadku tych ważnych zdarzeń konwersji. Im więcej danych mierzysz, tym mniejszy jest budżet na poszczególne dane, a tym samym tym większe jest prawdopodobieństwo, że każda wartość będzie zawierać szum. Dlatego musisz starannie wybrać, co chcesz mierzyć.

W tym przykładzie skupimy się na konfiguracjach kampanii, które mierzą tylko jedną konwersję po kliknięciu lub wyświetleniu: zakup.

Nadal będziesz mierzyć liczbę i wartość zakupów oraz mieć dostęp do różnych ważnych statystyk zbiorczych, takich jak łączna wartość zakupów i podział geograficzny. Pozwala to skutecznie zarządzać szumem, a jednocześnie potwierdza prostą metodę skalowania budżetu na udział.

Co z walutami?

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

  • Ustaw walutę jako osobny wymiar w kluczach agregacji.
  • Możesz też wywnioskować walutę na podstawie identyfikatora kampanii i przekonwertować wszystkie waluty na waluty odniesienia.

W tym przykładzie założymy, że walutę można wywnioskować z identyfikatora kampanii. Umożliwia to przeliczenie dowolnej wartości zakupu z waluty lokalnej użytkownika na wybraną przez Ciebie walutę odniesienia. Możesz też przeprowadzić konwersję na bieżąco, gdy użytkownik kupi produkt.

Dzięki tej technice wszystkie wartości, które można agregować, są podane w tej samej walucie odniesienia, więc można je zsumować, aby uzyskać łączną zagregowaną wartość zakupu, czyli podsumowaną wartość zakupu.

Przekształcanie celów w klucze

Mając cele i dane pomiarowe, możesz wybrać jedną z kilku opcji strategii kluczowej. Skupmy się na 2 z tych strategii:

  • Strategia A: jedna szczegółowa struktura kluczy.
  • Strategia B: 2 struktury kluczowe o dużej ziarnistości.

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

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

Jedna szczegółowa struktura kluczy
Jedna szczegółowa struktura kluczy

Wszystkie klucze mają taką strukturę.

Tę strukturę kluczy dzielisz na 2 typy kluczy, aby obsługiwać 2 cele pomiarowe.

  • Typ klucza 0: typ celu pomiaru = 0, który określasz jako liczbę zakupów.
  • Typ klucza 1: typ celu pomiaru = 1, który definiujesz jako wartość zakupu.

Raporty podsumowujące wyglądają tak:

Raport zbiorczy strategii A.
Raport podsumowujący strategię A

Strategia A to strategia „jednego poziomu”:

  • Każda wartość podsumowania w raportach podsumowujących jest powiązana ze wszystkimi śledzonymi przez Ciebie wymiarami.
  • Możesz zsumować te wartości podsumowujące wraz z każdym z tych wymiarów, dzięki czemu sumowanie może być tak szczegółowe, jak liczba wymiarów.

W przypadku strategii A odpowiedzi na pytania będą wyglądać tak:

Pytanie Odpowiedź
Które kategorie produktów są najbardziej wartościowe w poszczególnych regionach? Zsumuj liczbę i wartości zakupów w raportach podsumowujących we wszystkich kampaniach.
Dzięki temu uzyskasz liczbę i wartość zakupów w podziale na identyfikator geograficzny × kategorię produktu.
Porównaj wartość zakupu i liczbę różnych kategorii produktów w poszczególnych regionach.
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? Zsumuj liczbę i wartość zakupów w raportach podsumowujących we wszystkich kategoriach produktów.
Dzięki temu uzyskasz liczbę i wartość zakupów według identyfikatora kampanii × identyfikatora geograficznego.
W przypadku każdego regionu porównaj wartość i liczbę zakupów w różnych kampaniach.

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

„Ile przychodów wygenerowały poszczególne kampanie w poszczególnych regionach geograficznych w przypadku każdego produktu?”

Nawet jeśli wartości podsumowujące będą zaszumione, możesz określić, kiedy różnice w wartościach zmierzonych w poszczególnych kampaniach nie wynikają wyłącznie z szumu. Dowiedz się, jak to zrobić, w artykule Rozumienie szumu.

Strategia B: 2 płytkie drzewa (2 struktury kluczy o niskiej szczegółowości)

W strategii B używasz 2 struktur kluczy o dużej ziarnistości, z których każda zawiera podzbiór potrzebnych wymiarów:

Struktura klucza 1 i struktura klucza 2.
Struktura klucza 1 i struktura klucza 2

Każda z tych kluczowych struktur jest podzielona na 2 typy, aby obsługiwać 2 cele pomiarowe.

  • Typ celu pomiaru = 0, który definiujesz jako liczbę zakupów.
  • Typ celu pomiaru = 1, który definiujesz jako wartość zakupu.

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

Strategia B raportu zbiorczego
Strategia B – raport podsumowujący

Strategię B można traktować jako strategię „2 płytkich drzew”:

  • Wartości podsumowania w raportach podsumowujących są mapowane na jeden z 2 małych zestawów wymiarów.
  • Możesz zsumować te wartości podsumowujące wraz z każdym z wymiarów w tych zbiorach. Oznacza to, że te sumy nie są tak szczegółowe jak w przypadku opcji A, ponieważ jest mniej wymiarów, które można zsumować.

W przypadku strategii B odpowiedzi na pytania będą wyglądać tak:

Pytanie Odpowiedź
Które kategorie produktów są najbardziej wartościowe w poszczególnych regionach? bezpośredni dostęp do podsumowanych liczb i wartości zakupów, które znajdują się w raportach podsumowujących;
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? bezpośredni dostęp do podsumowanych liczb i wartości zakupów, które znajdują się w raportach podsumowujących;

Decyzja: strategia A

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

W przypadku strategii A musisz jednak zsumować wartości podsumowania otrzymane w raportach podsumowujących, aby odpowiedzieć na niektóre pytania. Każda z tych wartości podsumowujących jest zaszumiona. Sumując te dane, sumujesz też szum.

Nie dotyczy to strategii B, w której wartości podsumowujące w raportach podsumowujących 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 obecnych reklamodawców lub kampanii możesz polegać na danych historycznych, aby określić, czy liczba konwersji jest bardziej odpowiednia dla strategii A czy strategii B. W przypadku nowych reklamodawców lub kampanii możesz jednak:

  • Zbieraj dane z miesiąca za pomocą szczegółowych kluczy (strategia A). Wydłużasz czas zbierania danych, więc wartości podsumowujące będą wyższe, a szum będzie stosunkowo mniejszy.
  • z rozsądną dokładnością oceniać tygodniową liczbę konwersji i wartość zakupu;

W tym przykładzie załóżmy, że tygodniowa liczba zakupów i wartość zakupu są wystarczająco wysokie, aby strategia A prowadziła do odsetka szumu, który uznajesz za dopuszczalny w swoim przypadku użycia.

Strategia A jest prostsza i ma wpływ na szum, który nie utrudnia podejmowania decyzji, więc wybierasz strategię A.

Wybierz algorytm haszowania

Postanawiasz zastosować podejście oparte na haszowaniu do generowania kluczy. Aby to zrobić, musisz wybrać algorytm haszowania, który będzie obsługiwać to podejście.

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

W przeglądarce: ustawianie kluczy i wartości

Po wybraniu struktury kluczy i algorytmu mieszania możesz rejestrować klucze i wartości, gdy użytkownicy klikają lub wyświetlają reklamy, a następnie 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.
Rejestruj klucze i wartości dla wyświetlenia lub kliknięcia.
Rejestrowanie kluczy i wartości konwersji.
Zarejestruj klucze i wartości konwersji.

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

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

Wygenerujmy kluczowe elementy:

Fragment klucza po stronie źródła dla identyfikatora klucza… Ciąg zawierający wartości wymiarów, które chcesz ustawić. Skrót tego ciągu w formacie szesnastkowym, skrócony do pierwszych 64 bitów (64/4 = 16 znaków1). Szesnastkowy hash z dodatkowymi zerami, aby uprościć operację OR. Jest to klucz 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).

Teraz ustawmy kluczowe 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 kluczowe identyfikatory nie będą widoczne w raportach końcowych. Są one używane tylko podczas ustawiania kluczy w przeglądarce, aby części klucza po stronie źródła i po stronie wywołania mogły być ze sobą mapowane i łączone w pełny klucz.

Opcjonalnie: raporty na poziomie zdarzenia

Jeśli chcesz używać raportów na poziomie zdarzenia razem z raportami zbiorczymi, sprawdź, czy w przypadku danego źródła można dopasować dane na poziomie zdarzenia (identyfikator zdarzenia źródłowego i dane reguły) do klucza agregacji.

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

Użytkownik dokonuje konwersji

Gdy użytkownik dokona konwersji, do serwera technologii reklamowej jest zwykle wysyłane żądanie piksela. Po otrzymaniu tej prośby:

  • Ustaw kluczowe elementy po stronie konwersji (po stronie wywołania), aby utworzyć klucz. Te kluczowe elementy ustawisz za pomocą nagłówkaAttribution-Reporting-Register-Aggregatable-Trigger-Data.
  • Ustaw wartość, którą można agregować w przypadku tej konwersji, używając nagłówkaAttribution-Reporting-Register-Aggregatable-Values.

Ustaw elementy klucza po stronie wyzwalacza, aby go uzupełnić.

Wygenerujmy kluczowe elementy:

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

Teraz ustawmy kluczowe 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 element klucza do kilku kluczy, wymieniając kilka identyfikatorów kluczy w source_keys – element klucza zostanie dodany do obu kluczy.

Ustawianie wartości, które można agregować

Zanim ustawisz wartości podlegające agregacji, musisz je zwiększyć, aby zredukować szum.

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

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

  • key_purchaseCount: 1 konwersja
  • key_purchaseValue: 52 USD

Zamiast tego przed zarejestrowaniem tych wartości, które można agregować, musisz je skalować, aby zminimalizować szum.

Masz 2 cele, na które możesz przeznaczyć budżet na wspieranie, więc możesz podzielić go na 2 części.

W tym przypadku każdy cel ma przypisany maksymalny limit 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 zł. Mogą występować wartości odstające, np. bardzo niewielu użytkowników, którzy wydali więcej niż tę kwotę, ale możesz je zignorować.

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ż chcesz śledzić co najwyżej 1 zakup na kliknięcie lub wyświetlenie reklamy (zdarzenie źródłowe).

Możesz teraz ustawić te wartości:

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

W praktyce ustawisz je w ten sposób, używając specjalnego nagłówkaAttribution-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,
  })
);

Generowany jest raport z możliwością agregacji.

Przeglądarka dopasowuje konwersję do poprzedniego wyświetlenia lub kliknięcia i generuje raport z możliwością agregacji, który zawiera zaszyfrowany ładunek obok metadanych raportu.

Poniżej znajdziesz przykład danych, które można znaleźć w ładunku raportu z możliwością 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]
  },
]

W tym miejscu możesz zobaczyć 2 osobne wpłaty w jednym raporcie zbiorczym.

Prośba o raport podsumowujący

  • Raporty zbiorcze. Postępuj zgodnie z zaleceniami podanymi w sekcji Grupowanie.
  • Wygeneruj klucze, dla których chcesz wyświetlić dane. Aby na przykład wyświetlić dane podsumowujące dotyczące COUNT (łączna liczba zakupów) i VALUE (łączna wartość zakupu) dla identyfikatora kampanii 12 × identyfikatora obszaru geograficznego 7 × kategorii produktu 25:
Dane, o które chcesz poprosić1 Część klucza po stronie źródła Klucz po stronie wyzwalacza Klucz do wysyłania żądań do usługi do agregacji2
Łączna liczba zakupów (COUNT) 0x3cf867903fbb73ec
0000000000000000
0x00000000000000
00f9e491fe37e55a0c
0x3cf867903fbb73
ecf9e491fe37e55a0c
Łączna wartość zakupu (VALUE) 0x245265f432f16e73
0000000000000000
0x0000000000000000
f9e491fe37e55a0c
0x245265f432f16e73
f9e491fe37e55a0c
1 Dane, o które chcesz poprosić (w przypadku identyfikatora kampanii 12 × identyfikatora obszaru geograficznego 7 × kategorii produktu 25). 2 Klucz do żądania do usługi do agregacji = część klucza po stronie źródła LUB część klucza po stronie wywołania.
  • Poproś usługę do agregacji o dane podsumowujące dotyczące tych kluczy.

Obsługa raportu podsumowującego

Ostatecznie otrzymasz raport podsumowujący, który 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 w formacie binarnym. Zwróć uwagę, że chociaż klucze są niejednorodne (COUNT w porównaniu z VALUE), znajdują się w tym samym raporcie.

Skalowanie wartości w dół

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

Dzięki temu raporty podsumowujące dostarczają tych informacji:

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