Présentation
La fonctionnalité de mise en correspondance des données fournies par l'utilisateur associe les données first party que vous avez collectées à propos d'un utilisateur, telles que les informations provenant de vos sites Web, de vos applications ou de vos magasins physiques, avec l'activité de l'utilisateur connecté dans les données des annonces Google, à l'exclusion de Google Marketing Platform. Pour pouvoir être mis en correspondance avec des données fournies par l'utilisateur, l'événement d'annonce doit être associé à un utilisateur connecté dans les données d'annonces Google.
La mise en correspondance des données fournies par l'utilisateur présente des avantages uniques par rapport aux autres formes de correspondance des clients. Mise en correspondance des données fournies par l'utilisateur:
- Il résiste mieux aux changements du secteur que les données tierces
- Ne sera pas affectée par l'abandon à venir des cookies tiers, car la mise en correspondance des données fournies par les utilisateurs n'est disponible que dans l'inventaire détenu et géré par Google, pour les utilisateurs connectés
- Proposer des expériences client plus pertinentes, ce qui entraîne souvent un engagement client plus élevé
- Fournit des insights client plus complets
Résumé du processus
Une fois que vous avez activé la mise en correspondance des données fournies par l'utilisateur dans votre compte, vous devez suivre deux étapes pour continuer à utiliser la fonctionnalité:
- Ingestion de données first party dans Ads Data Hub
- Vous formatez et importez vos données first party dans votre ensemble de données BigQuery. Vous pouvez utiliser n'importe quel ensemble de données BigQuery autre que votre projet administrateur.
- Vous lancez une requête de mise en correspondance des données en créant une connexion et un calendrier d'importation.
- Google associe les données de votre projet aux données Google contenant l'ID utilisateur de Google et les données hachées fournies par les utilisateurs pour créer et mettre à jour des tables
*_match
.
- Requêtes en cours dans Ads Data Hub, en fonction des données correspondantes
- Vous exécutez des requêtes sur les tables
*_match
de la même manière que vous exécutez des requêtes standards dans Ads Data Hub.
- Vous exécutez des requêtes sur les tables
Projets de source de données et de destination
Les connexions nécessitent d'utiliser deux projets Google Cloud différents: un projet de source de données et un projet de destination.
- Source des données: ce projet contient vos données publicitaires propriétaires dans leur format brut.
- Destination: ensemble de données BigQuery dans lequel Ads Data Hub écrit. Par défaut, il s'agit de votre projet administrateur. Pour savoir comment passer à un autre projet Google Cloud, consultez Configurer des comptes de service.
Restrictions de confidentialité
Collecte des données client
Lorsque vous utilisez la mise en correspondance des données fournies par l'utilisateur, vous devez importer des données first party. Il peut s'agir d'informations que vous avez collectées à partir de vos sites Web, d'applications ou de magasins physiques, ou d'informations qu'un client a partagées directement avec vous.
Taille des données
Pour protéger la confidentialité des données des utilisateurs finaux, la mise en correspondance des données fournies par l'utilisateur applique les exigences suivantes concernant la taille de vos données:
- Vous devez importer au moins 1 000 enregistrements dans votre liste d'utilisateurs.
- Chaque mise à jour du tableau de correspondance doit inclure un nombre minimal d'utilisateurs nouvellement mis en correspondance. Ce comportement est semblable à la vérification des différences.
- Votre liste ne doit pas dépasser le nombre maximal d'enregistrements. Pour en savoir plus sur la limite de données maximale, contactez votre représentant Google.
Activer l'onglet "Connexions"
Avant de commencer, configurez votre compte Ads Data Hub pour activer l'onglet Connections (Connexions), dans lequel vous établirez votre pipeline de mise en correspondance des données. Vous n'aurez à effectuer ces étapes qu'une seule fois.
- Envoyez votre représentant Google :
- ID de compte Ads Data Hub que vous utiliserez pour mettre en correspondance les données fournies par l'utilisateur.
- Adresse e-mail du super-utilisateur ayant accès à votre projet Destination.
- Vérifiez auprès de votre représentant Google que le compte et le super-utilisateur sont sur la liste d'autorisation.
Activez l'API Ads Data Connector dans le projet Google Cloud désigné. Par défaut, il s'agit de votre projet d'administration. Pour utiliser un autre projet, procédez comme suit avec l'autre projet Google Cloud en tant que projet de source de données. Ces étapes doivent être effectuées en étant connecté en tant que super-utilisateur sur la liste d'autorisation.
- Accédez à la bibliothèque d'API Cloud Console.
- Sélectionnez votre projet de source de données dans la liste.
- Recherchez l'API Ads Data Connector. Si l'API Ads Data Connector ne s'affiche pas dans les résultats de recherche, cela peut indiquer que le compte Google connecté n'est pas le super-utilisateur ajouté à la liste d'autorisation.
- Sur la page de l'API, cliquez sur ACTIVER.
- Vérifiez auprès de votre représentant Google que l'API est activée.
Votre représentant Google vous enverra trois adresses e-mail, désignées comme comptes de service Datafusion, Dataproc et UPDM.
Une nouvelle section Connexions s'affichera également dans votre compte Ads Data Hub, contenant les onglets Vos données first party et Correspondance des données. Découvrez les cas d'utilisation de chaque onglet.
Accordez les autorisations appropriées aux comptes de service. Pour obtenir une explication des différents comptes de service et de leurs autorisations requises, sélectionnez votre source de données dans le tableau:
BigQuery
Compte de service Datafusion Objectif Le compte de service Datafusion permet d'afficher une liste des champs sources dans l'interface utilisateur Ads Data Hub. Format service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
Accès requis BigQuery Data Viewer
roles/bigquery.dataViewer
Pour des ensembles de données spécifiques dans les projets de source de données et de destination Storage Admin
roles/storage.admin
pour le projet Source de données ou un bucket de stockage dédié Compte de service Dataproc Objectif Le compte de service Dataproc est chargé d'exécuter les pipelines de données en arrière-plan. Format some-number-compute@developer.gserviceaccount.com
Accès requis BigQuery Data Viewer
roles/bigquery.dataViewer
Pour des ensembles de données spécifiques dans les projets de source de données et de destination BigQuery Data Editor
roles/bigquery.dataEditor
pour des ensembles de données spécifiques du projet Destination BigQuery Job User
roles/bigquery.jobUser
pour les projets de source de données et de destination Storage Admin
roles/storage.admin
pour les projets de source de données et de destination, ou d'un bucket de stockage dédié Compte de service UPDM Objectif Le compte de service UPDM permet d'exécuter la tâche correspondante. Format service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
Accès requis BigQuery Data Viewer
roles/bigquery.dataViewer
pour le projet Destination BigQuery Job User
roles/bigquery.jobUser
pour le projet Destination Cloud Storage
Compte de service Datafusion Objectif Le compte de service Datafusion permet d'afficher une liste des champs sources dans l'interface utilisateur Ads Data Hub. Format service-some-number@gcp-sa-datafusion.iam.gserviceaccount.com
Accès requis Storage Object Viewer
roles/storage.objectViewer
pour des buckets de stockage spécifiques dans le projet Source de données BigQuery Data Viewer
roles/bigquery.dataViewer
pour le projet Source de données ou un bucket de stockage dédié Storage Admin
roles/storage.admin
pour le projet Source de données ou un bucket de stockage dédié Compte de service Dataproc Objectif Le compte de service Dataproc est chargé d'exécuter les pipelines de données en arrière-plan. Format some-number-compute@developer.gserviceaccount.com
Accès requis Storage Admin
roles/storage.admin
pour les projets de source de données et de destination, ou d'un bucket de stockage dédié BigQuery Job User
roles/bigquery.jobUser
pour le projet Destination Compte de service UPDM Objectif Le compte de service UPDM permet d'exécuter la tâche correspondante. Format service-some-number@gcp-sa-adsdataconnector.iam.gserviceaccount.com
Accès requis BigQuery Data Viewer
roles/bigquery.dataViewer
pour le projet Destination BigQuery Job User
roles/bigquery.jobUser
pour le projet Destination Salesforce
bientôt disponible
Ingérer des données first party
Mettre en forme les données d'entrée
Vos données doivent respecter les exigences de mise en forme suivantes pour être correctement mises en correspondance:
- Le cas échéant, vous devez effectuer l'importation à l'aide du hachage SHA256 encodé en tant que chaîne Base16. Bien que le protocole UPDM soit compatible avec Base64, il diffère des consignes sur le ciblage par liste de clients Google Ads.
- Les champs de saisie doivent être mis en forme en tant que chaînes. Si vous utilisez la fonction de hachage SHA256 et la fonction d'encodage Base16 de BigQuery (TO_HEX), utilisez la transformation
TO_HEX(SHA256(user_data))
:
User-ID
- Texte brut
- Hachage: aucun
- Supprimer les espaces blancs
- N'utilisez que des minuscules.
- Incluez un nom de domaine pour chaque adresse e-mail (par exemple, gmail.com ou hotmail.co.jp).
- Supprimez les accents (par exemple, remplacez è, é, ê ou ë par e).
- Hachage: SHA256 encodé en base16
Valide:TO_HEX(SHA256("jeffersonloveshiking@gmail.com"))
Non valide: TO_HEX(SHA256("JéffersonLôvesHiking@gmail.com"))
Phone
- Supprimer les espaces blancs
- Utilisez le format E.164 (par exemple, US +14155552671, Royaume-Uni +442071838750).
- Inclure le code pays (y compris les États-Unis)
- Supprimez tous les caractères spéciaux à l'exception du caractère "+".
- Hachage: SHA256 encodé en base16
Valide : TO_HEX(SHA256("+18005550101"))
Non valide : TO_HEX(SHA256("(800) 555-0101"))
Prénom
- Supprimer les espaces blancs
- N'utilisez que des minuscules.
- Supprimez tous les préfixes, tels que
- Ne supprimez pas les accents (par exemple, è, é, ê ou ë).
- Hachage: SHA256 encodé en base16
Valide : TO_HEX(SHA256("daní"))
Non valide: TO_HEX(SHA256("Daní"))
Nom
- Supprimer les espaces blancs
- N'utilisez que des minuscules.
- Supprimez tous les préfixes, tels que Jr.
- Ne supprimez pas les accents (par exemple, è, é, ê ou ë).
- Hachage: SHA256 encodé en base16
Valide:TO_HEX(SHA256("delacruz"))
Non valide: TO_HEX(SHA256("de la Cruz, Jr."))
Pays
- Incluez le code pays même si toutes vos données client proviennent du même pays.
- Ne hachez pas les données de pays.
- Utilisez les codes pays ISO 3166-1 alpha-2.
- Hachage: aucun
Valide : US
Non valide:United States of America
ou USA
Code postal
- Ne hachez pas les données de code postal.
- Les codes postaux internationaux et ceux des États-Unis sont acceptés.
- États-Unis :
- Les codes à cinq chiffres sont autorisés (94043, par exemple).
- Les codes à cinq chiffres suivis d'une extension de quatre chiffres sont également autorisés (par exemple, 94043-1351 ou 940431351).
- Pour tous les autres pays :
- Aucune mise en forme n'est nécessaire (pas besoin de mettre des minuscules ou des espaces, ni des caractères spéciaux).
- N'indiquez pas l'extension de code postal.
- Hachage: aucun
Validation du hachage et encodage des données
Vous pouvez utiliser les scripts de validation de hachage suivants pour vous assurer que vos données sont correctement formatées.
JavaScript
Base16
/**
* @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
Base16
"""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()
Go
Base16
/*
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
Base16
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
Base16
/*
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`;
Clés de jointure
Certaines combinaisons de données fournies par les utilisateurs sont plus performantes que d'autres. Voici une liste de différentes combinaisons de données fournies par l'utilisateur, classées par niveau d'importance:
- Adresse e-mail, numéro de téléphone, adresse (le plus élevé)
- Téléphone, adresse
- Adresse e-mail, adresse
- Adresse e-mail, numéro de téléphone
- Adresse
- Phone
- Adresse e-mail (la plus faible)
Créer un tableau de correspondance
- Cliquez sur Connexions > ; Correspondance de données > ; Créer une connexion.
- Choisissez une source de données, puis cliquez sur Associer. Authentifiez-vous si vous y êtes invité, puis cliquez sur Suivant.
- Configurez votre source de données, puis cliquez sur Suivant :
BigQuery
Sélectionnez la table BigQuery à importer.
Cloud Storage
Saisissez le chemin d'accès au fichier gsutil, par exemple
gs://my-bucket/folder/
, puis sélectionnez le format de votre fichier.Salesforce
bientôt disponible
- Définissez la destination, puis cliquez sur Next (Suivant) :
- Sélectionnez un nouvel ensemble de données BigQuery à utiliser comme destination intermédiaire pour les données. Cette étape garantit que vos données sont correctement mises en forme.
- Facultatif: Modifiez le format de vos données. Les transformations incluent le hachage de calcul, la mise en forme en minuscules/majuscules et la fusion/division des champs.
- Cliquez sur Action > > Transform.
- Dans le panneau qui s'affiche, cliquez sur Ajouter une transformation ou sur Ajouter une autre transformation.
- Choisissez un type de transformation dans le menu déroulant, puis saisissez les exigences.
- Cliquez sur Enregistrer.
- Choisissez au moins une clé de jointure pour mapper les champs que vous utiliserez, puis cliquez sur Next (Suivant).
- Définissez un calendrier :
- Attribuez un nom à votre connexion.
- Définissez une fréquence en dictant la fréquence d'importation des données dans l'ensemble de données que vous avez sélectionné à l'étape précédente. Chaque exécution écrasera les données de la table destination.
- Indiquez comment vous souhaitez que les conflits d'ID utilisateur soient traités. Vous pouvez choisir de conserver la correspondance existante ou de l'écraser avec de nouvelles données.
- Cliquez sur Terminer.
Afficher les informations sur la connexion
La page des détails de la connexion vous donne des informations sur les exécutions et les erreurs récentes d'une connexion donnée. Pour afficher les détails d'une connexion spécifique:
- Cliquez sur Connexions > ; Mise en correspondance des données.
- Cliquez sur le nom de la connexion pour afficher ses détails.
- Vous pouvez maintenant voir les détails de la connexion et les exécutions récentes. Chacune présente deux types d'erreurs possibles: les erreurs au niveau de la connexion (la connexion n'a pas été exécutée) et les erreurs au niveau des lignes (une ligne n'a pas été importée).
- L'état Failed (Échec) indique que la connexion n'a pas pu être exécutée (problème d'autorisation de compte de service, par exemple). Cliquez sur l'état des erreurs pour voir celles qui ont affecté la connexion.
- L'état Completed (Terminée) indique que la connexion a bien été exécutée. Toutefois, il peut y avoir des erreurs au niveau des lignes, indiquées par une valeur non nulle dans la colonne "Lignes avec erreurs". Cliquez sur la valeur pour en savoir plus sur les enregistrements ayant échoué.
Modifier une connexion
La modification des connexions n'est pas encore disponible. Pour modifier une connexion, créez-en une, puis supprimez l'ancienne.
Interroger les données dans Ads Data Hub
Interroger les tableaux de correspondance
Lorsque vos tableaux de correspondance contiennent suffisamment de données pour répondre aux critères de confidentialité, vous êtes prêt à exécuter des requêtes sur les tableaux. Chaque table du schéma Ads Data Hub contenant un champ user_id
est accompagnée d'une table *_match
. Par exemple, pour le tableau adh.google_ads_impressions
, Ads Data Hub génère également un tableau de correspondance appelé adh.google_ads_impressions_match
qui contient uniquement les ID utilisateur. Ces tables contiennent un sous-ensemble des utilisateurs disponibles dans les tables d'origine, où il existe une correspondance sur user_id
. Par exemple, si la table d'origine contient des données pour les utilisateurs A et B, mais que seul l'utilisateur A correspond, l'utilisateur B ne figurera pas dans le tableau de correspondance.
Les tableaux de correspondance contiennent une colonne supplémentaire appelée external_cookie
, qui stocke vos cookies au format BYTES.
Le champ "external_cookie" contient votre identifiant au format BYTES. Vous devez convertir votre clé de jointure en BYTES pour des correspondances réussies.
JOIN ON
google_data_imp.external_cookie = CAST(my_data.user_id AS BYTES)
Utilisez des tableaux de correspondance en interrogeant les vues *_match
des tableaux d'événements d'annonces. Si vous utilisez également la correspondance des cookies, vous pouvez filtrer par type de correspondance dans vos requêtes.
Utilisez:
match_type = 1
pour la mise en correspondance des cookiesmatch_type = 2
pour la mise en correspondance des données fournies par l'utilisateur
Bien que match_type
soit autorisé dans les requêtes, ce champ ne peut pas être renvoyé dans les résultats. Vous ne devez donc pas l'inclure dans l'instruction finale SELECT
.
Exemples de requêtes
Nombre d'utilisateurs correspondants
Cette requête comptabilise le nombre d'utilisateurs correspondants dans votre tableau des impressions Google Ads.
/* Count matched users in Google Ads impressions table */
SELECT COUNT(DISTINCT user_id)
FROM adh.google_ads_impressions_match
Compter les utilisateurs avec données fournies
Cette requête comptabilise le nombre d'utilisateurs correspondants par type de correspondance. Étant donné que les tables d'événements d'annonces contiennent des événements provenant à la fois des utilisateurs connectés et non connectés, le filtrage sur la mise en correspondance des données fournies par l'utilisateur permettra uniquement d'établir une correspondance avec les utilisateurs connectés.
/* 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
Cette requête montre comment associer des données first party à des données Google Ads:
/* 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
Cette requête comptabilise le nombre d'utilisateurs mis en correspondance en fonction des données fournies par les utilisateurs, à l'exclusion des utilisateurs avec correspondance pour les cookies. N'oubliez pas que les tableaux d'événements d'annonces contiennent des événements provenant à la fois des utilisateurs connectés et non connectés. Par conséquent, si vous filtrez uniquement sur la mise en correspondance des données fournies par les utilisateurs, seuls les utilisateurs connectés seront mis en correspondance.
/* 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
Liens
Pour obtenir des insights publicitaires utiles, il faut souvent assembler des données provenant de plusieurs sources. Créer votre propre solution à ce problème de pipeline de données nécessite un investissement important en temps et en ingénierie. Les connexions rationalisent ce processus en fournissant une interface guidée étape par étape pour importer, transformer et écrire des données dans BigQuery. Après avoir écrit vos données, vous pouvez les utiliser dans vos requêtes Ads Data Hub ou dans tout autre produit lu à partir de BigQuery. En enrichissant vos requêtes avec des données first party, vous pouvez offrir une expérience client plus riche et mieux résister aux changements du suivi des annonces dans l'ensemble du secteur.
En outre, Connections est conçu avec des outils qui vous permettent de chiffrer et de partager des informations personnelles avec les partenaires tout en respectant la confidentialité. Une fois les colonnes contenant des informations personnelles sélectionnées, Connection chiffre les données. Ainsi, vos données first party ne peuvent être exportées ou lues que par les personnes autorisées à le faire.
Vous pouvez utiliser des connexions pour importer des données depuis:
- BigQuery
- Cloud Storage
- Salesforce (bientôt disponible)
Il peut être difficile de savoir quelles données first party sont nécessaires pour votre cas d'utilisation de mesure ou d'activation. C'est pourquoi Connections fournit une liste complète de cas d'utilisation prédéfinis, puis vous guide tout au long de l'expérience (extraction, transformation et chargement) de vos données.
Différences entre vos données first party et la mise en correspondance des données
Le workflow pour configurer un tableau de correspondance fourni par l'utilisateur est semblable à celui permettant de créer une connexion de données first party standard via des connexions. Cependant, pour les exigences à deux projets, vous devez configurer des connexions avant d'utiliser la mise en correspondance des données fournies par l'utilisateur. Si vous n'utilisez que des connexions comme outil de préparation des données, vous ne pouvez utiliser qu'un seul projet Google Cloud.
Exigences supplémentaires pour la mise en correspondance des données fournies par l'utilisateur:
- Vous devez utiliser une adresse e-mail, un numéro de téléphone, une adresse ou n'importe quelle combinaison comme clé d'association.
- Vous devez spécifier le mode de résolution des conflits liés à user_id. Vous pouvez choisir de conserver la correspondance existante ou de l'écraser avec de nouvelles données.
- Vous devez utiliser un compte de service UPDM en plus des comptes de fusion de données et Dataproc.
Votre workflow de données first party
Créer une connexion
- Cliquez sur Connexions > ; Vos données first party > ; Créer une connexion.
- Connectez-vous à une source de données. Vous serez invité à vous authentifier.
BigQuery
Les autorisations étant basées sur votre compte Google, aucune authentification supplémentaire n'est requise. Assurez-vous que les comptes de service Connections disposent d'un accès en lecture à la table.
Cloud Storage
Les autorisations étant basées sur votre compte Google, aucune authentification supplémentaire n'est requise. Assurez-vous que les comptes de service Connections disposent d'un accès en lecture au bucket de stockage.
Salesforce
(Bientôt disponible)
Utilisez les identifiants Salesforce de votre organisation pour vous connecter. Google ne stocke pas vos identifiants. Par conséquent, chaque nouvelle connexion Salesforce nécessitera une nouvelle authentification.
- Choisissez un cas d'utilisation et une clé de jointure, puis cliquez sur Sélectionner un cas d'utilisation. Si vous ne souhaitez pas sélectionner de cas d'utilisation, cliquez sur Ignorer. Vous ne pourrez pas sélectionner de cas d'utilisation plus tard.
- Configurez votre source de données.
BigQuery
Sélectionnez la table BigQuery à importer.
Cloud Storage
Saisissez le chemin d'accès au fichier gsutil, par exemple
gs://my-bucket/folder/
, puis sélectionnez le format de votre fichier.Salesforce
bientôt disponible
- Configurez les champs Destination et Map.
- Sélectionnez le projet, l'ensemble de données et la table Google Cloud dans lesquels vous souhaitez écrire vos résultats. Assurez-vous que les comptes de service Connections disposent d'un accès en écriture à l'ensemble de données dans lequel vous écrivez.
- Chaque connexion crée une table dans laquelle écrire. Si vous sélectionnez une table qui existe déjà, une erreur s'affiche.
- Mappez les champs de destination (champs qui apparaîtront dans la table que vous créez) avec les champs sources de vos données sources.
- Paramétrer l'économiseur de batterie.
- Attribuez un nom à votre connexion.
- Définissez une fréquence en dictant la fréquence d'importation des données dans l'ensemble de données que vous avez sélectionné à l'étape précédente. Chaque exécution écrasera les données de la table destination.
- Cliquez sur OK. Les connexions qui traitent de grandes quantités de données peuvent prendre plusieurs heures.
Afficher les informations sur la connexion
La page des détails de la connexion vous donne des informations sur les exécutions et les erreurs récentes d'une connexion donnée. Pour afficher les détails d'une connexion spécifique:
- Cliquez sur Connexions > Vos données first party.
- Cliquez sur le nom de la connexion pour afficher ses détails.
- Vous pouvez maintenant voir les détails de la connexion et les exécutions récentes. Chacune présente deux types d'erreurs possibles: les erreurs au niveau de la connexion (la connexion n'a pas été exécutée) et les erreurs au niveau des lignes (une ligne n'a pas été importée).
- L'état Failed (Échec) indique que la connexion n'a pas pu être exécutée (problème d'autorisation de compte de service, par exemple). Cliquez sur l'état des erreurs pour voir celles qui ont affecté la connexion.
- L'état Completed (Terminée) indique que la connexion a bien été exécutée. Toutefois, il peut y avoir des erreurs au niveau des lignes, indiquées par une valeur non nulle dans la colonne "Lignes avec erreurs". Cliquez sur la valeur pour en savoir plus sur les enregistrements ayant échoué.
Modifier une connexion
La modification des connexions n'est pas encore disponible. Pour modifier une connexion, créez-en une autre et supprimez l'ancienne.
Cas d'utilisation
Le cas d'utilisation que vous sélectionnez a une incidence sur le schéma de la table de destination et sur les champs de clé de jointure importés. Développez les cas d'utilisation ci-dessous pour découvrir leur impact sur le schéma et les clés de jointure:
Couverture et fréquence
Mesurez la couverture et la fréquence de la campagne sur les différents canaux et appareils, réparties par segments d'utilisateurs first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
transaction_id | Identifiant unique pour cette transaction | chaîne | Facultative |
transaction_date | Date de la transaction (horodatage de l'époque Unix) | int | Facultative |
revenu_transaction | Revenus issus de la transaction | int | Facultative |
currency | Type de devise de la transaction | chaîne | Facultative |
quantity | Quantité d'articles dans la transaction | chaîne | Facultative |
price | Prix par article de la transaction | int | Facultative |
transaction_cost [coût_transaction] | Prix de revient / Services liés à la transaction | int | Facultative |
profit_transaction | Marge brute de la transaction | int | Facultative |
product_id | Code SKU / ID du ou des produits concernés par la transaction | chaîne | Facultative |
transaction_description [description_transaction] | Autres descriptions / métadonnées / paramètres concernant la transaction | chaîne | Facultative |
Type d'événement | Par exemple : impression d'annonce TV, e-mail marketing, visite du site Web, visite en magasin, etc. | chaîne | Facultative |
id_événement | ID unique de l'événement ci-dessus | chaîne | Facultative |
event_timestamp | Date de l'événement (horodatage de l'époque Unix) | int | Facultative |
métadonnées_canal | Métadonnées ou informations supplémentaires sur ce canal de point de contact | chaîne | Facultative |
Attribution multitouch
Mesurez l'attribution en combinant vos points de contact first party avec ceux issus des données Google.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
Type d'événement | Par exemple : impression d'annonce TV, e-mail marketing, visite du site Web, visite en magasin, etc. | chaîne | Obligatoire |
id_événement | ID unique de l'événement ci-dessus | chaîne | Obligatoire |
event_timestamp | Date de l'événement (horodatage de l'époque Unix) | int | Obligatoire |
crédit | Valeur de crédit (utilisée pour l'attribution) – Exemple : nombre de conversions | int | Facultative |
métadonnées_canal | Métadonnées ou informations supplémentaires sur ce canal de point de contact | chaîne | Facultative |
Métriques de performances
Mesurez les performances des campagnes réparties par segments démographiques, audiences d'affinité ou segments d'utilisateurs first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
Attribution sur le chemin avant conversion
Analysez les performances des chemins de conversion avec des points de contact personnalisés, y compris vos points de contact first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
Type d'événement | Par exemple : impression d'annonce TV, e-mail marketing, visite du site Web, visite en magasin, etc. | chaîne | Obligatoire |
id_événement | ID unique de l'événement ci-dessus | chaîne | Obligatoire |
event_timestamp | Date de l'événement (horodatage de l'époque Unix) | int | Obligatoire |
crédit | Valeur de crédit (utilisée pour l'attribution) – Exemple : nombre de conversions | int | Facultative |
métadonnées_canal | Métadonnées ou informations supplémentaires sur ce canal de point de contact | chaîne | Facultative |
Chevauchement multi-éditeurs
Analysez la couverture et la fréquence des campagnes en fonction des éditeurs, réparties par segments d'utilisateurs first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
Performances des campagnes simultanées
Mesurez l'impact sur les performances de l'exposition aux campagnes parallèles, réparti par segments d'utilisateurs first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
transaction_id | Identifiant unique pour cette transaction | chaîne | Facultative |
transaction_date | Date de la transaction (horodatage de l'époque Unix) | int | Facultative |
revenu_transaction | Revenus issus de la transaction | int | Facultative |
currency | Type de devise de la transaction | chaîne | Facultative |
quantity | Quantité d'articles dans la transaction | chaîne | Facultative |
price | Prix par article de la transaction | int | Facultative |
transaction_cost [coût_transaction] | Prix de revient / Services liés à la transaction | int | Facultative |
profit_transaction | Marge brute de la transaction | int | Facultative |
product_id | Code SKU / ID du ou des produits concernés par la transaction | chaîne | Facultative |
transaction_description [description_transaction] | Autres descriptions / métadonnées / paramètres concernant la transaction | chaîne | Facultative |
Type d'événement | Par exemple : impression d'annonce TV, e-mail marketing, visite du site Web, visite en magasin, etc. | chaîne | Facultative |
id_événement | ID unique de l'événement ci-dessus | chaîne | Facultative |
event_timestamp | Date de l'événement (horodatage de l'époque Unix) | int | Facultative |
métadonnées_canal | Métadonnées ou informations supplémentaires sur ce canal de point de contact | chaîne | Facultative |
Comparaison de campagnes
Comparez les performances des campagnes Google à celles d'autres éditeurs.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
Souscriptions | Chaîne sur laquelle cette campagne a été diffusée (par exemple, Facebook, TV, etc.) | chaîne | Obligatoire |
partenaire | Nom du partenaire (le cas échéant) | chaîne | Facultative |
tactique | Nom de la tactique | chaîne | Facultative |
Métadonnées de campagne | Métadonnées ou informations supplémentaires sur cette campagne | chaîne | Facultative |
date | Date de l'activité de la campagne (horodatage de l'époque Unix) | int | Obligatoire |
impressions | Nombre d'impressions de cette campagne à cette date | int | Obligatoire |
clicks | Nombre de clics à partir de cette campagne à cette date | int | Obligatoire |
conversions | Nombre de conversions de cette campagne à cette date | int | Obligatoire |
cost | Coût total de cette campagne à cette date | int | Obligatoire |
Comparaison des segments d'affinité et des libellés
Recherchez des chevauchements entre vos segments d'utilisateurs first party et vos segments d'audience d'affinité et sur le marché Google.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
Analyse des conversions d'application
Mesurez l'impact des campagnes sur le comportement des utilisateurs dans votre application.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
date | Date de l'activité dans les applications mobiles (horodatage de l'époque Unix) | int | Obligatoire |
installer | Booléen indiquant si un événement d'installation a été consigné ce jour-là | booléen | Obligatoire |
inscription | Booléen indiquant si un événement d'inscription a été enregistré ce jour-là | booléen | Obligatoire |
login | Booléen indiquant si un événement de connexion a été enregistré ce jour-là | booléen | Obligatoire |
achats via une application | Nombre total d'achats via une application pour ce jour | int | Obligatoire |
Calcul du ROI
Mesurez les retours incrémentiels en fonction de vos données de conversion first party.
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
transaction_id | Identifiant unique pour cette transaction | chaîne | Obligatoire |
transaction_date | Date de la transaction (horodatage de l'époque Unix) | int | Obligatoire |
revenu_transaction | Revenus issus de la transaction | int | Obligatoire |
currency | Type de devise de la transaction | chaîne | Facultative |
quantity | Quantité d'articles dans la transaction | chaîne | Facultative |
price | Prix par article de la transaction | int | Facultative |
transaction_cost [coût_transaction] | Prix de revient / Services liés à la transaction | int | Facultative |
profit_transaction | Marge brute de la transaction | int | Facultative |
product_id | Code SKU / ID du ou des produits concernés par la transaction | chaîne | Facultative |
transaction_description [description_transaction] | Autres descriptions / métadonnées / paramètres concernant la transaction | chaîne | Facultative |
Activation des audiences personnalisées
Créez et activez des segments d'utilisateurs personnalisés en vous basant sur vos données first party et les données Google
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
Enchères personnalisées
Optimisez les stratégies d'enchères Display & Video 360 en vous basant sur vos données first party et les données Google
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |
Performances multi-éditeurs
Mesurez les métriques de performances réparties par éditeur, ou par éditeur et par segments d'utilisateurs first party
Nom du champ | Description | Type | Obligatoire/Facultatif |
---|---|---|---|
clé de jointure | Modifications en fonction de la clé de jointure que vous utilisez | chaîne | Obligatoire |
gender (sexe) | Gender | chaîne | Facultative |
âge | Âge | int | Facultative |
city | Ville | chaîne | Facultative |
country (pays) | Pays | chaîne | Facultative |
cycle_de_vie | État de l'entonnoir de conversion du client : "Inconnu", "Intégration", "Engagement", "Arrivé à expiration", etc. | chaîne | Facultative |
fidélité_status | Argent, or, platine, diamant, etc. | chaîne | Facultative |
dernier_achat | Date du dernier achat (horodatage de l'époque Unix) | int | Facultative |
dernier_achat_produit | Produit acheté / Dernier utilisation | chaîne | Facultative |
dernier_contacted_date | Date du dernier contact / engagement (horodatage de l'époque Unix) | int | Facultative |
LTV | Valeur vie client | int | Facultative |
subscription_type [type_d'abonnement] | Sous-produit / type d'abonnement d'un client (deluxe ou abonnement famille, par exemple) | chaîne | Facultative |