Cookie-Abgleich

Grundsätzlich ist der Cookie-Abgleich der Prozess, bei dem ein Werbetreibender oder Anbieter Cookies in seiner Domain mit Cookies in der Google-Domain verknüpft. Wenn Sie diese Cookies abgleichen, können Sie Ihre selbst erhobenen Daten, die Ihnen gehören, den Google-Anzeigendaten für denselben Nutzer zuordnen, die über Display & Video 360 und Campaign Manager 360 erfasst werden. So können Sie CRM-Daten einbinden und sich ein besseres Bild vom Nutzerverhalten machen. Wenn Sie diese Daten über datenschutzkonforme Joins kombinieren, haben Sie folgende Möglichkeiten:

  • Ausrichtung auf Zielgruppen anhand bestimmter Artikel, die in den Einkaufswagen gelegt, aber nicht gekauft wurden, wenn diese Nutzer mit Ihren Anzeigen und Ihrer Domain interagiert haben
  • Ermitteln, welche Anzeigen zu längeren Sitzungen in Ihrer Domain führen
  • Die bisherigen Käufe analysieren, die mit Daten nach der Kampagne zusammengeführt sind

Einschränkungen und Datenschutz für Endnutzer

Der Cookie-Abgleich ist zwar eine leistungsstarke Funktion, es gibt jedoch einige Einschränkungen:

  • Joins zwischen *_match- und Nicht-*_match-Tabellen sind nicht zulässig.
  • Er erfordert sowohl von Ihnen als auch von Google Entwicklungsarbeit.
  • Es ist unwahrscheinlich, dass sich all Ihre Google-Anzeigendaten abgleichen lassen. Die Abgleichsraten unterliegen einer Reihe von Faktoren und variieren je nach Anwendungsfall und clientseitiger Einrichtung. Sie sind oft niedriger als erwartet. Nutzer kommen nur für den Cookie-Abgleich infrage, wenn sie mit Ihrer Domain und Ihren Anzeigen interagiert haben.
  • Sobald Ihre Match-Tables eingerichtet sind, beginnt Google damit, diese mit Daten zu füllen. Je nach Häufigkeit, mit der Nutzer Ihre Website besuchen und das entsprechende Pixel erhalten, kann es Monate dauern, bis die Match-Tables ganzheitliche, stabile Daten zu den Nutzern enthalten.
  • Einzelne Nutzer lassen sich nur dann mehreren Geräten zuordnen, wenn Sie die Möglichkeit haben, Nutzer geräteübergreifend zu verbinden.
  • Sie können einen einzelnen Nutzer nicht mithilfe mehrerer Cookies abgleichen, wie es z. B. der Fall wäre, wenn ein Nutzer seine Cookies löscht.
  • Jobs, die für Match-Tables ausgeführt werden, unterliegen denselben Aggregationsanforderungen wie andere Jobs in Ads Data Hub. Eine niedrige Abgleichsrate mit wenig Besuchen Ihrer Domain kann zu Schwierigkeiten bei der Datenerhebung führen. Grund hierfür ist die kombinierte Wirkung von Abgleichsraten und Aggregationsanforderungen.1
  • Gemäß den Google-Richtlinien zum Datenschutz für Nutzer gilt Folgendes:
    • Sie dürfen die Daten eines Nutzers im angemeldeten und im nicht angemeldeten Status nicht miteinander abgleichen.
    • Sie dürfen keine Daten mit Nutzern abgleichen, die personalisierte Werbung deaktiviert haben.
  • Für iOS-Ereignisse können Sie nur Daten aus Apps ab iOS 14.5 abgleichen, die von Nutzern stammen, die im Rahmen des App Tracking Transparency-Frameworks von Apple ihre Einwilligung erteilt haben.

Damit Sie Ihre selbst erhobenen Daten in Ads Data Hub nutzen können, müssen Sie bestätigen, dass Sie die entsprechende Einwilligung zur Weitergabe von Daten von Endnutzern im EWR an Google gemäß der Richtlinie zur Einwilligung der Nutzer in der EU und den Ads Data Hub-Richtlinien eingeholt haben. Die Bestätigung ist für jedes Ads Data Hub-Konto und bei jedem Upload neuer selbst erhobener Daten erforderlich. Jeder Nutzer kann die Bestätigung für das gesamte Konto abgeben.

Hinweis: Für Cookie-Abgleich-Abfragen gelten dieselben Regeln für Google-Dienst-Abfragen wie für Analyseabfragen. So sind z. B. keine dienstübergreifenden Abfragen für Nutzer im EWR möglich, wenn Sie eine Match-Table erstellen.

Informationen dazu, wie Sie in Ads Data Hub bestätigen, dass Sie die Einwilligung eingeholt haben, finden Sie unter Einwilligungsanforderungen für den Europäischen Wirtschaftsraum.

Damit Google Ihre Match-Tables füllen kann, ist auf jeder Seite Ihrer Domain, auf der Sie Werbedaten abgleichen möchten, ein Übereinstimmungs-Tag erforderlich. Wo Sie das Pixel platzieren, hängt von Ihren Werbezielen ab. Sie können beispielsweise versuchen, alle Nutzer abzugleichen, die Ihre Domain besuchen (dafür sind Pixel auf fast allen Seiten erforderlich), oder Nutzer abzugleichen, die Conversions ausführen (dafür sind Pixel auf einer Conversion-Seite erforderlich). Im Allgemeinen führt ein weiter verbreitetes Pixel zu höheren Abgleichsraten.

Das Übereinstimmungs-Tag ist ein transparentes 1 × 1-Pixel, das Ihre Cookie-Abgleich-Profil-ID und eine codierte Nutzer- oder Cookie-ID enthält:

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

Dieses Tag löst die Kommunikation zwischen Ihnen und den Cookie-Abgleichdiensten von Google aus.

Detaillierte Anleitung

  1. Ein Nutzer besucht eine Seite mit einem Übereinstimmungs-Tag.
  2. Das Übereinstimmungs-Tag löst eine Reihe von Weiterleitungen zu Google Marketing Platform-, Google Ads- und YouTube-Abgleichdiensten aus. Die Anfragen enthalten die ID des jeweiligen Nutzers oder das Cookie von Ihrer Website sowie das Google-Cookie in jedem ID-Bereich des jeweiligen Abgleichdiensts.
  3. Ein transparentes 1 × 1-Pixel wird an den Browser zurückgegeben, um zu bestätigen, dass die Anfrage erfüllt wurde.

Dieser Ablauf wird im folgenden Diagramm veranschaulicht:

Bild mit einer Reihe von Weiterleitungen zwischen dem Browser und Abgleichdiensten

Einrichtung

So richten Sie den Cookie-Abgleich in Ads Data Hub ein:

  1. Teilen Sie Ihrem Kundenbetreuer mit, dass Sie am Cookie-Abgleich interessiert sind. Der Kundenbetreuer wird mit Ihnen über Ihre Ziele sprechen und Ihnen weitere Informationen dazu geben, wie Sie das Tracking-Pixel in Ihrer Domain bereitstellen.
  2. Ads Data Hub-Spezialisten kontaktieren Sie, um über die technischen Anforderungen und Anwendungsfälle zu sprechen.
  3. Sie stellen das Tracking-Pixel und den Fehlerendpunkt bereit, Google erstellt Ihre Match-Tables.

Nachdem Sie diese Schritte abgeschlossen haben, müssen Sie nichts weiter unternehmen. Google füllt Ihre Match-Tables täglich mit Daten.2 Es kann also einige Zeit dauern, bis Ihre Tabelle genügend Daten enthält, um sinnvolle Übereinstimmungen zu liefern und die Aggregationsanforderungen zu erfüllen. Wie lange, hängt davon ab, wie oft Nutzer Ihre Website besuchen. Eine Website mit täglichen Besuchern erreicht diesen Punkt viel schneller als eine, die nur alle paar Monate besucht wird. Wenn die Anzahl der neuen Übereinstimmungen abnimmt, enthalten die Match-Tables umfassendere Daten.

Match-Tables abfragen

Wenn die Match-Tables genügend Daten enthalten, um die Datenschutzprüfungen zu bestehen, können Sie Abfragen dafür ausführen.

Für jede Tabelle im Ads Data Hub-Schema, die ein user_id-Feld enthält, gibt es eine entsprechende *_match-Tabelle. Beispielsweise wird für die Tabelle adh.google_ads_impressions in Ads Data Hub auch eine Match-Table mit dem Namen adh.google_ads_impressions_match erstellt, die Ihre Nutzer-IDs enthält. Für richtlinienkonform isolierte Tabellen werden separate Match-Tables erstellt. So wird für die Tabelle adh.google_ads_impressions_policy_isolated_youtube in Ads Data Hub z. B. auch eine Match-Table namens adh.google_ads_impressions_policy_isolated_youtube_match für Ihre Nutzer-IDs erstellt.

Diese Tabellen enthalten eine Teilmenge der in den ursprünglichen Tabellen verfügbaren Nutzer, bei denen es eine Übereinstimmung mit der user_id gibt. Wenn die ursprüngliche Tabelle beispielsweise Daten für Nutzer A und Nutzer B enthält, aber nur Nutzer A abgeglichen werden kann, ist Nutzer B nicht in der Match-Table enthalten.

Die Match-Tables enthalten die zusätzliche Spalte external_cookie, in der das Cookie als BYTES gespeichert wird.

Beim Erstellen von Abfragen ist es wichtig, den Feldtyp zu berücksichtigen. Für SQL-Vergleichsoperatoren ist es erforderlich, dass die zu vergleichenden Literale denselben Typ haben. Je nachdem, wie die user_id in der Tabelle mit selbst erhobenen Daten gespeichert wird, müssen Sie die Werte in der Tabelle möglicherweise codieren, bevor die Daten abgeglichen werden. Für erfolgreiche Übereinstimmungen müssen Sie den Join-Schlüssel in BYTES umwandeln:

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

Außerdem wird bei Stringvergleichen in SQL die Groß- und Kleinschreibung berücksichtigt. Eventuell müssen Sie also Strings auf beiden Seiten des Vergleichs entsprechend codieren, damit sie richtig verglichen werden können.

Nutzer-IDs codieren

Nutzer-IDs clientseitig codieren

Damit verschiedene ID-Formate sicher über die URL übertragen werden können, müssen alle IDs vor dem Senden URL-sicher Base64-codiert werden. Die decodierte URL-sichere Base64-ID wird in Ads Data Hub im Feld external_cookie zur Verfügung gestellt. Sie müssen also alle Transformationen, die Sie vor der Codierung angewendet haben, rückgängig machen, um die ursprüngliche ID abzuleiten.

Wenn Ihre ID immer maximal 24 Zeichen oder Byte umfasst, können Sie die URL-sichere Base64-codierte ID in ein Pixel einfügen (siehe Beispiel 1). Umfasst die ID hingegen mehr als 24 Zeichen oder Byte, müssen Sie sie in eine Darstellung mit maximal 24 Byte umwandeln. In einigen Fällen (wie bei der GUID in Beispiel 2) ist eine Konvertierung in die Bytedarstellung erforderlich. In anderen Fällen müssen Sie Google möglicherweise eine Teilmenge (oder einen Hash) Ihrer ID senden. In jedem Fall müssen Sie einen SQL JOIN schreiben können, der die ID in Ihrer eigenen Tabelle auf dieselbe Weise konvertiert.

Beispiel 1

Ihr Nutzer-ID-Wert liegt immer unter der 24-Byte-Längenbeschränkung. Ads Data Hub empfiehlt, die Nutzer-ID für die URL-Übertragung im URL-sicheren Base64-Format zu codieren und dann einfach direkt an Ads Data Hub zu senden.

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);
Beispiel 2

Sie weisen einen UUID-Wert (Universally Unique Identifier) als Nutzer-ID zu. Beispiel: 123e4567-e89b-12d3-a456-426655440000

Ads Data Hub empfiehlt die folgenden Umwandlungen für den Abgleich:

  1. Die UUID wird als String mit 36 Zeichen formatiert.
  2. Die UUID wird hexadezimal decodiert.
  3. Die UUID wird als Byte formatiert.
  4. Es werden URL-sichere Base64-codierte Byte verwendet.
  5. Die UUID ist als String formatiert.

Hierfür können Sie beispielsweise den folgenden Code verwenden:

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)

Wenn eine Übereinstimmung mit einer Google-Nutzer-ID erkannt wird, enthält das Feld external_cookie Ihre ID als Bytewert. Zum Rekonstruieren Ihrer ursprünglichen ID ist die folgende Umwandlung erforderlich:

  1. external_cookie wird als Byte formatiert.
  2. external_cookie wird hexadezimal codiert.
  3. external_cookie wird als String formatiert.

Nutzer-IDs in Ads Data Hub codieren

Wenn Sie den UUID-String in einem Feld in Ihren selbst erhobenen Daten speichern, müssen Sie ihn wie im Beispiel oben in Byte konvertieren, damit die Daten zusammengeführt werden können.

Das folgende Beispiel zeigt, wie Sie Ihre UUID codieren und mit dem Feld für externe Cookies zusammenführen:

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

Sie können eine Ganzzahl nicht in Byte umwandeln. Wenn Ihre Nutzer-ID eine Ganzzahl ist (wie in Beispiel 1 oben), müssen Sie sie zuerst in einen String umwandeln:

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

Die Codierung, die für den Abgleich Ihrer Daten erforderlich ist, hängt von der Art der Speicherung und der Art der Codierung vor dem Senden an Ads Data Hub ab.

Weitere Informationen zu Stringfunktionen in BigQuery SQL

Beispielabfrage

Im folgenden Beispiel werden selbst erhobene Daten mit google_ads_impressions_match zusammengeführt und diese Ergebnisse dann in einer zweiten Abfrage mit adh_google_ads_impressions zusammengeführt.

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

Die Ergebnisse der vorherigen Abfrage werden als previous_results gespeichert, sodass Sie sie jetzt mit google_ads_impressions zusammenführen können. Dadurch werden Daten zu Kampagnen, die keine Impressionen umfassen, zu Ihren Ergebnissen hinzugefügt.

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. Beispiel: Eine Übereinstimmungsrate von 20 % bedeutet, dass Sie 250 Nutzer pro Zeile benötigen, um den Aggregationsschwellenwert von 50 Nutzern zu erreichen (50 ÷ 0,2 = 250). 

  2. Bei Abgleichen kann es bis zu 48 Stunden dauern, bis sie in Ihren Tabellen zu sehen sind.