Ogólnie dopasowywanie plików cookie polega na tym, że reklamodawca lub dostawca wiąże pliki cookie ze swojej domeny z plikami cookie z domeny Google. Dopasowywanie tych plików cookie pozwala łączyć należące do Ciebie dane własne z danymi reklam Google (śledzonymi przez Display & Video 360 i Campaign Managera 360) z uwzględnieniem tego samego użytkownika. Możesz dzięki temu korzystać z danych z systemu CRM i lepiej poznawać zachowania użytkowników. Łącząc te dane za pomocą złączeń zapewniających zachowanie prywatności, możesz:
- kierować reklamy na odbiorców na podstawie konkretnych produktów porzuconych w koszyku, o ile użytkownicy ci weszli wcześniej w interakcję z Twoimi reklamami i Twoją domeną;
- sprawdzać, które reklamy prowadzą do dłuższych sesji w Twojej domenie;
- analizować historię zakupów złączoną z danymi uzyskanymi podczas prowadzenia kampanii.
Ograniczenia oraz prywatność użytkowników
Mimo że dopasowywanie plików cookie jest bardzo skuteczne, wiąże się ono z pewnymi ograniczeniami:
- Złączanie tabel
*_match
i innych niż*_match
jest zabronione. - Wymaga wykonywania działań przez Twoich inżynierów i inżynierów Google.
- Prawdopodobnie nie uda Ci się dopasować wszystkich danych reklam Google. Współczynniki dopasowania są warunkowane przez wiele czynników i zmieniają się w zależności od przypadku użycia i konfiguracji po stronie klienta. Współczynniki dopasowania są często niższe od oczekiwanych przez użytkowników. Pliki cookie użytkowników można dopasowywać tylko wtedy, gdy weszli oni w interakcję z Twoją domeną i reklamami.
- Google rozpocznie wypełnianie tabel odpowiedników, gdy tylko zostaną one skonfigurowane. W zależności od tego, jak często użytkownicy odwiedzają Twoją witrynę i otrzymują piksel dopasowujący, może minąć nawet kilka miesięcy, zanim tabele odpowiedników będą zawierać pełne, stabilne dane o Twoich użytkownikach.
- Nie będziesz mieć możliwości powiązania poszczególnych użytkowników z kilkoma urządzeniami, chyba że dysponujesz jakąś metodą łączenia użytkowników korzystających z różnych urządzeń.
- Nie możesz dopasowywać pojedynczego użytkownika za pomocą kilku plików cookie ani dopasowywać go, gdy usunie pliki cookie.
- Zadania wykonywane w tabelach odpowiedników podlegają takim samym wymaganiom dotyczącym agregacji jak pozostałe zadania w Centrum danych reklam. Niski współczynnik dopasowania w połączeniu z małą częstotliwością wizyt w Twojej domenie mogą spowodować problemy z uzyskaniem danych. Wynika to z połączonego wpływu współczynników dopasowania i wymagań dotyczących agregacji1.
- Zgodnie z zasadami Google dotyczącymi prywatności użytkownika:
- nie możesz dopasowywać danych użytkownika dotyczących zalogowania się i wylogowania;
- nie możesz dopasowywać danych do użytkowników, którzy zrezygnowali z personalizacji reklam;
- w przypadku zdarzeń w iOS możesz dopasowywać tylko dane pochodzące z aplikacji na iOS w wersji 14.5 lub nowszej i na dodatek uzyskane wyłącznie od użytkowników, którzy udzielili zgody w ramach platformy App Tracking Transparency firmy Apple.
Potwierdzenie samodzielnie uzyskanej zgody użytkowników
Aby móc używać danych własnych w Centrum danych reklam, musisz potwierdzić, że posiadasz prawidłową zgodę użytkowników z Europejskiego Obszaru Gospodarczego na udostępnianie danych Google, uzyskaną w sposób określony przez politykę w zakresie zgody użytkownika z UE oraz zasady Centrum danych reklam. To wymaganie obowiązuje w przypadku każdego konta Centrum danych reklam, a swoje potwierdzenie uzyskania takiej zgody musisz aktualizować za każdym razem, gdy przesyłasz nowe dane własne. Potwierdzenie to może przekazać w imieniu całego konta dowolny jego użytkownik.
Pamiętaj, że te same reguły dotyczące zapytań kierowanych do usług Google, które obowiązują w przypadku zapytań analitycznych, mają zastosowanie do zapytań związanych z dopasowywaniem plików cookie. Na przykład, gdy tworzysz tabelę odpowiedników, nie możesz wykonywać zapytań dotyczących użytkowników z Europejskiego Obszaru Gospodarczego i obejmujących różne usługi.
Aby dowiedzieć się, jak potwierdzić w Centrum danych reklam uzyskanie zgody użytkowników, zapoznaj się z artykułem Wymagania dotyczące uzyskiwania zgody użytkowników w Europejskim Obszarze Gospodarczym.
Jak działa dopasowywanie plików cookie
Aby umożliwić Google wypełnianie tabel odpowiedników, musisz umieścić tag dopasowywania na każdej stronie w domenie, w której chcesz dopasowywać dane reklamowe. Umiejscowienie piksela zależy od celów reklamowych. Może Ci na przykład zależeć na dopasowywaniu wszystkich użytkowników odwiedzających Twoją domenę (wymaga umieszczenia pikseli na niemal każdej stronie) lub tylko użytkowników, którzy dokonali konwersji (wymaga umieszczenia pikseli na stronie konwersji). Ogólnie na im większej liczbie stron masz piksele, tym lepsze uzyskasz współczynniki dopasowania.
Tag dopasowywania to przezroczysty piksel 1 x 1, który zawiera identyfikator profilu dopasowywania plików cookie oraz zakodowany identyfikator użytkownika lub pliku cookie:
<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />
To właśnie tag dopasowywania inicjuje komunikację między Twoją witryną a usługami Google do dopasowywania plików cookie.
Opis szczegółowy
- Użytkownik odwiedza stronę z tagiem dopasowywania.
- Tag dopasowywania inicjuje serię przekierowań do usług dopasowywania Google Marketing Platform, Google Ads i YouTube. Żądania zawierają identyfikator użytkownika lub plik cookie z Twojej witryny oraz plik cookie Google w każdej przestrzeni identyfikatorów usługi dopasowywania.
- Do przeglądarki zwracany jest przezroczysty piksel 1 x 1, aby potwierdzić, że żądanie zostało zrealizowane.
Cały proces pokazano na tym diagramie:
Konfiguracja
Proces konfiguracji dopasowywania plików cookie w Centrum danych reklam przebiega w ten sposób:
- Kontaktujesz się z opiekunem klienta, aby poinformować go, że interesuje Cię dopasowywanie plików cookie. Omawia on z Tobą cele, które chcesz zrealizować, i podaje Ci więcej informacji na temat wdrażania w Twojej domenie piksela śledzącego.
- Specjaliści Centrum danych reklam umawiają się z Tobą na kolejną rozmowę, aby przedyskutować wymagania techniczne i przypadki użycia.
- Podczas gdy wdrażasz piksel śledzący i punkt końcowy błędów, Google tworzy tabele odpowiedników.
Po wykonaniu tych czynności nie musisz niczego robić. Google będzie codziennie wypełniać Twoje tabele odpowiedników2. Musisz odczekać odpowiednio dużo czasu, aby tabela zawierała ilość danych zapewniającą sensowne dopasowania i spełnianie wymagań dotyczących agregacji. Długość tego czasu zależy od częstotliwości, z jaką użytkownicy odwiedzają Twoją stronę. Witryna, do której większość użytkowników zagląda każdego dnia, szybciej uzyska niezbędną ilość danych niż witryna, którą użytkownicy z reguły odwiedzają tylko raz w miesiącu. Gdy spadnie tempo przyrostu nowej liczby dopasowań netto, tabele odpowiedników będą zawierać bardziej kompleksowe dane.
Wykonywanie zapytań dotyczących tabel odpowiedników
Gdy tabele odpowiedników zawierają wystarczającą ilość danych, aby spełnić wymagania mechanizmów kontroli prywatności, możesz wykonywać zapytania dotyczące tych tabel.
Każdej tabeli w schemacie Centrum danych reklam, która zawiera pole user_id
, towarzyszy tabela *_match
. Na przykład w przypadku tabeli adh.google_ads_impressions
Centrum danych reklam generuje też tabelę odpowiedników o nazwie adh.google_ads_impressions_match
, która zawiera Twoje identyfikatory użytkowników. W przypadku tabel odseparowanych zgodnie z zasadami tworzone są osobne tabele odpowiedników. Na przykład w przypadku tabeli adh.google_ads_impressions_policy_isolated_youtube
Centrum danych reklam generuje też tabelę odpowiedników o nazwie adh.google_ads_impressions_policy_isolated_youtube_match
, która zawiera Twoje identyfikatory użytkowników.
Te tabele obejmują podzbiór użytkowników dostępnych w pierwotnych tabelach dopasowanych do identyfikatorów user_id
. Jeśli na przykład pierwotna tabela zawiera dane dotyczące użytkowników A i B, ale dopasowane zostanie tylko konto użytkownika A, użytkownik B nie znajdzie się w tabeli odpowiedników.
Tabele odpowiedników zawierają dodatkową kolumnę o nazwie external_cookie
, która przechowuje plik cookie w postaci bajtów.
Podczas tworzenia zapytań należy zwracać uwagę na typ pola. Operatory porównania SQL wymagają, aby porównywane literały były tego samego typu. Ostrzeżenie: w zależności od sposobu, w jaki w tabeli danych własnych przechowywane są dane (user_id
), przed przystąpieniem do dopasowywania danych może być konieczne zakodowanie wartości w tabeli.
Aby zapewnić prawidłowe dopasowanie, musisz przeformatować klucz łączenia na bajty:
JOIN ON
adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)
Poza tym porównania ciągów znaków w języku SQL uwzględniają wielkość liter, więc dokładne porównywanie ciągów znaków może wymagać ich zakodowania po obu stronach porównania.
Kodowanie identyfikatorów użytkowników
Kodowanie identyfikatorów użytkowników po stronie klienta
Aby bezpiecznie przekazywać w adresie URL różne formaty identyfikatorów, przed wysłaniem wszystkie identyfikatory muszą zostać zakodowane w odpowiedniej odmianie formatu Base64. Identyfikator zdekodowany z formatu Base64 przeznaczonego do bezpiecznego przesyłania w adresie URL zostanie udostępniony w Centrum danych reklam w polu external_cookie
. Aby więc uzyskać pierwotny identyfikator, musisz cofnąć wszystkie przekształcenia zastosowane przed jego zakodowaniem.
Jeśli identyfikator ma zawsze co najwyżej 24 znaki (lub 24 bajty), możesz umieścić w pikselu identyfikator zakodowany w formacie Base64 przeznaczonym do bezpiecznego przesyłania w adresie URL, tak jak w przykładzie 1. Jeśli identyfikator ma więcej niż 24 znaki (lub bajty), musisz go przekształcić na postać o długości maksymalnie 24 bajtów. W niektórych przypadkach (np. identyfikator UUID w przykładzie 2) konieczne jest przekształcenie do postaci bajtów. W innych sytuacjach musisz wysyłać do Google podzbiór (czyli hasz) identyfikatora. Pamiętaj, że zawsze musisz się upewnić, że możesz utworzyć kod złączający w SQL, który w taki sam sposób przekształci identyfikator z tabeli danych własnych.
Przykład 1
Wartość identyfikatora użytkownika zawsze mieści się w limicie 24 bajtów. Centrum danych reklam zaleca wysyłanie identyfikatora użytkownika po prostu bezpośrednio do tej usługi (po zakodowaniu go w formacie Base64 przeznaczonym do bezpiecznego przesyłania w adresie URL).
var userId = 'abcdef123456789';
// Encode the string (or number) in normal base64.
var userIdBase64 = btoa(userId);
// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_')
.replace(/=+$/, '');
// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
+ userIdBase64;
document.body.appendChild(imgElement);
Przykład 2
Jako identyfikator użytkownika przypisujesz wartość uniwersalnego unikalnego identyfikatora (UUID), np. 123e4567-e89b-12d3-a456-426655440000
.
Centrum danych reklam zaleca, aby podczas dopasowywania wykonywać takie przekształcenia:
- Identyfikator UUID jest sformatowany jako ciąg o długości 36 znaków.
- Stosuj dekodowanie identyfikatora UUID do postaci w kodzie szesnastkowym.
- Identyfikator UUID jest sformatowany pod postacią bajtów.
- Stosuj kodowanie bajtów w formacie Base64 przeznaczonym do bezpiecznego przesyłania w adresie URL.
- Identyfikator UUID jest sformatowany pod postacią ciągu znaków.
Można go stosować za pomocą tego kodu:
JavaScript
var userId = '123e4567-e89b-12d3-a456-426655440000';
// A helper function for converting a hex string to a byte array.
function strToBytes(str) {
for (var bytes = [], i = 0; i < str.length; i += 2) {
bytes.push(parseInt(str.substr(i, 2), 16));
}
return bytes;
}
// Remove the formatting dashes from the UUID.
userId = userId.replace(/-/g, '');
// Encode the hex string as a byte array.
var userIdBytes = strToBytes(userId);
// Encode the byte array in normal base64.
var userIdBase64 = btoa(String.fromCharCode(...new Uint8Array(userIdBytes)));
// Ensure that the uploaded user IDs use web-safe Base64 encoding.
userIdBase64 = userIdBase64.replace(/\+/g, '-').replace(/\//g, '_').replace(
/=+$/, '');
// After encoding the UUID correctly, you can create the request tag and
// insert it into the DOM.
var imgElement = Document.createElement('img');
imgElement.src =
'https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm='
+ userIdBase64;
document.body.appendChild(imgElement);
Python
import base64
user_id = '123e4567-e89b-12d3-a456-426655440000'
user_id_as_bytes = bytes.fromhex(user_id.replace('-', ''))
base64.urlsafe_b64encode(user_id_as_bytes)
Jeśli występuje dopasowanie do identyfikatora użytkownika Google, pole external_cookie
zawiera Twój identyfikator pod postacią wartości w bajtach. Aby odtworzyć pierwotny identyfikator, musisz zastosować to przekształcenie:
- Pole
external_cookie
jest sformatowane pod postacią bajtów. - Stosuj kodowanie szesnastkowe pola
external_cookie
. - Pole
external_cookie
jest sformatowane pod postacią ciągu znaków.
Kodowanie identyfikatorów użytkowników w Centrum danych reklam
Jeśli przechowujesz ciąg identyfikatora UUID w polu w danych własnych, musisz go przekształcić do postaci bajtów (jak w przykładzie powyżej), aby móc złączyć dane.
Z przykładu poniżej dowiesz się, jak zakodować identyfikator UUID i złączyć go za pomocą pola zewnętrznego pliku cookie:
JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))
Pamiętaj, że nie można rzutować liczb całkowitych na bajty. Jeśli identyfikator użytkownika jest liczbą całkowitą (jak w przykładzie 1 powyżej), musisz go najpierw rzutować na ciąg znaków:
JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)
Pamiętaj, że kodowanie wymagane do dopasowywania danych zależy od sposobu, w jaki były one przechowywane i zakodowane przed przesłaniem do Centrum danych reklam.
Więcej informacji o funkcjach w języku SQL BigQuery związanych z ciągami znaków
Przykładowe zapytanie
Ten przykład złącza dane własne z tabelą google_ads_impressions_match
, a potem w drugim zapytaniu złącza te wyniki z tabelą adh_google_ads_impressions
.
SELECT
imp.campaign_id as campaign_id,
sum(my_data.recent_orders) as orders,
average(my_data.lifetime_value) as ltv
FROM
adh.google_ads_impressions_match as imp
LEFT JOIN
my_data ON imp.external_cookie = my_data.company_guest_id_bytes
GROUP BY
campaign_id
Po zapisaniu wyników poprzedniego zapytania jako tabeli previous_results
możesz ją złączyć z tabelą google_ads_impressions
. Spowoduje to dodanie do Twoich wyników danych o kampaniach z zerową liczbą wyświetleń.
SELECT
campaign_id,
COALESCE(orders, 0) as orders,
COALESCE(ltv, 0) as ltv,
FROM (SELECT DISTINCT campaign_id
FROM adh.google_ads_impressions)
LEFT JOIN previous_results USING (campaign_id)