Skip to content

Configuration des tables pour l’Ingestion de données cloud

Utilisez cette page pour distinguer deux exigences liées mais distinctes de l’Ingestion de données cloud (CDI) : la configuration de la table source et le formatage du payload.

Comprendre la configuration des tables par rapport au formatage du payload

Pour les synchronisations de données utilisateur CDI, configurez les deux éléments suivants :

Braze lit d’abord les lignes de votre table source, puis valide le champ payload en fonction du type de données sélectionné.

Configurer votre table source

Pour les synchronisations de données utilisateur depuis un entrepôt de données, votre table ou vue source doit inclure :

  • UPDATED_AT
  • payload
  • Une ou plusieurs colonnes d’identifiants utilisateur prises en charge :
    • EXTERNAL_ID
    • ALIAS_NAME et ALIAS_LABEL
    • BRAZE_ID
    • EMAIL
    • PHONE

Chaque ligne doit inclure un seul type d’identifiant à la fois, même si votre table contient plusieurs colonnes d’identifiants.

Exigences pour UPDATED_AT

  • Stockez les valeurs UPDATED_AT en UTC pour éviter les problèmes liés aux changements d’heure.
  • Braze synchronise les lignes dont la valeur UPDATED_AT est postérieure à la dernière valeur synchronisée.
  • Les lignes situées exactement à l’horodatage limite peuvent être resynchronisées si de nouvelles lignes partagent cet horodatage.

Pour des conseils sur les horodatages en double et les mises à jour incrémentales, consultez les bonnes pratiques de l’Ingestion de données cloud.

Configurer la colonne payload

La valeur payload suit les mêmes formats d’objets utilisés par l’endpoint Braze /users/track pour le type de données sélectionné.

Pour les attributs imbriqués, incluez les dates en utilisant le format décrit dans Capturer des dates en tant que propriétés d’objet.

Exemples de payloads

Vous pouvez inclure des attributs personnalisés imbriqués dans la colonne payload pour une synchronisation d’attributs personnalisés.

1
2
3
4
5
6
7
8
9
10
11
12
{
      "most_played_song": {
        "song_name": "Solea",
        "artist_name": "Miles Davis",
        "album_name": "Sketches of Spain",
        "genre": "Jazz",
        "play_analytics": {
            "count": 1000,
            "top_10_listeners": true
        }
      }
}

Pour synchroniser des événements, un nom d’événement est requis. Formatez le champ time en tant que chaîne ISO 8601 ou au format yyyy-MM-dd'T'HH:mm:ss:SSSZ. Si le champ time n’est pas présent, Braze utilise la valeur de la colonne UPDATED_AT comme heure de l’événement. Les autres champs, y compris app_id et properties, sont facultatifs.

Vous pouvez synchroniser un événement par ligne.

1
2
3
4
5
6
7
8
9
{
    "app_id" : "your-app-id",
    "name" : "rented_movie",
    "time" : "2013-07-16T19:20:45+01:00",
    "properties": {
        "movie": "The Sad Egg",
        "director": "Dan Alexander"
    }
}

Pour synchroniser des événements d’achat, product_id, currency et price sont requis. Formatez le champ facultatif time en tant que chaîne ISO 8601 ou au format yyyy-MM-dd'T'HH:mm:ss:SSSZ. Si le champ time n’est pas présent, Braze utilise la valeur de la colonne UPDATED_AT comme heure de l’événement. Les autres champs, y compris app_id, quantity et properties, sont facultatifs.

Vous pouvez synchroniser un événement d’achat par ligne.

1
2
3
4
5
6
7
8
9
10
11
12
{
    "app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
    "product_id" : "Completed Order",
    "currency" : "USD",
    "price" : 219.98,
    "time" : "2013-07-16T19:20:30+01:00",
    "properties" : {
        "products" : [ { "name": "Monitor", "category": "Gaming", "product_amount": 19.99 },
        { "name": "Gaming Keyboard", "category": "Gaming ", "product_amount": 199.99 }
        ]
    }
}

Pour synchroniser les statuts des groupes d’abonnement, incluez une ou plusieurs paires subscription_group_id et subscription_state dans chaque ligne.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
    "subscription_groups" : [
        {
            "subscription_group_id": "subscription_group_identifier_1",
            "subscription_state": "unsubscribed"
        },
        {
            "subscription_group_id": "subscription_group_identifier_2",
            "subscription_state": "subscribed"
        },
        {
            "subscription_group_id": "subscription_group_identifier_3",
            "subscription_state": "subscribed"
        }
      ]
}
New Stuff!