Übersicht
Durch den UPDM-Abgleich (User-Provided Data Matching) werden selbst erhobene Daten, die Sie zu einem Nutzer erfasst haben – z. B. Informationen von Ihren Websites, Apps oder Ladengeschäften –, mit den Anmeldedaten angemeldeter Nutzer in Google-Anzeigendaten. Davon ausgenommen ist die Google Marketing Platform. Damit ein Abgleich mit von Nutzern übermittelten Daten möglich ist, muss das Anzeigenereignis mit einem angemeldeten Nutzer in Google-Anzeigendaten verknüpft werden.
Der von Nutzern übermittelte Datenabgleich bietet einige einzigartige Vorteile gegenüber anderen Formen des Kundenabgleichs. Von Nutzern übermittelte Daten abgleichen:
- Ist widerstandsfähiger gegenüber Branchenänderungen als Drittanbieterdaten
- Er ist nicht von der bevorstehenden Einstellung von Drittanbieter-Cookies betroffen, da der von Nutzern gelieferte Datenabgleich für angemeldete Nutzer nur auf Inventar verfügbar ist, das Google gehört und von Google betrieben wird
- Relevantere Kundenerlebnisse bieten, die oft zu mehr Kundeninteraktionen führen
- Umfassendere Kundeninformationen
Prozesszusammenfassung
Nachdem Sie den von Nutzern übermittelten Datenabgleich in Ihrem Konto aktiviert haben, gibt es zwei Phasen für die weitere Nutzung der Funktion:
- Selbst erhobene Daten aufnahme in Ads Data Hub
- Sie formatieren und laden Ihre selbst erhobenen Daten in Ihr BigQuery-Dataset hoch. Sie können jedes BigQuery-Dataset verwenden, das Ihnen gehört, außer Ihrem Administratorprojekt.
- Sie initiieren eine Anfrage zum Datenabgleich, indem Sie eine Verbindung erstellen und einen Importzeitplan erstellen.
- Google führt Daten zwischen Ihrem Projekt und Google-Daten, die die User-ID von Google enthalten, und gehashte von Nutzern übermittelte Daten zusammen, um
*_match
-Tabellen zu erstellen und zu aktualisieren.
- Laufende Abfragen in Ads Data Hub, basierend auf übereinstimmenden Daten
- Sie führen Abfragen für die Tabellen
*_match
genauso aus wie reguläre Abfragen in Ads Data Hub.
- Sie führen Abfragen für die Tabellen
Datenquellen- und Zielprojekte
Für Verbindungen müssen Sie zwei verschiedene Google Cloud-Projekte verwenden: ein Datenquellenprojekt und ein Zielprojekt.
- Datenquelle: Dieses Projekt enthält proprietäre Werbedaten im Rohformat.
- Ziel: Das ist das BigQuery-Dataset, in das Ads Data Hub schreibt. Standardmäßig ist dies Ihr Administratorprojekt. Informationen zum Ändern eines anderen Google Cloud-Projekts finden Sie unter Dienstkonten konfigurieren.
Datenschutzeinschränkungen
Kundendaten erheben
Wenn Sie den von Nutzern übermittelten Datenabgleich verwenden, müssen Sie selbst erhobene Daten hochladen. Das können Informationen sein, die Sie auf Ihren Websites, in Ihren Apps, in Ihren Ladengeschäften oder durch einen Kunden direkt mit Ihnen geteilt haben.
Datengröße
Aus Datenschutzgründen erzwingt der von Nutzern übermittelte Datenabgleich die folgenden Anforderungen in Bezug auf die Größe Ihrer Daten:
- Sie müssen mindestens 1.000 Einträge in Ihre Nutzerliste hochladen.
- Jede erfolgreiche Aktualisierung Ihrer Match-Table muss eine Mindestanzahl von neu zugeordneten Nutzern enthalten. Dieses Verhalten ähnelt Unterschiedsprüfungen.
- Die Liste darf die maximale Anzahl an Einträgen nicht überschreiten. Weitere Informationen zum maximalen Datenlimit erhalten Sie von Ihrem Google-Ansprechpartner.
Tab „Verbindungen“ aktivieren
Bevor Sie beginnen, konfigurieren Sie Ihr Ads Data Hub-Konto so, dass der Tab Verbindungen aktiviert ist, auf dem Sie Ihre Pipeline für den Datenabgleich einrichten. Sie müssen diese Schritte nur einmal ausführen.
- Senden Sie Ihren Google-Ansprechpartner:
- Die Ads Data Hub-Konto-ID, die Sie für den Abgleich der von Nutzern übermittelten Daten verwenden.
- Die E-Mail-Adresse des Superusers, die Zugriff auf Ihr Zielprojekt hat.
- Erkundigen Sie sich bei Ihrem Google-Ansprechpartner, ob das Konto und der Superuser auf der Zulassungsliste sind.
Aktivieren Sie die Ads Data Connector API im dafür vorgesehenen Google Cloud-Projekt. Standardmäßig ist dies Ihr Administratorprojekt. Wenn Sie ein anderes Projekt verwenden möchten, führen Sie diese Schritte mit dem alternativen Google Cloud-Projekt als Datenquellenprojekt aus. Diese Schritte müssen ausgeführt werden, während Sie als Superuser auf der Zulassungsliste angemeldet sind.
- Rufen Sie die API-Bibliothek der Cloud Console auf.
- Wählen Sie das Datenquellenprojekt aus der Liste aus.
- Suchen Sie nach der Ads Data Connector API. Wenn die Ads Data Connector API nicht in den Suchergebnissen angezeigt wird, ist das Google-Konto, in dem Sie angemeldet sind, möglicherweise nicht der Superuser, der auf die Zulassungsliste gesetzt wurde.
- Klicken Sie auf der API-Seite auf AKTIVIEREN.
- Lassen Sie sich von Ihrem Google-Ansprechpartner bestätigen, dass die API aktiviert ist.
Ihr Google-Ansprechpartner sendet Ihnen drei E-Mail-Adressen, die als Datafusion-, Dataproc- und UPDM-Dienstkonten bezeichnet werden.
Außerdem wird in Ihrem Ads Data Hub-Konto der neue Abschnitt Verbindungen mit den Tabs Eigene Daten und Datenabgleich angezeigt. Anwendungsfälle für die einzelnen Tabs
Gewähren Sie den Dienstkonten die entsprechenden Berechtigungen. Eine Erläuterung der verschiedenen Dienstkonten und ihrer erforderlichen Berechtigungen finden Sie in der Tabelle unter der Datenquelle:
BigQuery
Datafusion-Dienstkonto Zweck Mit dem Datafusion-Dienstkonto wird eine Liste von Quellfeldern in der Ads Data Hub-UI angezeigt. Formatieren service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
Erforderlicher Zugriff BigQuery Data Viewer
roles/bigquery.dataViewer
für bestimmte Datasets in Datenquellen- und Zielprojekten Storage Admin
roles/storage.admin
für das Projekt Datenquelle oder einen dedizierten Storage-Bucket Dataproc-Dienstkonto Zweck Das Dataproc-Dienstkonto ist für die Ausführung der Datenpipelines im Hintergrund verantwortlich. Formatieren some-number-compute@developer.gserviceaccount.com
Erforderlicher Zugriff BigQuery Data Viewer
roles/bigquery.dataViewer
für bestimmte Datasets in Datenquellen- und Zielprojekten BigQuery Data Editor
roles/bigquery.dataEditor
für bestimmte Datasets im Projekt Destination BigQuery Job User
roles/bigquery.jobUser
sowohl für Datenquellen- als auch für Zielprojekte Storage Admin
roles/storage.admin
sowohl für Datenquellen- als auch für Zielprojekte oder einen speziellen Storage-Bucket UPDM-Dienstkonto Zweck Das UPDM-Dienstkonto wird zum Ausführen des übereinstimmenden Jobs verwendet. Formatieren service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
Erforderlicher Zugriff BigQuery Data Viewer
roles/bigquery.dataViewer
für das Projekt Destination BigQuery Job User
roles/bigquery.jobUser
für das Projekt Destination Cloud Storage
Datafusion-Dienstkonto Zweck Mit dem Datafusion-Dienstkonto wird eine Liste von Quellfeldern in der Ads Data Hub-UI angezeigt. Formatieren service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
Erforderlicher Zugriff Storage Object Viewer
roles/storage.objectViewer
für bestimmte Storage-Buckets im Projekt Datenquelle BigQuery Data Viewer
roles/bigquery.dataViewer
für das Projekt Datenquelle oder einen dedizierten Storage-Bucket Storage Admin
roles/storage.admin
für das Projekt Datenquelle oder einen dedizierten Storage-Bucket Dataproc-Dienstkonto Zweck Das Dataproc-Dienstkonto ist für die Ausführung der Datenpipelines im Hintergrund verantwortlich. Formatieren some-number-compute@developer.gserviceaccount.com
Erforderlicher Zugriff Storage Admin
roles/storage.admin
sowohl für Datenquellen- als auch für Zielprojekte oder einen speziellen Storage-Bucket BigQuery Job User
roles/bigquery.jobUser
für das Projekt Destination UPDM-Dienstkonto Zweck Das UPDM-Dienstkonto wird zum Ausführen des übereinstimmenden Jobs verwendet. Formatieren service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
Erforderlicher Zugriff BigQuery Data Viewer
roles/bigquery.dataViewer
für das Projekt Destination BigQuery Job User
roles/bigquery.jobUser
für das Projekt Destination Salesforce
Bald verfügbar
Selbst erhobene Daten aufnehmen
Eingabedaten formatieren
Ihre Daten müssen diesen Formatierungsanforderungen entsprechen, damit sie richtig zugeordnet werden können:
- Wenn angegeben, müssen Sie den Upload mit SHA256-Hashing vornehmen, das als Base16-String codiert ist. UPDM unterstützt zwar Base64, dies unterscheidet sich jedoch von den Google Ads-Richtlinien für den Kundenabgleich.
- Eingabefelder müssen als Strings formatiert werden. Wenn Sie die SHA256-Hash-Funktion von BigQuery und die Base16-Codierungsfunktion (TO_HEX) verwenden, verwenden Sie die folgende Transformation:
TO_HEX(SHA256(user_data))
.
oder User-ID
- Nur Text
- Hashing: keine Angabe
E-Mail-Adresse
- Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Geben Sie einen Domainnamen für alle E-Mail-Adressen an, z. B. gmail.com oder hotmail.de
- Akzente entfernen, z. B. è, é, ê oder ë in e ändern
- Hashing: Base16-codierter SHA256
Gültig: TO_HEX(SHA256("jeffersonloveshiking@gmail.com"))
Ungültig:TO_HEX(SHA256("JéffersonLôvesHiking@gmail.com"))
Phone
- Leerzeichen entfernen
- Format im E.164-Format, z. B. +14155552671, +442071838750 im Vereinigten Königreich
- Ländercode angeben (einschließlich USA)
- Entfernen Sie alle Sonderzeichen außer „+"“ vor dem Ländercode.
- Hashing: Base16-codierter SHA256
Gültig: TO_HEX(SHA256("+18005550101"))
Ungültig:TO_HEX(SHA256("(800) 555-0101"))
Vorname
- Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Entfernen Sie alle Präfixe, z. B. „Frau“.
- Nicht entfernen, z. B. è, é, ê oder ë
- Hashing: Base16-codierter SHA256
Gültig: TO_HEX(SHA256("daní"))
Ungültig:TO_HEX(SHA256("Daní"))
Nachname
- Leerzeichen entfernen
- Alle Zeichen kleinschreiben
- Entfernen Sie alle Präfixe, z. B. Jr.
- Nicht entfernen, z. B. è, é, ê oder ë
- Hashing: Base16-codierter SHA256
Gültig:TO_HEX(SHA256("delacruz"))
Ungültig:TO_HEX(SHA256("de 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 die Ländercodes gemäß ISO 3166-1 alpha-2.
- Hashing: keine Angabe
Gültig:US
Ungültig: United States of America
oder USA
Postleitzahl:
- Postleitzahlendaten nicht hashen
- Sowohl US-amerikanische als auch internationale Postleitzahlen sind zulässig
- Für die USA:
- 5-stellige Codes sind zulässig, z. B. 94043
- 5 Ziffern, gefolgt von einer 4-stelligen Erweiterung, sind ebenfalls zulässig, z. B. 94043-1351 oder 940431351
- Für alle anderen Länder:
- Keine Formatierung erforderlich (keine Kleinschreibung oder Leerzeichen und Sonderzeichen)
- Lassen Sie Postleitzahlerweiterungen weg
- Hashing: keine Angabe
Hash-Validierung und Datencodierung
Mit den folgenden Hash-Validierungsskripts können Sie dafür sorgen, dass Ihre Daten korrekt formatiert sind.
JavaScript
Sockel 16
/**
* @fileoverview Provides the hashing algorithm for User-Provided Data Match, as
* well as some valid hashes of sample data for testing.
*/
async function hash(token) {
const formattedToken = token.trim().toLowerCase();
const hashArrayBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
return Array.from(new Uint8Array(hashArrayBuffer))
.map((b) => b.toString(16).padStart(2, '0'))
.join('');
}
function main() {
// Expected hash for test@gmail.com:
// 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
hash('test@gmail.com').then(result => console.log(result));
// Expected hash for +18005551212:
// 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
hash('+18005551212').then(result => console.log(result));
// Expected hash for John:
// 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
hash('John').then(result => console.log(result));
// Expected hash for Doe:
// 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
hash('Doe').then(result => console.log(result));
}
main()
Base64
/**
* @fileoverview Provides the hashing algorithm, as well as some valid hashes of
* sample data for testing.
*/
async function hash(token) {
const formattedToken = token.trim().toLowerCase();
const hashBuffer = await crypto.subtle.digest(
'SHA-256', (new TextEncoder()).encode(formattedToken));
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
Sockel 16
"""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': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
"""
import base64
import hashlib
def updm_hash(token):
return hashlib.sha256(token.strip().lower().encode('utf-8')).hexdigest()
def print_updm_hash(token):
print('Hash: "{}"\t(Token: {})'.format(updm_hash(token), token))
def main():
print_updm_hash('test@gmail.com')
print_updm_hash('+18005551212')
print_updm_hash('John')
print_updm_hash('Doe')
if __name__ == '__main__':
main()
Base64
"""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):
return base64.b64encode(
hashlib.sha256(
token.strip().lower().encode('utf-8')).digest()).decode('utf-8')
def print_hash(token, expected=None):
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():
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()
Einfach loslegen (Go)
Sockel 16
/*
Provides the hashing algorithm, as well as some valid hashes of sample data for testing.
Sample hashes:
- Email 'test@gmail.com': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
*/
package main
import (
"crypto/sha256"
"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 := fmt.Sprintf("%x", 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")
}
Base64
/*
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
Sockel 16
package updm.hashing;
import static java.nio.charset.StandardCharsets.UTF_8;
import com.google.common.base.Ascii;
import com.google.common.hash.Hashing;
/**
* Example of the UPDM hashing algorithm using hex-encoded SHA-256.
*
* <p>This uses the Guava Hashing to generate the hash: https://github.com/google/guava
*
* <p>Sample valid hashes:
*
* <ul>
* <li>Email "test@gmail.com": "87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674"
* <li>Phone "+18005551212": "61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44"
* <li>First name "John": "96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a"
* <li>Last name "Doe": "799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f"
* </ul>
*/
public final class HashExample {
private HashExample() {}
public static String hash(String token) {
String formattedToken = Ascii.toLowerCase(token).strip();
return Hashing.sha256().hashString(formattedToken, UTF_8).toString();
}
public static void printHash(String token) {
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
Base64
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) {
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) {
System.out.printf("Hash: \"%s\"\t(Token: %s)\n", hash(token), token);
}
public static void main(String[] args) {
printHash("test@gmail.com");
printHash("+18005551212");
printHash("John");
printHash("Doe");
}
}
SQL
Sockel 16
/*
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': 87924606b4131a8aceeeae8868531fbb9712aaa07a5d3a756b26ce0f5d6ca674
- Phone '+18005551212': 61d9111bed3e6d9cfc1bc3b5cb35a402687c4f1546bee061a2bd444fbdd64c44
- First name 'John': 96d9632f363564cc3032521409cf22a852f2032eec099ed5967c0d000cec607a
- Last name 'Doe': 799ef92a11af918e3fb741df42934f3b568ed2d93ac1df74f1b8d41a27932a6f
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
*/
CREATE TABLE `your_project_name.your_dataset_name.output_hashed_table_name`
AS
SELECT
UserID,
TO_HEX(SHA256(LOWER(Email))) AS Email,
TO_HEX(SHA256(Phone)) AS Phone,
TO_HEX(SHA256(LOWER(FirstName))) AS FirstName,
TO_HEX(SHA256(LOWER(LastName))) AS LastName,
PostalCode,
CountryCode,
FROM
`your_project_name.your_dataset_name.input_unhashed_table_name`;
Base64
/*
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
*/
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 der von Nutzern übermittelten Daten sind stärker als andere. Hier ist eine Liste der von Nutzern übermittelten Datenkombinationen, sortiert nach der relativen Stärke:
- E-Mail, Telefonnummer, Adresse (am stärksten)
- Telefonnummer, Adresse
- E-Mail-Adresse, Adresse
- E-Mail, Telefon
- Adresse
- Phone
- E-Mail (schwächste)
Match-Table erstellen
- Klicken Sie auf Verbindungen > Datenabgleich > Verbindung erstellen.
- Wählen Sie eine Datenquelle aus und klicken Sie auf Verbinden. Authentifizieren, wenn Sie dazu aufgefordert werden, und dann auf Weiter klicken.
- Konfigurieren Sie die Datenquelle und klicken Sie auf Weiter:
BigQuery
Wählen Sie die zu importierende BigQuery-Tabelle aus.
Cloud Storage
Geben Sie den gsutil-Dateipfad ein, z. B.
gs://my-bucket/folder/
, und wählen Sie die Formatierung der Datei aus.Salesforce
Bald verfügbar
- Legen Sie das Ziel fest und klicken Sie auf Weiter:
- Wählen Sie ein neues BigQuery-Dataset als Zwischenziel für die Daten aus. Dadurch wird sichergestellt, dass Ihre Daten korrekt formatiert sind.
- Optional: Ändern Sie das Format Ihrer Daten. Transformationen umfassen Rechen-Hash,
klein-/kleingeschriebene Formatierung und Zusammenführen/Aufteilen von Feldern.
- Klicken Sie auf Aktion > > Umwandeln.
- Klicken Sie im Pop-up-Fenster auf Transformation hinzufügen oder Weitere Transformation hinzufügen.
- Wählen Sie im Drop-down-Menü einen Transformationstyp aus und geben Sie die Anforderungen ein.
- Klicken Sie auf Speichern.
- Wählen Sie mindestens einen Join-Schlüssel aus, um die Felder zuzuordnen, die Sie verwenden möchten, und klicken Sie dann auf Weiter.
- Zeitplan festlegen:
- Geben Sie einen Namen für die Verbindung ein.
- Legen Sie eine Häufigkeit fest, die bestimmt, wie oft Daten in das Dataset importiert werden, das Sie im vorherigen Schritt ausgewählt haben. Bei jeder Ausführung werden Daten in der Tabelle destination überschrieben.
- Geben Sie an, wie Konflikte zwischen Nutzer-IDs behandelt werden sollen. Sie können auswählen, ob die vorhandene Übereinstimmung beibehalten oder mit neuen Daten überschrieben werden soll.
- Klicken Sie auf Fertig.
Verbindungsdetails ansehen
Auf der Seite mit den Verbindungsdetails finden Sie Informationen zu den letzten Ausführungen und Fehlern einer bestimmten Verbindung. So rufen Sie Details zu einer bestimmten Verbindung auf:
- Klicken Sie auf Verbindungen > Datenabgleich.
- Klicken Sie auf den Namen der Verbindung, um die zugehörigen Details aufzurufen.
- Sie können jetzt die Details der Verbindung und die letzten Ausführungen sehen. Für jede sind zwei mögliche Fehlertypen zu sehen: Verbindungsebene (Verbindung wurde nicht ausgeführt) und Zeilenfehler (Zeile wurde nicht importiert).
- Der Status Failed gibt an, dass die gesamte Verbindung nicht ausgeführt werden konnte (z.B. Problem mit Dienstkontoberechtigung). Klicken Sie auf den Fehlerstatus, um zu sehen, welche Fehler die Verbindung beeinträchtigt haben.
- Der Status Completed (Abgeschlossen) gibt an, dass die Verbindung erfolgreich hergestellt wurde. Es können jedoch trotzdem Fehler auf Zeilenebene vorhanden sein, die durch einen Wert ungleich null in der Spalte „Zeilen mit Fehlern“ gekennzeichnet sind. Klicken Sie auf den Wert, um mehr darüber zu erfahren, welche Datensätze fehlgeschlagen sind.
Verbindung bearbeiten
Das Bearbeiten von Verbindungen wird noch nicht unterstützt. Erstellen Sie zum Ändern einer Verbindung eine neue und löschen Sie dann die alte.
Daten in Ads Data Hub abfragen
Match-Tables abfragen
Wenn Ihre Match-Tables genügend Daten enthalten, um die Datenschutzprüfungen zu erfüllen, können Sie Abfragen für die Tabellen ausführen. Zu jeder Tabelle im Ads Data Hub-Schema, die ein user_id
-Feld enthält, ist eine *_match
-Tabelle enthalten. Für die Tabelle adh.google_ads_impressions
generiert Ads Data Hub beispielsweise eine Match-Table namens adh.google_ads_impressions_match
, die nur User-IDs enthält. Diese Tabellen enthalten eine Teilmenge der in den ursprünglichen Tabellen verfügbaren Nutzer, bei denen eine Übereinstimmung mit user_id
besteht. Wenn die ursprüngliche Tabelle beispielsweise Daten für Nutzer A und Nutzer B enthält, aber nur Nutzer A zugeordnet wird, ist Nutzer B nicht in der Match-Table enthalten.
Die Match-Tables enthalten die zusätzliche Spalte external_cookie
, in der Ihr Cookie als BYTES gespeichert wird.
Das Feld „external_cookie“ enthält Ihre ID als „CPD“. Für erfolgreiche Übereinstimmungen müssen Sie Ihren Join-Schlüssel in BYTES umwandeln.
JOIN ON
google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
Verwenden Sie Match-Tables, indem Sie *_match
-Ansichten von Anzeigenereignistabellen abfragen. Wenn Sie auch den Cookie-Abgleich verwenden, können Sie in Ihren Abfragen nach einer Keyword-Option filtern.
Verwenden Sie:
match_type = 1
für Cookie-Abgleichmatch_type = 2
für den Abgleich von Nutzerangaben
Obwohl match_type
in Abfragen zulässig ist, kann dieses Feld nicht in den Ergebnissen zurückgegeben werden. Sie sollten es daher nicht in die endgültige SELECT
-Anweisung aufnehmen.
Beispielabfragen
Anzahl der übereinstimmenden Nutzer
Diese Abfrage zählt die Anzahl der übereinstimmenden Nutzer in der Google Ads-Tabelle mit Impressionen.
/* Count matched users in Google Ads impressions table */
SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_match
Anzahl der von Nutzern übermittelten Daten zählen
Bei dieser Abfrage wird die Anzahl der übereinstimmenden Nutzer nach Keyword-Option gezählt. Da Tabellen zu Anzeigenereignissen Ereignisse von angemeldeten und nicht angemeldeten Nutzern enthalten, werden bei der Filterung nach vom Nutzer bereitgestellten Datenabgleichen nur angemeldete Nutzer abgeglichen.
/* Count user-provided data matched users by match type.
match_type = 1 for cookie matching
match_type = 2 for user-provided data matching */
SELECT
match_type AS match_type,
COUNT(DISTINCT user_id) AS user_cnt,
FROM
adh.google_ads_impressions_match
GROUP BY
match_type
Diese Abfrage zeigt, wie Sie selbst erhobene Daten mit Google Ads-Daten zusammenführen:
/* Join first-party data with Google Ads data. The external_cookie 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_match AS google_data_imp
LEFT JOIN
`my_data`
ON
google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
-- Uncomment the following line if cookie matching is enabled as well.
-- WHERE google_data_imp.match_type = 2
GROUP BY
inventory_type
Mit dieser Abfrage wird die Anzahl der Nutzer abgeglichen, die mit von Nutzern übermittelten Daten abgeglichen wurden. Davon ausgenommen sind Nutzer, die mit Cookie abgeglichen wurden. Beachten Sie, dass Anzeigenereignistabellen Ereignisse sowohl von angemeldeten als auch nicht angemeldeten Nutzern enthalten. Wenn Sie also nur nach von Nutzern übermittelten Daten filtern, werden nur angemeldete Nutzer abgeglichen.
/* Count user-provided data matched users, excluding cookie matched users. */
SELECT
COUNT(DISTINCT user_id)
FROM
adh.google_ads_impressions_match
WHERE
match_type = 2
Zwischenmenschliche Kontakte
Um wertvolle Werbeinformationen zu gewinnen, müssen häufig Daten aus mehreren Quellen kombiniert werden. Eine eigene Lösung für dieses Datenpipeline-Problem zu erstellen, erfordert einen erheblichen Zeit- und Technikaufwand. Verbindungen vereinfachen diesen Prozess durch das Bereitstellen einer Schritt-für-Schritt-Anleitung zum Importieren, Transformieren und Schreiben von Daten in BigQuery. Nachdem Sie Ihre Daten geschrieben haben, können Sie sie in Ihren Ads Data Hub-Abfragen oder in anderen Produkten verwenden, die aus BigQuery lesen. Wenn Sie Ihre Abfragen mit selbst erhobenen Daten anreichern, können Sie die Kundenzufriedenheit erhöhen und branchenweite Änderungen beim Anzeigen-Tracking verhindern.
Darüber hinaus sind Verbindungen so konzipiert, dass Sie personenidentifizierbare Informationen verschlüsseln und mit Partnern auf datenschutzkonforme Weise teilen können. Nachdem Sie die Spalten ausgewählt haben, die personenidentifizierbare Informationen enthalten, werden die Daten durch Verbindungen verschlüsselt. So können Ihre selbst erhobenen Daten nur von Personen exportiert oder gelesen werden, die dazu berechtigt sind.
Mit „Verbindungen“ können Sie Daten aus folgenden Quellen importieren:
- BigQuery
- Cloud Storage
- Salesforce (bald verfügbar)
Es kann schwierig sein, zu bestimmen, welche eigenen Daten für Ihre Messung oder Aktivierung erforderlich sind. Daher bietet Connections eine umfassende Liste von vordefinierten Anwendungsfällen und führt Sie dann durch das Extrahieren, Transformieren und Laden Ihrer Daten.
Unterschiede zwischen selbst erhobenen Daten und Datenabgleichen
Der Workflow zum Konfigurieren einer vom Nutzer bereitgestellten Match-Table ähnelt dem Erstellen einer normalen eigenen Datenverbindung über Verbindungen. In der Anforderung an zwei Projekte wird jedoch davon ausgegangen, dass Sie Verbindungen einrichten, bevor Sie den von Nutzern übermittelten Datenabgleich verwenden. Wenn Sie „Connections“ nur als Datenvorbereitungstool verwenden, können Sie ein einzelnes Google Cloud-Projekt verwenden.
Zusätzliche Anforderungen für den Abgleich von Nutzerangaben:
- Sie müssen E-Mail-Adresse, Telefonnummer, Adresse oder eine beliebige Kombination als Join-Schlüssel verwenden.
- Sie müssen angeben, wie Konflikte zwischen Nutzer-IDs gelöst werden. Sie können auswählen, ob die vorhandene Übereinstimmung beibehalten oder mit neuen Daten überschrieben werden soll.
- Sie müssen zusätzlich zu den Datafusion- und Dataproc-Konten ein UPDM-Dienstkonto verwenden.
Workflow für selbst erhobene Daten
Verbindung herstellen
- Klicken Sie auf Connections (Verbindungen) gt. Ihre eigenen Daten > Connection erstellen.
- Verbindung zu einer Datenquelle herstellen. Sie werden zur Authentifizierung aufgefordert.
BigQuery
Berechtigungen basieren auf Ihrem Google-Konto, daher ist keine zusätzliche Authentifizierung erforderlich. Achten Sie darauf, dass die Connections-Dienstkonten Lesezugriff auf die Tabelle haben.
Cloud Storage
Berechtigungen basieren auf Ihrem Google-Konto, daher ist keine zusätzliche Authentifizierung erforderlich. Achten Sie darauf, dass die Connections-Dienstkonten Lesezugriff auf den Storage-Bucket haben.
Salesforce
(Demnächst verfügbar)
Verwenden Sie die Salesforce-Anmeldedaten Ihrer Organisation, um sich anzumelden. Google speichert Ihre Anmeldedaten nicht. Daher ist für jede neue Salesforce-Verbindung eine erneute Authentifizierung erforderlich.
- Wählen Sie einen Anwendungsfall und einen Join-Schlüssel aus und klicken Sie dann auf Anwendungsfall auswählen. Wenn Sie keinen Anwendungsfall auswählen möchten, klicken Sie auf Überspringen. Sie können später keinen Anwendungsfall mehr auswählen.
- Konfigurieren Sie die Datenquelle.
BigQuery
Wählen Sie die zu importierende BigQuery-Tabelle aus.
Cloud Storage
Geben Sie den gsutil-Dateipfad ein, z. B.
gs://my-bucket/folder/
, und wählen Sie die Formatierung der Datei aus.Salesforce
Bald verfügbar
- Konfigurieren Sie das Ziel und die Kartenfelder.
- Wählen Sie das Google Cloud-Projekt, das Dataset und die Tabelle aus, in die Sie die Ergebnisse schreiben möchten. Achten Sie darauf, dass die Connections-Dienstkonten Schreibzugriff auf das Dataset haben, in das Sie schreiben werden.
- Für jede Verbindung wird eine neue Tabelle zum Schreiben erstellt. Wenn Sie eine Tabelle auswählen, die bereits vorhanden ist, wird ein Fehler angezeigt.
- Ordnen Sie die Zielfelder (Felder, die in der zu erstellenden Tabelle enthalten sind) den Quellfeldern in den Quelldaten zu.
- Zeitplan festlegen.
- Geben Sie einen Namen für die Verbindung ein.
- Legen Sie eine Häufigkeit fest, die bestimmt, wie oft Daten in das Dataset importiert werden, das Sie im vorherigen Schritt ausgewählt haben. Bei jeder Ausführung werden Daten in der Tabelle destination überschrieben.
- Tippen Sie auf Fertig. Die Verarbeitung von Verbindungen, die große Datenmengen verarbeiten, kann mehrere Stunden dauern.
Verbindungsdetails ansehen
Auf der Seite mit den Verbindungsdetails finden Sie Informationen zu den letzten Ausführungen und Fehlern einer bestimmten Verbindung. So rufen Sie Details zu einer bestimmten Verbindung auf:
- Klicken Sie auf Connections (Verbindungen) Ihre eigenen Daten.
- Klicken Sie auf den Namen der Verbindung, um die zugehörigen Details aufzurufen.
- Sie können jetzt die Details der Verbindung und die letzten Ausführungen sehen. Für jede sind zwei mögliche Fehlertypen zu sehen: Verbindungsebene (Verbindung wurde nicht ausgeführt) und Zeilenfehler (Zeile wurde nicht importiert).
- Der Status Failed gibt an, dass die gesamte Verbindung nicht ausgeführt werden konnte (z.B. Problem mit Dienstkontoberechtigung). Klicken Sie auf den Fehlerstatus, um zu sehen, welche Fehler die Verbindung beeinträchtigt haben.
- Der Status Completed (Abgeschlossen) gibt an, dass die Verbindung erfolgreich hergestellt wurde. Es können jedoch trotzdem Fehler auf Zeilenebene vorhanden sein, die durch einen Wert ungleich null in der Spalte „Zeilen mit Fehlern“ gekennzeichnet sind. Klicken Sie auf den Wert, um mehr darüber zu erfahren, welche Datensätze fehlgeschlagen sind.
Verbindung bearbeiten
Das Bearbeiten von Verbindungen wird noch nicht unterstützt. Erstellen Sie zum Ändern einer Verbindung eine neue und löschen Sie die alte.
Anwendungsfälle
Der ausgewählte Anwendungsfall wirkt sich auf das Zieltabellenschema und die importierten Join-Schlüsselfelder aus. Maximieren Sie die folgenden Anwendungsfälle, um zu erfahren, wie sie sich auf das Schema und die Join-Schlüssel auswirken:
Reichweite und Häufigkeit
Reichweite und Häufigkeit von Kampagnen kanal- und geräteübergreifend messen, aufgeschlüsselt nach Ihren Nutzersegmenten
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
transaction_id | Eindeutige ID für diese Transaktion | String | Optional |
transaction_date | Transaktionsdatum (Unixzeitstempel) | int | Optional |
Transaktionsumsatz | Umsatz aus der Transaktion | int | Optional |
currency | Währungsart der Transaktion | String | Optional |
quantity | Menge der Artikel in der Transaktion | String | Optional |
Preis | Preis pro Artikel in der Transaktion | int | Optional |
Transaktionskosten | Herstellungs- oder Herstellungskosten der Transaktion | int | Optional |
Transaktion_Gewinn | Bruttogewinn aus der Transaktion | int | Optional |
product_id | SKU / ID des Produkts bzw. der Produkte in der Transaktion | String | Optional |
Transaktionsbeschreibung | Andere Beschreibung / Metadaten / Parameter zur Transaktion | String | Optional |
Ereignistyp | z. B. TV-Anzeigenimpressionen, Marketing-E-Mails, Websitebesuche oder Ladenbesuche | String | Optional |
Ereignis-ID | Eindeutige ID des Ereignisses oben | String | Optional |
event_timestamp | Datum des Ereignisses (UNIX-Zeitstempel) | int | Optional |
Kanalmetadaten | Zusätzliche Metadaten oder Informationen zu diesem Touchpoint-Kanal | String | Optional |
Multi-Touchpoint-Attribution
Messen Sie die Attribution, indem Sie eigene Touchpoints mit Touchpoints aus Google-Daten kombinieren.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
Ereignistyp | z. B. TV-Anzeigenimpressionen, Marketing-E-Mails, Websitebesuche oder Ladenbesuche | String | Required |
Ereignis-ID | Eindeutige ID des Ereignisses oben | String | Required |
event_timestamp | Datum des Ereignisses (UNIX-Zeitstempel) | int | Required |
Guthaben | Guthabenwert (für die Attribution) – z.B. Anzahl der Conversions | int | Optional |
Kanalmetadaten | Zusätzliche Metadaten oder Informationen zu diesem Touchpoint-Kanal | String | Optional |
Leistungsmesswerte
Messen Sie die Kampagnenleistung aufgeschlüsselt nach demografischen Merkmalen, gemeinsamen Interessen oder eigenen Nutzersegmenten.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
Path to Conversion-Attribution
Analysieren Sie die Leistung von Conversion-Pfaden mit benutzerdefinierten Touchpoints, einschließlich Ihrer eigenen Touchpoints.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
Ereignistyp | z. B. TV-Anzeigenimpressionen, Marketing-E-Mails, Websitebesuche oder Ladenbesuche | String | Required |
Ereignis-ID | Eindeutige ID des Ereignisses oben | String | Required |
event_timestamp | Datum des Ereignisses (UNIX-Zeitstempel) | int | Required |
Guthaben | Guthabenwert (für die Attribution) – z.B. Anzahl der Conversions | int | Optional |
Kanalmetadaten | Zusätzliche Metadaten oder Informationen zu diesem Touchpoint-Kanal | String | Optional |
Publisher-übergreifende Überschneidung
Analysieren Sie Reichweite und Häufigkeit von Kampagnen, aufgeschlüsselt nach Ihren Nutzersegmenten.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
Gleichzeitige Kampagnenleistung
Messen Sie die Auswirkung der Anzeigenpräsenz auf parallele Kampagnen, aufgeschlüsselt nach Ihren Nutzersegmenten mit selbst erhobenen Daten.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
transaction_id | Eindeutige ID für diese Transaktion | String | Optional |
transaction_date | Transaktionsdatum (Unixzeitstempel) | int | Optional |
Transaktionsumsatz | Umsatz aus der Transaktion | int | Optional |
currency | Währungsart der Transaktion | String | Optional |
quantity | Menge der Artikel in der Transaktion | String | Optional |
Preis | Preis pro Artikel in der Transaktion | int | Optional |
Transaktionskosten | Herstellungs- oder Herstellungskosten der Transaktion | int | Optional |
Transaktion_Gewinn | Bruttogewinn aus der Transaktion | int | Optional |
product_id | SKU / ID des Produkts bzw. der Produkte in der Transaktion | String | Optional |
Transaktionsbeschreibung | Andere Beschreibung / Metadaten / Parameter zur Transaktion | String | Optional |
Ereignistyp | z. B. TV-Anzeigenimpressionen, Marketing-E-Mails, Websitebesuche oder Ladenbesuche | String | Optional |
Ereignis-ID | Eindeutige ID des Ereignisses oben | String | Optional |
event_timestamp | Datum des Ereignisses (UNIX-Zeitstempel) | int | Optional |
Kanalmetadaten | Zusätzliche Metadaten oder Informationen zu diesem Touchpoint-Kanal | String | Optional |
Kampagnenvergleich
Die Leistung verschiedener Google-Kampagnen mit denen anderer Publisher vergleichen
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
Kanal- | Kanal, in dem diese Kampagne lief (z. B. Facebook oder TV) | String | Required |
Partner | Name des Partners, falls beteiligt | String | Optional |
Taktik | Name einer bestimmten Taktik | String | Optional |
Kampagnenmetadaten | Zusätzliche Metadaten oder Informationen zu dieser Kampagne | String | Optional |
date | Datum der Kampagnenaktivität (UNIX-Zeitstempel) | int | Required |
impressions | Anzahl der Impressionen dieser Kampagne an diesem Tag | int | Required |
clicks | Anzahl der Klicks aus dieser Kampagne an diesem Tag | int | Required |
Conversions | Anzahl der Conversions aus dieser Kampagne an diesem Datum | int | Required |
cost | Gesamtkosten dieser Kampagne an diesem Datum | int | Required |
Vergleich von „Zielgruppe mit gemeinsamen Interessen“ und „Label“
Ermitteln Sie Überschneidungen Ihrer eigenen Nutzersegmente mit den Google-Segmenten mit gemeinsamen Interessen und kaufbereiten Zielgruppen.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
App-Conversion-Analyse
Auswirkungen der Kampagne auf das In-App-Verhalten messen
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
date | Datum der Aktivität in der mobilen App (UNIX-Epochenzeitstempel) | int | Required |
installieren | Boolescher Wert, der angibt, ob an diesem Tag ein Installationsereignis protokolliert wurde | boolean | Required |
Registrierung | Boolescher Wert, der angibt, ob ein Registrierungsereignis an diesem Tag protokolliert wurde | boolean | Required |
login | Boolescher Wert, der angibt, ob an diesem Tag ein Anmeldeereignis protokolliert wurde | boolean | Required |
In-App-Käufe | Gesamtzahl der In-App-Käufe an diesem Tag | int | Required |
ROI-Berechnung
Erfassen Sie inkrementelle Erträge basierend auf Ihren eigenen Conversion-Daten.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
transaction_id | Eindeutige ID für diese Transaktion | String | Required |
transaction_date | Transaktionsdatum (Unixzeitstempel) | int | Required |
Transaktionsumsatz | Umsatz aus der Transaktion | int | Required |
currency | Währungsart der Transaktion | String | Optional |
quantity | Menge der Artikel in der Transaktion | String | Optional |
Preis | Preis pro Artikel in der Transaktion | int | Optional |
Transaktionskosten | Herstellungs- oder Herstellungskosten der Transaktion | int | Optional |
Transaktion_Gewinn | Bruttogewinn aus der Transaktion | int | Optional |
product_id | SKU / ID des Produkts bzw. der Produkte in der Transaktion | String | Optional |
Transaktionsbeschreibung | Andere Beschreibung / Metadaten / Parameter zur Transaktion | String | Optional |
Benutzerdefinierte Zielgruppenaktivierung
Hier werden benutzerdefinierte Nutzersegmente auf Basis selbst erhobener Daten und Daten von Google erstellt und aktiviert
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
Benutzerdefinierte Gebote
Hier werden Display & Video 360-Gebotsstrategien auf Basis selbst erhobener Daten und Daten von Google optimiert
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |
Publisher-übergreifende Leistung
Hier werden Leistungsmesswerte ermittelt. Die Aufschlüsselung erfolgt entweder nach Publisher oder nach Publisher und Ihren Nutzersegmenten aus selbst erhobenen Daten.
Feldname | Beschreibung | Typ | Erforderlich/Optional |
---|---|---|---|
Join-Schlüssel | Änderungen basierend auf dem Join-Schlüssel, den Sie verwenden | String | Required |
gender | Geschlecht | String | Optional |
Alter | Alter | int | Optional |
Ort | Ort | String | Optional |
country | Land | String | Optional |
Lebenszyklusstatus | Status des Kundentrichters: unbekannt, Onboarding, aktiv, nicht mehr aktiv usw. | String | Optional |
treue_status | Silber, Gold, Platin, Diamanten usw. | String | Optional |
Datum des letzten Kaufs | Datum des letzten Kaufs (Unixzeitstempel) | int | Optional |
letztes_Kaufprodukt | Zuletzt gekauftes / konsumiertes Produkt | String | Optional |
Zuletzt_kontaktiert_Datum | Datum des letzten Kontakts / der letzten Interaktion (UNIX-Epochenzeitstempel) | int | Optional |
LTV | Kunden-LTV | int | Optional |
Abotyp | Unterprodukt / Abotyp eines Kunden – z.B. Deluxe oder Familientarif | String | Optional |