Klucze agregacji na potrzeby raportów atrybucji

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:

  1. Ile zakupów z poszczególnych kategorii produktów wygenerowały poszczególne kampanie w poszczególnych regionach geograficznych?
  2. 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.
Wymiary do śledzenia

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 tym obrazie:

Klucz agregacji dotyczący konwersji.

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.
Klucz agregacji i wartości agregujące. Uwaga: wartości agregujące są pogrubione na niebieskim tle.

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.

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.

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:

Powstały w ten sposób raport do zagregowania.

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 tego celu pomiarowego, zakodowana w postaci ciągu bajtów.

Oto przykład:

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

W praktyce raporty agregowane są kodowane w taki sposób, że zasobniki i wartości wyglądają inaczej niż w poprzednim przykładzie (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.

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 zasobniki i wartości wyglądają inaczej niż w przykładzie (tzn. zasobnik może wyglądać tak, jak \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 przebiegają one w 2 etapach: gdy użytkownik kliknie lub obejrzy reklamę i dokona 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.

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.

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:

  1. Jedna część klucza – identyfikator kampanii × identyfikator geograficzny – ustawia się w momencie kliknięcia lub wyświetlenia.
  2. 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.

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 2 różne możliwości i dlatego wystarczy jeden bit, aby ją zapisać.
  • 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 Region
    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.

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:

  1. Wybierz algorytm szyfrowania.
  2. 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, aby wyrównać go z fragmentem klucza po stronie aktywatora i ułatwić analizę XOR.
    • 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 co measurementGoalType=0 w metodzie mapy struktury klucza. COUNT jest nieco luźniejszy i bardziej bezpośredni.
  3. W momencie konwersji wygeneruj ciąg znaków zawierający wszystkie wymiary, które chcesz śledzić, oraz ich wartości. 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")>
  4. 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>
  5. 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"))
    • Podobnie jak w przypadku przeglądarki, wykonaj XOR na te kluczowe fragmenty, 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>

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. Parametr "COUNT, CampaignID=12, GeoID=7" nie generuje takiego samego hasza jak funkcja "COUNT, GeoID=7, CampaignID=12". Prostym sposobem, aby to osiągnąć, jest sortowanie wymiarów alfanumerycznie. To właśnie zrobimy w przykładzie. Wyjątkiem jest sytuacja, w której jako pierwszy element zawsze będzie w wymiarze COUNT lub VALUE. Warto to zrobić, aby zwiększyć czytelność, ponieważ wartości COUNT lub VALUE 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, czyli sumę wartości zakupu.

Przekształć cele na klucze

W przypadku celów i danych pomiarowych masz różne opcje tworzenia kluczowej strategii. 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 używana jest jedna szczegółowa struktura klucza, która obejmuje wszystkie potrzebne Ci wymiary:

1 szczegółowa struktura klucza

Wszystkie Twoje klucze korzystają z tej struktury.

Została ona podzielona na 2 rodzaje kluczy, aby obsługiwać 2 cele pomiarowe.

  • Typ klucza 0: typ celu pomiarowego = 0, który decydujesz się zdefiniować jako liczbę 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

Strategię A można traktować jako „jedno głębokie drzewo”:

  • Każda wartość podsumowania w raportach podsumowujących jest powiązana ze wszystkimi śledzonymi wymiarami.
  • Możesz podsumować te wartości z każdym z tych wymiarów, aby podsumować ich szczegółowość, w jakiej masz określoną liczbę 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 wartości podane w raportach podsumowujących we wszystkich kampaniach.
Wyświetla się liczba i wartość zakupów na identyfikator geograficzny × kategoria produktu.
W przypadku każdego regionu porównaj wartość zakupu i liczbę różnych kategorii produktów.
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? Zsumuj liczbę zakupów i wartości podane w raportach podsumowujących we wszystkich kategoriach produktów.
Wyświetli się liczba zakupów i wartość na identyfikator kampanii × identyfikator geograficzny.
Porównaj wartość zakupu i liczbę zakupów w różnych kampaniach w każdym regionie.

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

„Jakie przychody z poszczególnych produktów uzyskały każda z moich kampanii w poszczególnych regionach geograficznych?”

Mimo że wartości podsumowania będą niedokładne, możesz określić, kiedy różnice w wartościach zmierzonych w poszczególnych kampaniach nie wynikają z samego szumu. 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 kluczowych, z których każda zawiera podzbiór potrzebnych wymiarów:

Struktura klucza 1 i struktura klucza 2.

Dzielisz każdą z tych struktur kluczowych na 2 kluczowe typy, aby obsługiwać 2 cele pomiarowe.

  • Typ celu pomiarowego = 0, który decydujesz się zdefiniować jako liczbę zakupów.
  • Typ celu pomiarowego = 1, który określasz jako wartość zakupu.

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.

Strategię B można wyobrazić jako „dwa płytkie drzewa”:

  • Wartości podsumowania w raportach podsumowujących są mapowane na jeden z dwóch małych zestawów wymiarów.
  • Te wartości podsumowania możesz podsumowywać przy każdym z wymiarów w tych zestawach. Oznacza to, że te podsumowania nie są tak szczegółowe jak w przypadku opcji A, ponieważ ma mniej wymiarów.

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? Ma bezpośredni dostęp do podsumowania liczby zakupów i ich wartości, które znajdują się w raportach podsumowujących.
Które strategie kampanii są najskuteczniejsze w poszczególnych regionach? Ma bezpośredni dostęp do podsumowania liczby zakupów i ich wartości, 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ę.

W przypadku strategii A musisz jednak zsumować wartości podsumowania otrzymane w raportach z podsumowaniem, aby uzyskać odpowiedź na niektóre swoje pytania. Każda z tych wartości jest niekompletna. Sumując te dane, sumujesz szum.

Inaczej jest w przypadku strategii B, w której wartości podsumowania widoczne w raportach podsumowujących już zapewniają Ci potrzebne informacje. Oznacza to, że strategia B prawdopodobnie doprowadzi do mniejszego wpływu szumu niż strategia A.

Jak wybrać odpowiednią strategię? W przypadku dotychczasowych reklamodawców lub kampanii możesz polegać na danych historycznych, aby ustalić, czy liczba konwersji jest bardziej odpowiednia dla strategii A czy strategii B. Jednak w przypadku nowych reklamodawców lub kampanii możesz zdecydować się na:

  • Aby zbierać dane z całego miesiąca, użyj szczegółowych kluczy (strategia A). Wydłużasz czas zbierania danych, więc wartości podsumowania będą wyższe, a szum – względnie mniejszy.
  • Oceń z odpowiednią dokładnością tygodniową liczbę konwersji i wartość zakupów.

W tym przykładzie załóżmy, że tygodniowa liczba i wartość zakupów są na tyle wysokie, że strategia A doprowadziła do wygenerowania odsetka szumu, który uznajesz za akceptowalny w Twoim przypadku użycia.

Strategia A jest prostsza i prowadzi do negatywnego wpływu szumu, który nie wpływa na Twoją zdolność do podejmowania decyzji, więc decydujesz się na strategię A.

Wybierz algorytm szyfrowania

Wybierasz metodę generowania kluczy opartą na haszach. Aby to zrobić, musisz wybrać algorytm szyfrowania, który obsługuje tę metodę.

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

W przeglądarce: ustawianie kluczy i wartości

Po wybraniu struktury klucza i algorytmu szyfrowania możesz rejestrować klucze i wartości, gdy użytkownicy klikają lub wyświetlają reklamy, a później dokonują konwersji.

Następnym krokiem jest przegląd nagłówków, które ustawisz, aby rejestrować klucze i wartości w przeglądarce:

Zarejestruj klucze i wartości dla widoku lub kliknięcia.
Zarejestruj klucze i wartości na potrzeby konwersji.

Ustaw kluczowe elementy po stronie źródła

Gdy użytkownik kliknie lub zobaczy reklamę, ustaw klucze agregacji w nagłówku Attribution-Reporting-Register-Aggregatable-Source. Na tym etapie dla każdego klucza możesz ustawić tylko tę część klucza, czyli fragment klucza, który jest znany w momencie 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ć Hasz tego ciągu znaków w postaci szesnastkowej przycięty do pierwszych 64 bitów (64/4 = 16 znaków1) Hasz szesnastkowy z dodanymi zerami, aby uprościć wykonywanie operacji XOR. To jest fragment 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).

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. Są one używane tylko podczas ustawiania kluczy w przeglądarce, dzięki czemu klucze po stronie źródła i po stronie aktywatora mogą być mapowane ze sobą i łączone 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 mogą być dopasowane.

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.
  • W nagłówku Attribution-Reporting-Register-Aggregatable-Values ustaw możliwą do agregacji wartość dla tej konwersji.

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ć Hasz tego ciągu znaków w postaci szesnastkowej przycięty do pierwszych 64 bitów (64/4 = 16 znaków1) Skrót szesnastkowy z dołączonymi zerami, aby simplify wykonywanie operacji XOR. To jest fragment klucza po stronie źródła.
key_purchaseCount ProductCategory=25 0x1c7ce88c4904bbe2 0x0000000000000000f9e491fe37e55a0c
key_purchaseValue (ta sama) (ta sama) (ta sama)
1 Każda cyfra szesnastkowa reprezentuje 4 bity (cyfry binarne).

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ę, że dodajesz ten sam klucz do kilku kluczy, podając kilka identyfikatorów w source_keys – część klucza zostanie dodana do obu kluczy.

Ustaw wartości agregujące

Zanim ustawisz wartości agregujące, musisz je przeskalować w górę, aby zmniejszyć 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 konwersja
  • key_purchaseValue: 52 USD

Zamiast tego, zanim zarejestrujesz te agregujące wartości, musisz je przeskalować w celu zminimalizowania szumu.

Masz 2 cele, na które możesz wydać swój budżet, więc możesz podzielić budżet darowizny na 2 części.

W tym przypadku każdy cel jest przydzielony maksymalnie do CONTRIBUTION_BUDGET/2(=65 536/2=32 768).

Załóżmy, że maksymalna wartość zakupu pojedynczego użytkownika (na podstawie historii zakupów u wszystkich użytkowników witryny) wynosi 1500 zł. Mogą wystąpić odchylenia, np. bardzo niewielu użytkowników, którzy wydali więcej niż ta suma, ale możesz zignorować te odchylenia.

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

((CONTRIBUTION_BUDGET/2) / 1500) = 32 768/1500 = 21,8 ≈ 22

Współczynnik skalowania liczby zakupów to 32 768/1 = 32 768, ponieważ zdecydujesz 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 768
  • key_purchaseValue: 52 × 22 = 1144

W praktyce ustaw 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 widoku lub kliknięcia i generuje raport zbiorczy, który zawiera zaszyfrowany ładunek obok metadanych raportu.

Poniżej znajduje się przykład danych, które można znaleźć w ładunku raportu agregowanego, o ile zostałyby czytelne w postaci 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 jednym (zbiorczym) raporcie znajdują się 2 osobne treści.

Prośba o raport podsumowujący

  • Raporty agregowane zbiorczo. Postępuj zgodnie ze wskazówkami podanymi w artykule Grupowanie.
  • Wygeneruj klucze, których dane chcesz wyświetlić. Aby np. zobaczyć podsumowanie danych COUNT (łączna liczba zakupów) i VALUE (łączna wartość zakupów) w przypadku identyfikatora kampanii 12 × identyfikatora geograficznego 7 × kategorii produktów 25:
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
1 Dane, o które prosisz (identyfikator kampanii 12 × identyfikator geograficzny 7 × kategoria produktów 25). 2Klucz żądania do usługi agregacji = fragment klucza po stronie źródła XOR Aktywator po stronie aktywatora.
  • 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 w pliku binarnym. Pamiętaj, że chociaż klucze są heterogeniczne (COUNT i VALUE), są zawarte w tym samym raporcie.

Skalowanie wartości w dół

  • 2 558 500 oznacza liczbę zakupów tego klucza przeskalowaną w górę według wcześniej obliczonego współczynnika skalowania. Współczynnik skalowania liczby zakupów wyniósł 32 768. Podziel 2 558 500 przez wkład w cel: 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 w Europie przyniosła około 156 zakupów (± szum) w kategorii produktów nr 25.
  • W okresie raportowania kampania nr 12 w Europie wygenerowała 31 230 USD zakupów (± szum) w kategorii produktów nr 25.