Von Nutzern übermittelte Daten abgleichen

Ü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:

  1. 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.
  2. 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.

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.

  1. Senden Sie Ihren Google-Ansprechpartner:
    1. Die Ads Data Hub-Konto-ID, die Sie für den Abgleich der von Nutzern übermittelten Daten verwenden.
    2. Die E-Mail-Adresse des Superusers, die Zugriff auf Ihr Zielprojekt hat.
    3. Erkundigen Sie sich bei Ihrem Google-Ansprechpartner, ob das Konto und der Superuser auf der Zulassungsliste sind.
  2. 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.

    1. Rufen Sie die API-Bibliothek der Cloud Console auf.
    2. Wählen Sie das Datenquellenprojekt aus der Liste aus.
    3. 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.
    4. Klicken Sie auf der API-Seite auf AKTIVIEREN.
    5. Lassen Sie sich von Ihrem Google-Ansprechpartner bestätigen, dass die API aktiviert ist.
  3. 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

  4. 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:

  1. E-Mail, Telefonnummer, Adresse (am stärksten)
  2. Telefonnummer, Adresse
  3. E-Mail-Adresse, Adresse
  4. E-Mail, Telefon
  5. Adresse
  6. Phone
  7. E-Mail (schwächste)

Match-Table erstellen

  1. Klicken Sie auf Verbindungen > Datenabgleich > Verbindung erstellen.
  2. Wählen Sie eine Datenquelle aus und klicken Sie auf Verbinden. Authentifizieren, wenn Sie dazu aufgefordert werden, und dann auf Weiter klicken.
  3. 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

  4. Legen Sie das Ziel fest und klicken Sie auf Weiter:
    1. Wählen Sie ein neues BigQuery-Dataset als Zwischenziel für die Daten aus. Dadurch wird sichergestellt, dass Ihre Daten korrekt formatiert sind.
  5. Optional: Ändern Sie das Format Ihrer Daten. Transformationen umfassen Rechen-Hash, klein-/kleingeschriebene Formatierung und Zusammenführen/Aufteilen von Feldern.
    1. Klicken Sie auf Aktion > > Umwandeln.
    2. Klicken Sie im Pop-up-Fenster auf Transformation hinzufügen oder Weitere Transformation hinzufügen.
    3. Wählen Sie im Drop-down-Menü einen Transformationstyp aus und geben Sie die Anforderungen ein.
    4. Klicken Sie auf Speichern.
  6. Wählen Sie mindestens einen Join-Schlüssel aus, um die Felder zuzuordnen, die Sie verwenden möchten, und klicken Sie dann auf Weiter.
  7. Zeitplan festlegen:
    1. Geben Sie einen Namen für die Verbindung ein.
    2. 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.
    3. 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.
  8. 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:

  1. Klicken Sie auf Verbindungen > Datenabgleich.
  2. Klicken Sie auf den Namen der Verbindung, um die zugehörigen Details aufzurufen.
  3. 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).
    1. 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.
    2. 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-Abgleich
  • match_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:

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

  1. Klicken Sie auf Connections (Verbindungen) gt. Ihre eigenen Daten > Connection erstellen.
  2. 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.

  3. 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.
  4. 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

  5. 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.
  6. Zeitplan festlegen.
    1. Geben Sie einen Namen für die Verbindung ein.
    2. 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.
  7. 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:

  1. Klicken Sie auf Connections (Verbindungen) Ihre eigenen Daten.
  2. Klicken Sie auf den Namen der Verbindung, um die zugehörigen Details aufzurufen.
  3. 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).
    1. 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.
    2. 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