Párování souborů cookie

Na vysoké úrovni lze párování souborů cookie popsat jako proces, pomocí nějž inzerent nebo prodejce přiřazuje soubory cookie ve své doméně k souborům cookie v doméně Googlu. Díky tomu můžete spojit svá data první strany s daty o reklamách Google (měřenými prostřednictvím služeb Display & Video 360 a Campaign Manager 360) týkajícími se stejného uživatele. Můžete tak využít data ze systému pro řízení vztahů se zákazníky a udělat si lepší obrázek o chování uživatelů. Jestliže tato data sloučíte pomocí spojení dbajících na ochranu soukromí, můžete:

  • cílit na publika podle konkrétních položek opuštěných v nákupním košíku, pokud dotyční uživatelé provedli interakci s vašimi reklamami a doménami,
  • zjistit, které reklamy vedly k delším návštěvám vaší domény,
  • analyzovat historii nákupů spojenou s daty získanými po kampani.

Omezení a ochrana soukromí koncových uživatelů

Ačkoli je párování souborů cookie velmi užitečnou metodou, má svá omezení.

  • Spojení mezi tabulkami *_match a ne-*_match jsou zakázána.
  • Jsou potřeba vývojářské zásahy z vaší strany i ze strany Googlu.
  • Je nepravděpodobné, že se podaří spárovat všechna vaše data z reklam Google. Míry shody závisejí na mnoha faktorech a liší se podle případů použití a nastavení na straně klienta. Míry shody bývají nižší, než uživatelé očekávají. Párování souborů cookie lze provádět pouze pro uživatele, kteří provedli interakci s vaší doménou a vašimi reklamami.
  • Google začne vaše identifikační tabulky plnit po jejich nastavení. Bude záležet na tom, jak často lidé váš web navštěvují a jak často se jim zobrazuje váš párovací pixel. Může tedy trvat několik měsíců, než budou identifikační tabulky obsahovat holistická a stabilní data o uživatelích.
  • Jednotlivé uživatele nebudete schopni přiřadit k více různým zařízením, pokud nebudete mít k dispozici nějaký způsob, jak uživatele na různých zařízeních propojit.
  • Párování nefunguje u uživatelů, kteří používají několik souborů cookie. To se může stát například tehdy, když uživatel své soubory cookie vymaže.
  • Na úlohy spuštěné na identifikačních tabulkách se vztahují stejné požadavky na agregaci jako na ostatní úlohy ve službě Ads Data Hub. Jestliže máte nízkou míru shody a lidé vaši doménu nenavštěvují příliš často, může pro vás být náročné získat data. Je to způsobeno kombinací vlivu míry shody a požadavků na agregaci.1
  • V souladu se zásadami Google o ochraně soukromí koncových uživatelů:
    • Nesmíte párovat data o určitém uživateli z doby, kdy byl přihlášen, s daty z doby, kdy byl odhlášen.
    • Nemůžete párovat data týkající se uživatelů, kteří se odhlásili od personalizace reklam.
  • U událostí z iOS lze v případě aplikací běžících na systému iOS 14.5 nebo novějším párovat pouze data od uživatelů, kteří k tomu dali svolení podle aplikačního rámce pro měření aplikaci společnosti Apple.

Abyste měli jistotu, že data první strany budete moct ve službě Ads Data Hub využívat, musíte potvrdit, že jste od koncových uživatelů z EHP získali řádný souhlas se sdílením dat se společností Google v souladu se zásadami pro souhlas uživatele z EUzásadami služby Ads Data Hub. Tento požadavek se vztahuje na každý účet služby Ads Data Hub a musí být aktualizován při každém nahrání nových dat první strany. Potvrzení může za celý účet provést libovolný uživatel.

Pravidla služeb Google pro dotazy, která platí pro analytické dotazy, se vztahují i na dotazy párování souborů cookie. Když například vytváříte identifikační tabulku, nemůžete pro uživatele z EHP spouštět dotazy napříč službami.

Informace o potvrzení souhlasu ve službě Ads Data Hub najdete v požadavcích na souhlas pro Evropský hospodářský prostor.

Aby mohla společnost Google vyplňovat vaše identifikační tabulky, musíte na každé stránce ve své doméně, s jejímiž návštěvami chcete data o reklamách párovat, zobrazovat párovací značku. Umístění tohoto pixelu závisí na vašich inzertních cílech. Můžete se například snažit spárovat všechny uživatele, kteří vaši doménu navštíví (pixel tedy musíte umístit téměř na všechny stránky), nebo pouze uživatele s konverzí (pixel stačí umístit na konverzní stránku). Obecně platí, že na čím větší procento stránek pixel umístíte, tím vyšší budete mít míru shody.

Párovací značka je průhledný měřicí pixel, který obsahuje ID vašeho profilu pro párování souborů cookie a zakódované ID uživatele nebo souboru cookie:

<img src="https://cm.g.doubleclick.net/pixel?google_nid=adh_customername&google_hm=Q29va2llIG51bWJlciAxIQ" />

Tato párovací značka zahajuje komunikaci mezi vámi a službami Google zajišťujícími párování souborů cookie.

Podrobný přehled

  1. Uživatel navštíví stránku s párovací značkou.
  2. Párovací značka iniciuje sérii přesměrování na párovací služby v rámci Google Marketing Platform, Google Ads a YouTube. Požadavky obsahují ID uživatele nebo souboru cookie z vašeho webu a soubor cookie Google v prostorech identifikátorů jednotlivých párovacích služeb.
  3. Prohlížeči je vrácen transparentní měřicí pixel jako potvrzení toho, že byl požadavek splněn.

Celý proces je znázorněn na tomto schématu:

Obrázek znázorňující sérii přesměrování mezi prohlížečem a párovacími službami

Úvodní nastavení

Nastavení párování souborů cookie ve službě Ads Data Hub se provádí takto:

  1. Kontaktujte svého zástupce pro účet a sdělte mu, že máte o párování souborů cookie zájem. Projedná s vámi vaše cíle a poskytne vám další informace o implementaci měřicího pixelu na vaší doméně.
  2. Dále se s vámi spojí specialista na službu Ads Data Hub a probere s vámi technické požadavky a případy použití.
  3. Zatímco budete implementovat měřicí pixel a koncový bod pro chyby, Google pro vás vytvoří identifikační tabulky.

Po provedení těchto kroků již nebude z vaší strany v danou chvíli nic potřeba. Google bude denně plnit identifikační tabulky.2 Budete muset nějakou dobu počkat, než bude v tabulce dostatek dat, aby byla použitelná k párování a splňovala požadavky na agregaci. Délka čekání se bude odvíjet od frekvence, s jakou lidé navštěvují váš web. Stránky s každodenními návštěvníky se do cílového stavu dostanou dříve než weby, které lidé navštěvují jednou měsíčně. Až se začne zmenšovat přírůstek nových párování, budou vaše identifikační tabulky obsahovat komplexnější data.

Dotazy na identifikační tabulky

Pokud identifikační tabulky obsahují dost dat na to, aby splňovaly podmínky kontroly ochrany soukromí, můžete se na ně dotazovat.

Pro každou tabulku vytvořenou podle schématu služby Ads Data Hub, která obsahuje pole user_id, existuje tabulka *_match. Například pro tabulku adh.google_ads_impressions vytvoří Ads Data Hub i identifikační tabulku adh.google_ads_impressions_match obsahující ID vašich uživatelů. Pro tabulky oddělené od zásad se vytvoří samostatné identifikační tabulky. Například pro tabulku adh.google_ads_impressions_policy_isolated_youtube vytvoří Ads Data Hub i identifikační tabulku adh.google_ads_impressions_policy_isolated_youtube_match obsahující ID vašich uživatelů.

Tyto tabulky obsahují podmnožinu uživatelů dostupných v původních tabulkách. Jde o uživatele, u nichž existuje shoda v poli user_id. Pokud například původní tabulka obsahuje data pro uživatele A a uživatele B, ale shoda existuje jen u uživatele A, uživatel B v identifikační tabulce nebude.

Identifikační tabulka obsahuje další sloupec s názvem external_cookie, který uchovává váš soubor cookie ve formě BAJTŮ.

Při psaní dotazů je důležité vzít v úvahu typ pole. Porovnávací operátory jazyka SQL předpokládají, že porovnávané literály jsou stejného typu. Podle toho, jak jsou user_id uložena ve vaší tabulce s daty první strany, může být potřeba před párováním dat nejprve hodnoty v tabulce zakódovat. Úspěšné shody mohou vyžadovat převod klíče připojení do BAJTŮ:

JOIN ON
  adh.google_ads_impressions_match.external_cookie = CAST(my_data.user_id AS BYTES)

Porovnání textových řetězců v jazyce SQL navíc rozlišuje velká a malá písmena. Aby tedy fungovalo správně, může být potřeba zakódovat oba porovnávané textové řetězce.

Kódování ID uživatelů

Kódování ID uživatelů na straně klienta

Aby bylo možno prostřednictvím adres URL přenášet ID v různých formátech, musí být všechna ID před odesláním převedena do kódování Base64 bezpečného pro použití v URL. Takto zakódovaná ID budou ve službě Ads Data Hub dostupná v poli external_cookie. Abyste tedy získali svá původní ID, budete muset vrátit zpět veškeré transformace, které jste před kódováním provedli.

Jestliže vaše ID nikdy nejsou delší než 24 znaků (tedy bajtů), můžete ID převedená do kódování Base64 bezpečného pro použití v URL obsáhnout v pixelu, jak je vidět v příkladu 1. Pokud používáte delší ID, budete je muset transformovat do podoby, která má maximálně 24 bajtů. V některých případech (například u GUID v příkladu 2) stačí převod na bajtový zápis. Jindy může být potřeba posílat Googlu jen část (nebo hashovanou verzi) ID. Vždy je však třeba dbát na to, abyste mohli napsat takový příkaz JOIN jazyka SQL, který stejným způsobem konvertuje hodnoty ID ve vašich datech první strany.

Příklad 1

Hodnota vašich ID uživatelů je vždy kratší než 24 bajtů. Doporučujeme, abyste ID uživatele jednoduše přímo poslali do služby Ads Data Hub (poté, co jej kvůli přenosu převedete na hodnotu v kódování Base64 bezpečnou pro 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);
Příklad 2

Jako ID uživatelů používáte univerzální jedinečný identifikátor (UUID), například: 123e4567-e89b-12d3-a456-426655440000.

Služba Ads Data Hub doporučuje při párování používat níže uvedené transformace:

  1. Hodnota UUID je formátovaná jako textový řetězec o 36 znacích.
  2. Proveďte šestnáctkové dekódování hodnoty UUID.
  3. Hodnota UUID je formátovaná jako bajty.
  4. Zakódujte bajtové UUID metodou Base64 bezpečnou pro URL.
  5. Hodnota UUID je formátovaná jako textový řetězec.

Lze to implementovat níže uvedeným kódem:

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)

Pokud je zjištěna shoda z ID uživatele Google, bude v poli external_cookie obsaženo vaše ID jako bajtová hodnota. K obnovení vašeho původního ID je potřeba tato transformace:

  1. Hodnota external_cookie je formátována jako bajty.
  2. Proveďte šestnáctkové zakódování hodnoty external_cookie.
  3. Hodnota external_cookie je formátována jako textový řetězec.

Kódování ID uživatele ve službě Ads Data Hub

Pokud textový řetězec UUID ukládáte v poli ve svých datech první strany, budete ho muset před úspěšným připojením dat konvertovat na bajty jako v příkladu výše.

Níže uvedený příklad ukazuje, jak hodnotu UUID zakódovat a připojit k poli s externím souborem cookie:

JOIN my_data ON imp.external_cookie = FROM_HEX(REPLACE(my_data.uuid, '-', ''))

Hodnoty integer nelze přetypovat na bajt. Jestliže je vaše ID uživatele hodnota typu integer (jako v příkladu 1 výše), musíte ji nejprve přetypovat na textový řetězec.

JOIN my_data ON imp.external_cookie = CAST(CAST(my_data.user_id AS STRING) AS BYTES)

Kódování, které budete před párováním svých dat muset provést, bude záviset na tom, jak tato data ukládáte a jak jste je zakódovali před jejich odesláním do služby Ads Data Hub.

Další informace o řetězcových funkcích v jazyku SQL používaném v nástroji BigQuery

Vzorový dotaz

Níže uvedená ukázka připojí data první strany k tabulce google_ads_impressions_match a poté druhým dotazem připojí výsledek k tabulce 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

Výsledek prvního dotazu je uložen jako previous_results. Nyní ho lze připojit k tabulce google_ads_impressions. Tím k výsledkům přidáte data o kampaních s nula zobrazeními.

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)

  1. Příklad: 20% míra shody v podstatě znamená, že potřebujete 250 uživatelů na každý řádek, abyste vyhověli agregačnímu limitu 50 uživatelů: 50 / 0,2 = 250. 

  2. Může trvat až 48 hodin, než se párování provedená v určitý den zobrazí ve vašich tabulkách.