Beim Abgleich der von Nutzern bereitgestellten Daten (user-provided data matching, UPDM) werden selbst erhobene Daten zu einem bestimmten Nutzer, etwa Informationen von Websites, aus Apps oder aus Geschäften, mit den Aktivitäten genau dieses angemeldeten Nutzers in allen Google-Anzeigendaten zusammengeführt, einschließlich der von Google selbst erhobenen und verwalteten Daten. Dazu gehören auch Daten, die über Produkte der Google Marketing Platform (GMP) gekauft wurden, z. B. YouTube-Daten, die über Display & Video 360 gekauft wurden. Andere GMP-Produkte, die nicht zu Google gehören und nicht von Google betrieben werden, werden nicht unterstützt.
Damit von Nutzern bereitgestellte Daten abgeglichen werden können, muss das Anzeigenereignis mit einem angemeldeten Nutzer in Google-Anzeigendaten verknüpft sein.
In diesem Dokument wird die Funktion zum Abgleich von von Nutzern bereitgestellten Daten beschrieben. Außerdem finden Sie hier eine Anleitung zur Einrichtung und Verwendung.
Private Cloud Match – Übersicht
Um wertvolle Informationen zu erhalten, müssen oft Daten aus mehreren Quellen zusammengeführt werden. Die Entwicklung einer eigenen Lösung für dieses Datenpipeline-Problem erfordert einen erheblichen Zeit- und Entwicklungsaufwand. Mit dem Private Cloud Match in Ads Data Hub wird dieser Prozess optimiert. Dazu wird eine Ads Data Hub-Abfragevorlage zum Erstellen einer Abgleichtabelle in BigQuery bereitgestellt, die dann in Ihren Ads Data Hub-Abfragen verwendet werden kann, um Ihre Anzeigendaten mit Ihren selbst erhobenen Daten abzugleichen. Wenn Sie selbst erhobene Daten für Ihre Abfragen verwenden, können Sie Kunden noch mehr bieten. Außerdem sind Sie dann besser auf branchenweite Änderungen beim Anzeigen-Tracking vorbereitet.
Da der Abgleich der von Nutzern bereitgestellten Daten nur für Nutzer verfügbar ist, die in Inventar angemeldet sind, das Google gehört und von Google betrieben wird, ist er von der bevorstehenden Einstellung von Drittanbieter-Cookies nicht betroffen. Da sie widerstandsfähiger gegen branchenbezogene Änderungen sind als Drittanbieterdaten, können sie umfassendere Informationen liefern, was zu mehr Kundeninteraktionen führen kann.
Ablauf
- Datenaufnahme und -abgleich einrichten
- Ihre selbst erhobenen Daten müssen sich in BigQuery befinden und Ihr Dienstkonto muss Lesezugriff darauf haben. Weitere Informationen finden Sie unter Datenaufnahme einrichten.
- Aufnahme und Abgleich selbst erhobener Daten
- Sie formatieren Ihre selbst erhobenen Daten und laden sie in Ihr BigQuery-Dataset hoch.
- Sie initiieren eine Anfrage zum Abgleich von Daten, indem Sie eine Abfrage für die Private Cloud-Abgleichsanalyse erstellen und einen Zeitplan festlegen.
- Google führt Daten aus Ihrem Projekt mit Google-eigenen Daten zusammen, die die Nutzer-ID von Google und gehashte von Nutzern bereitgestellte Daten enthalten, um Abgleichstabellen zu erstellen und zu aktualisieren.
- Weitere Informationen finden Sie unter Selbst erhobene Daten aufnehmen.
- Laufende Abfragen in Ads Data Hub, die auf abgeglichenen Daten basieren
- Sie führen Abfragen auf die Match-Tables aus, genau wie Sie normale Abfragen in Ads Data Hub ausführen. Siehe Abgeglichene Daten abfragen.
Informationen zu den Datenschutzanforderungen
Erhebung von Kundendaten
Wenn Sie den Abgleich der von Nutzern bereitgestellten Daten verwenden, müssen Sie selbst erhobene Daten hochladen. Das können Daten sein, die Sie auf Ihren Websites, in Ihren Apps oder in Ihren Geschäften erhoben haben, oder Daten, die Kunden direkt mit Ihnen geteilt haben.
Die folgenden Anforderungen müssen erfüllt sein:
- Legen Sie in Ihrer Datenschutzerklärung offen, dass Sie Kundendaten an Dritte weitergeben, damit sie Dienstleistungen in Ihrem Auftrag erbringen können. Holen Sie außerdem, soweit gesetzlich erforderlich, die Einwilligung des entsprechenden Kunden für die Weitergabe der Daten ein.
- Laden Sie Kundendaten nur über APIs oder Schnittstellen hoch, die von Google zugelassen sind.
- Halten Sie alle geltenden Gesetze und Bestimmungen ein, darunter auch Selbstregulierungs- und Branchenkodizes.
Einholen der Einwilligung für selbst erhobene Daten bestätigen
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 UPDM-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.
Datengröße
Aus Datenschutzgründen gelten für die Abgleiche von von Nutzern bereitgestellten Daten die folgenden Anforderungen an die Datengröße:
- Sie müssen mindestens 1.000 Einträge in Ihre Nutzerliste hochladen.
- Ihre Liste darf die maximale Anzahl von Einträgen nicht überschreiten. Informationen zum maximalen Datenlimit erhalten Sie von Ihrem Google-Ansprechpartner.
Datenaufnahme einrichten
Bevor Sie beginnen, müssen folgende Voraussetzungen erfüllt sein:
- Ihre selbst erhobenen Daten müssen sich in BigQuery befinden. Wenn Sie einen VPC-SC-Perimeter haben, müssen sich diese selbst erhobenen Daten innerhalb Ihres VPC-SC befinden.
- Ihr Ads Data Hub-Dienstkonto muss Lesezugriff auf die selbst erhobenen Daten haben.
- Ihre selbst erhobenen Daten müssen richtig formatiert und gehasht sein. Weitere Informationen finden Sie im nächsten Abschnitt.
Darüber hinaus ist für Private Cloud Match kein zusätzliches Onboarding erforderlich. Wenn Sie eine Analyseabfrage ausführen können, können Sie auch eine Abfrage für den Abgleich mit einer privaten Cloud ausführen.
Selbst erhobene Daten aufnehmen und abgleichen
Daten für die Eingabe formatieren
Damit Ihre Daten richtig abgeglichen werden können, müssen sie diese Formatierungsanforderungen erfüllen:
- Sofern in den folgenden Eingabefeldbeschreibungen angegeben, müssen Sie die Daten mit SHA256-Hash-Technologie hochladen.
- Eingabefelder müssen als Strings formatiert sein. Wenn Sie beispielsweise die SHA256-Hash-Funktion von BigQuery mit der Base64-Codierungsfunktion (TO_BASE64) verwenden, verwenden Sie die folgende Transformation:
TO_BASE64(SHA256(user_data))
. - UPDM unterstützt die Base64-Codierung. Die Codierung Ihrer selbst erhobenen Daten muss mit der Dekodierung übereinstimmen, die in Ihrer Ads Data Hub-Abfrage verwendet wird. Wenn Sie die Codierung Ihrer selbst erhobenen Daten ändern, müssen Sie Ihre Ads Data Hub-Abfrage so aktualisieren, dass sie von derselben Basis decodiert wird. In den folgenden Beispielen wird die Base64-Codierung verwendet.
Nutzer-ID
- Nur Text
- Hash-Technologie: Keine
- Vor- und nachangestellte Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Geben Sie einen Domainnamen für alle E-Mail-Adressen an, z. B. gmail.com oder hotmail.de.
- Entfernen Sie Akzente, z. B. ändern Sie è, é, ê oder ë in e.
- Entfernen Sie alle Punkte (.) vor dem Domainnamen in
gmail.com
- undgooglemail.com
-E-Mail-Adressen. - Hash-Technologie: Base64-codierter SHA256
Gültig:TO_BASE64(SHA256("jeffersonloveshiking@gmail.com"))
Ungültig:TO_BASE64(SHA256(" Jéfferson.Lôves.Hiking@gmail.com "))
Telefon
- Leerzeichen entfernen
- Formatieren Sie die Nummer im E.164-Format. Beispiel für die USA: +14155552671, Beispiel für das Vereinigte Königreich: +442071838750
- Entfernen Sie alle Sonderzeichen vor dem Ländercode, mit Ausnahme des „+“.
- Hash-Technologie: Base64-codierter SHA256
Gültig:TO_BASE64(SHA256("+18005550101"))
Ungültig:TO_BASE64(SHA256("(800) 555-0101"))
Vorname
- Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Entfernen Sie alle Präfixe, z. B. Herr, Frau, Dr.
- Entfernen Sie keine Akzente, z. B. è, é, ê oder ë.
- Hash-Technologie: Base64-codierter SHA256
Gültig:TO_BASE64(SHA256("daní"))
Ungültig:TO_BASE64(SHA256("Mrs. Daní"))
Nachname
- Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Entfernen Sie alle Suffixe, z. B. Jr., Sr., 2nd, 3rd, II, III, PHD, MD
- Entfernen Sie keine Akzente, z. B. è, é, ê oder ë.
- Hash-Technologie: Base64-codierter SHA256
Gültig:TO_BASE64(SHA256("délacruz"))
Ungültig:TO_BASE64(SHA256("dé la Cruz, Jr."))
Land
- Geben Sie den Ländercode auch dann an, wenn Ihre gesamten Kundendaten aus demselben Land stammen.
- Länderdaten nicht hashen
- Verwenden Sie Ländercodes gemäß ISO 3166-1 alpha-2.
- Hash-Technologie: Keine
Gültig:US
Ungültig:United States of America
oder USA
Postleitzahl
- Postleitzahlen nicht hashen
- Sowohl US-amerikanische als auch internationale Postleitzahlen sind zulässig
- Für die USA:
- Fünfstellige Codes sind zulässig, z. B. 94043.
- Fünf Ziffern, gefolgt von einer vierstelligen Erweiterung, sind ebenfalls zulässig, z. B. 94043-1351 oder 940431351.
- Für alle anderen Länder:
- Keine Formatierung erforderlich (keine Umwandlung in Kleinbuchstaben, keine Entfernung von Leerzeichen und Sonderzeichen)
- Lassen Sie Postleitzahlerweiterungen weg.
- Hash-Technologie: Keine
Hash-Bestätigung und Datencodierung
Mit den folgenden Hash-Validierungsscripts können Sie prüfen, ob Ihre Daten richtig formatiert sind.
JavaScript
/**
* @fileoverview Provides the hashing algorithm, as well as some valid hashes of
* sample data for testing.
*/
async function hash(token) {
// Removes leading or trailing spaces and converts all characters to lowercase.
const formattedToken = token.trim().toLowerCase();
// Hashes the formatted string using the SHA-256 hashing algorithm.
const hashBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
// Converts the hash buffer to a base64-encoded string and returns it.
const base64Str = btoa(String.fromCharCode(...new Uint8Array(hashBuffer)));
return base64Str;
}
function main() {
// Expected hash for test@gmail.com:
// h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
hash('test@gmail.com').then(result => console.log(result));
// Expected hash for +18005551212:
// YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
hash('+18005551212').then(result => console.log(result));
// Expected hash for John: ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
hash('John').then(result => console.log(result));
// Expected hash for Doe: eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
hash('Doe').then(result => console.log(result));
}
main()
Python
"""Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Supports: Python 2, Python 3
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
"""
import base64
import hashlib
def hash(token):
# Generates a base64-encoded SHA-256 hash of a normalized input string.
return base64.b64encode(
hashlib.sha256(
token.strip().lower().encode('utf-8')).digest()).decode('utf-8')
def print_hash(token, expected=None):
# Computes and displays the hash of a token, with optional validation.
hashed = hash(token)
if expected is not None and hashed != expected:
print(
'ERROR: Incorrect hash for token "{}". Expected "{}", got "{}"'.format(
token, expected, hashed))
return
print('Hash: "{}"\t(Token: {})'.format(hashed, token))
def main():
# Tests the hash function with sample tokens and expected results.
print_hash(
'test@gmail.com', expected='h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=')
print_hash(
'+18005551212', expected='YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=')
print_hash('John', expected='ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=')
print_hash('Doe', expected='eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=')
if __name__ == '__main__':
main()
Go
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
*/
package main
import (
"crypto/sha256"
"encoding/base64"
"fmt"
"strings"
)
// Hash hashes an email, phone, first name, or last name into the correct format.
func Hash(token string) string {
formatted := strings.TrimSpace(strings.ToLower(token))
hashed := sha256.Sum256([]byte(formatted))
encoded := base64.StdEncoding.EncodeToString(hashed[:])
return encoded
}
// PrintHash prints the hash for a token.
func PrintHash(token string) {
fmt.Printf("Hash: \"%s\"\t(Token: %s)\n", Hash(token), token)
}
func main() {
PrintHash("test@gmail.com")
PrintHash("+18005551212")
PrintHash("John")
PrintHash("Doe")
}
Java
package updm.hashing;
import static java.nio.charset.StandardCharsets.UTF_8;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* Example of the hashing algorithm.
*
* <p>Sample hashes:
*
* <ul>
* <li>Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
* <li>Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
* <li>First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
* <li>Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
* </ul>
*/
public final class HashExample {
private HashExample() {}
public static String hash(String token) {
// Normalizes and hashes the input token using SHA-256 and Base64 encoding.
String formattedToken = token.toLowerCase().strip();
byte[] hash;
try {
hash = MessageDigest.getInstance("SHA-256").digest(formattedToken.getBytes(UTF_8));
} catch (NoSuchAlgorithmException e) {
throw new IllegalStateException("SHA-256 not supported", e);
}
return Base64.getEncoder().encodeToString(hash);
}
public static void printHash(String token) {
// Calculates and prints the hash for the given token.
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
// Executes hash calculations and prints results for sample tokens.
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
SQL
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
The following code uses Google Standard SQL and can be run on BigQuery to generate match tables from unhashed data.
Sample hashes:
- Email 'test@gmail.com': h5JGBrQTGorO7q6IaFMfu5cSqqB6XTp1aybOD11spnQ=
- Phone '+18005551212': YdkRG+0+bZz8G8O1yzWkAmh8TxVGvuBhor1ET73WTEQ=
- First name 'John': ltljLzY1ZMwwMlIUCc8iqFLyAy7sCZ7VlnwNAAzsYHo=
- Last name 'Doe': eZ75KhGvkY4/t0HfQpNPO1aO0tk6wd908bjUGieTKm8=
The unhashed input table schema is assumed to be:
- Column name: UserID, Type: String
- Column name: Email, Type: String
- Column name: Phone, Type: String
- Column name: FirstName, Type: String
- Column name: LastName, Type: String
- Column name: PostalCode, Type: String
- Column name: CountryCode, Type: String
*/
-- Creates a new table with Base64-encoded SHA-256 hashes of specified columns.
CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
UserID,
TO_BASE64(SHA256(LOWER(Email))) AS Email,
TO_BASE64(SHA256(Phone)) AS Phone,
TO_BASE64(SHA256(LOWER(FirstName))) AS FirstName,
TO_BASE64(SHA256(LOWER(LastName))) AS LastName,
PostalCode,
CountryCode,
FROM
`your_project_name.your_dataset_name.input_unhashed_table_name`;
JOIN-Schlüssel
Einige Kombinationen von von Nutzern bereitgestellten Daten sind aussagekräftiger als andere. Im Folgenden finden Sie eine Liste verschiedener Kombinationen von von Nutzern bereitgestellten Daten, sortiert nach relativer Stärke. Wenn Sie eine Adresse verwenden, müssen Sie Folgendes angeben: Vorname, Nachname, Land und Postleitzahl.
- E-Mail-Adresse, Telefonnummer, Adresse (stärkste)
- Telefonnummer, Adresse
- E-Mail-Adresse, Adresse
- E-Mail, Telefon
- Adresse
- Telefon
- E-Mail (schlechteste Methode)
Match-Table erstellen
Klicken Sie auf Berichte > Bericht erstellen > Match-Table-Generierung in privater Cloud > Vorlage verwenden. Optional: Sie können Match-Table-Generierung in privater Cloud mit Hash-Technologie auswählen, wenn Ihre Daten noch nicht gehasht wurden.
// Create a new match table using your first party data with this template. /* Parameters: Manually remove all the parameters tagged with @ prefix and replace them with column names from your first party table: * @user_id * @email * @phone * @first_name * @last_name * @country_code * @postal_code And your BigQuery table information: * @my_project: Your BigQuery project where the first party table is. * @my_dataset: Your dataset where the first party table is. * @my_first_party_table: Your first party table. */ CREATE OR REPLACE TABLE adh.updm_match_table AS ( SELECT CAST(@user_id AS BYTES) AS user_id, @email AS email, @phone AS phone, @first_name AS first_name, @last_name AS last_name, @country_code AS country, @postal_code AS zip_code FROM `@my_project.@my_dataset.@my_first_party_table` );
Ersetzen Sie die Parameternamen durch Ihre Spaltennamen, um eine korrekte Aliasierung zu ermöglichen.
Stellen Sie die Einstellung für den Datenschutz-Rauschen auf „Diff-Prüfungen verwenden“.
Klicken Sie auf Zeitplan festlegen, um festzulegen, wie oft die Abgleichtabelle aktualisiert werden soll. Bei jeder Ausführung wird die aktuelle Abgleichstabelle überschrieben.
Abfrage der übereinstimmenden 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.
Die ursprüngliche Tabelle für selbst erhobene Daten wird durch my_data
dargestellt.
Dazu gehören sowohl personenidentifizierbare Informationen als auch andere Daten.
Wenn Sie die ursprüngliche Tabelle verwenden, können Sie Ihre Berichte mit mehr Statistiken verbessern, da sie im Vergleich zu einer Match-Table alle relevanten selbst erhobenen Daten enthält.
Für jede Tabelle im Ads Data Hub-Schema, die ein user_id
-Feld enthält, gibt es eine entsprechende Match-Table. 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_updm
erstellt, die Ihre Nutzer-IDs enthält.
Für richtlinienkonform isolierte Tabellen werden separate Match-Tables erstellt. Beispielsweise wird für die Tabelle adh.google_ads_impressions_policy_isolated_youtube
in Ads Data Hub auch eine Match-Table mit dem Namen adh.google_ads_impressions_policy_isolated_youtube_updm
erstellt, die Ihre Nutzer-IDs enthält.
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 customer_data_user_id
, in der die Nutzer-ID 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_updm.customer_data_user_id = 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.
Beispielabfragen
Übereinstimmende Nutzer zählen
Mit dieser Abfrage wird die Anzahl der übereinstimmenden Nutzer in Ihrer Google Ads-Impressionstabelle gezählt.
/* Count matched users in Google Ads impressions table */
SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_updm
Abgleichsrate berechnen
Nicht alle Nutzer können abgeglichen werden. So werden beispielsweise nicht angemeldete Nutzer, Kinder und Nutzer ohne Einwilligung nicht über UPDM abgeglichen. Mit dem Feld is_updm_eligible
lassen sich genauere Abgleichsraten für die von Nutzern bereitgestellten Daten berechnen. Das Feld is_updm_eligible
ist seit dem 1. Oktober 2024 verfügbar. Vor diesem Datum können Sie dieses Feld nicht verwenden, um Abgleichsraten zu berechnen.
/* Calculate the UPDM match rate */
CREATE TEMP TABLE total_events OPTIONS(privacy_checked_export=TRUE) AS
SELECT
customer_id,
COUNT(*) AS n
FROM adh.google_ads_impressions
WHERE is_updm_eligible
GROUP BY 1;
CREATE TEMP TABLE matched_events OPTIONS(privacy_checked_export=TRUE) AS
SELECT
customer_id,
COUNT(*) AS n
FROM adh.google_ads_impressions_updm
GROUP BY 1;
SELECT
customer_id,
SAFE_DIVIDE(matched_events.n, total_events.n) AS match_rate
FROM total_events
LEFT JOIN matched_events
USING (customer_id)
Selbst erhobene Daten mit Google Ads-Daten zusammenführen
In dieser Abfrage wird gezeigt, wie Sie selbst erhobene Daten mit Google Ads-Daten zusammenführen:
/* Join first-party data with Google Ads data. The customer_data_user_id field
contains your ID as BYTES. You need to cast your join key into BYTES for
successful matches. */
SELECT
inventory_type,
COUNT(*) AS impressions
FROM
adh.yt_reserve_impressions_updm AS google_data_imp
LEFT JOIN
`my_data`
ON
google_data_imp.customer_data_user_id = CAST(my_data.user_id AS BYTES)
GROUP BY
inventory_type
Häufig gestellte Fragen zu UPDM
Eine Liste der häufig gestellten Fragen zu UPDM finden Sie unter Häufig gestellte Fragen zu UPDM.