Passer au contenu

Objet Achat

Cet article explique les différents composants d’un objet Achat, comment l’utiliser correctement, les bonnes pratiques et des exemples dont vous pouvez vous inspirer.

Qu’est-ce qu’un objet d’achat ?

Un objet d’achat est un objet transmis via l’API lorsqu’un achat a été effectué. Chaque objet d’achat se trouve dans un tableau d’achats, et chaque objet correspond à un achat unique effectué par un utilisateur donné à un moment précis. L’objet d’achat comporte de nombreux champs qui permettent au backend de Braze de stocker et d’utiliser ces informations pour la customisation, la collecte de données et la personnalisation.

Corps de l’objet

{
  // One of "external_id" or "user_alias" or "braze_id" or "email" or "phone" is required.
  "external_id" : (optional, string) External user ID,
  "user_alias" : (optional, User Alias Object) User alias object,
  "braze_id" : (optional, string) Braze user identifier,
  "email": (optional, string) User email address,
  "phone": (optional, string) User phone number,
  "app_id" : (optional, string) see App Identifier,
  // See the following product_id naming conventions for clarification.
  "product_id" : (required, string) identifier for the purchase, for example, Product Name or Product Category,
  "currency" : (required, string) ISO 4217 Alphabetic Currency Code,
  //Revenue from a purchase object is calculated as the product of quantity and price.
  "price" : (required, float) value in the base currency unit (for example, Dollars for USD, Yen for JPY),
  "quantity" : (optional, integer) the quantity purchased (defaults to 1, must be <= 100 -- currently, Braze treats a quantity _X_ as _X_ separate purchases with quantity 1),
  "time" : (required, datetime as string in ISO 8601) Time of purchase,
  // See the following purchase object explanation for clarification.
  "properties" : (optional, Properties Object) properties of the event,
  // Setting this flag to true puts the API in "Update Only" mode.
  // When using a "user_alias", "Update Only" mode is always true.
  "_update_existing_only" : (optional, boolean)
}

ID de produit d’achat

Dans l’objet d’achat, le product_id est un identifiant de l’achat (par exemple Product Name ou Product Category) :

  • Braze vous permet de stocker jusqu’à 5 000 product_id dans le tableau de bord.
  • Le product_id peut comporter jusqu’à 255 caractères.

Conventions de nommage

Chez Braze, nous proposons quelques conventions de nommage générales pour le product_id de l’objet d’achat. Lorsque vous choisissez un product_id, Braze vous suggère d’utiliser des noms simples, comme le nom ou la catégorie du produit (plutôt que des unités de gestion des stocks), afin de regrouper tous les articles enregistrés sous ce product_id.

Les produits sont ainsi plus faciles à identifier pour la segmentation et le déclenchement.

Enregistrer les achats au niveau de la commande

Si vous souhaitez enregistrer les achats au niveau de la commande plutôt qu’au niveau du produit, vous pouvez utiliser le nom ou la catégorie de la commande comme product_id (par exemple Online Order ou Completed Order).

Par exemple, pour enregistrer des achats au niveau de la commande dans le SDK Web :

POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
  "purchases" : [
    {
      "external_id" : "user1",
      "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, }
        ]
      }
    }
  ]
}

Objet des propriétés d’achat

Les propriétés d’achat servent au filtrage et à la personnalisation Liquid dans les messages déclenchés par leurs événements d’achat parents. Par défaut, elles ne sont pas conservées dans le profil utilisateur Braze. Pour utiliser les valeurs des propriétés d’achat dans la segmentation, consultez la section Segmentation par propriétés d’événement. Cette fonctionnalité stocke les valeurs dans le profil utilisateur pendant une fenêtre d’analyse rétrospective pouvant aller jusqu’à 30 jours.

The properties values must be an object up to 50 KB where the keys are the property names and the values are the property values. Property names must be strings, 255 characters or fewer, with no leading dollar signs ($).

Property values can be any of the following data types:

Data type Description
Number Integer or float
Boolean Value true or false
Datetime String in ISO 8601 or yyyy-MM-dd'T'HH:mm:ss:SSSZ format. Not supported within arrays.
String 255 characters or fewer
Array Supported; datetimes are not supported within arrays.
Object Ingested as strings (not nested objects). For nested data, use a string value (for example, JSON serialized).

The following keys are reserved and cannot be used as property names: time, product_id, quantity, event_name, price, and currency. Using a reserved key in the properties object returns the error “Invalid ‘properties’ field”.

Pour une référence consolidée des types de données des attributs personnalisés, des propriétés d’événement et des catalogues, consultez Types de données.

Propriétés d’achat

Vous pouvez utiliser les propriétés d’achat pour déclencher des messages et pour la personnalisation avec Liquid. Elles vous permettent aussi de segmenter en fonction de ces propriétés.

Conventions de nommage

Notez que cette fonctionnalité est activée par produit, et non par achat. Par exemple, si vous avez un grand nombre de produits distincts qui possèdent tous les mêmes propriétés, la segmentation risque d’être superflue.

Dans ce cas, nous vous recommandons d’utiliser des noms de produits au « niveau du groupe » plutôt que des identifiants au niveau de la transaction lorsque vous définissez vos structures de données. Par exemple, une société de vente de billets de train devrait avoir des produits comme « aller simple », « aller-retour » et « multi-villes », et non des transactions spécifiques comme « transaction 123 » ou « transaction 046 ». Autre exemple : pour l’événement d’achat « nourriture », il est préférable de définir les propriétés « gâteau » et « sandwich ».

Exemple d’objet d’achat

POST https://YOUR_REST_API_URL/users/track
Content-Type: application/json
Authorization: Bearer YOUR-REST-API-KEY
{
  "purchases" : [
    {
      "external_id" : "user1",
      "app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
      "product_id" : "backpack",
      "currency" : "USD",
      "price" : 40.00,
      "time" : "2013-07-16T19:20:30+01:00",
      "properties" : {
        "color" : "red",
        "monogram" : "ABC",
        "checkout_duration" : 180,
        "size" : "Large",
        "brand" : "Backpack Locker"
      }
    },
    {
      "external_id" : "user1",
      "app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
      "product_id" : "pencil",
      "currency" : "USD",
      "price" : 2.00,
      "time" : "2013-07-17T19:20:20+01:00",
      "properties" : {
        "number" : 2,
        "sharpened" : true
      }
    },
    {
      "user_alias" : { "alias_name" : "device123", "alias_label" : "my_device_identifier"},
      "app_id" : "11ae5b4b-2445-4440-a04f-bf537764c9ad",
      "product_id" : "pen",
      "currency" : "USD",
      "price" : 2.50,
      "time" : "2013-07-17T19:20:20+01:00",
      "properties" : {
        "color" : "blue",
      }
    }
  ]
}

Objets d’achat, objets d’événement et webhooks

Dans cet exemple, une personne a acheté un sac à dos avec les propriétés suivantes : couleur, monogramme, durée de paiement, taille et marque. Vous pouvez ensuite créer des Segments à partir de ces propriétés à l’aide des propriétés d’événement d’achat ou envoyer des messages personnalisés sur un canal avec Liquid. Par exemple : « Bonjour Ann F., merci d’avoir acheté ce sac à dos rouge de taille moyenne pour 40,00 $ ! Merci d’avoir fait vos achats chez Backpack Locker ! »

Si vous souhaitez enregistrer, stocker et suivre des propriétés pour la segmentation, vous devez les configurer comme attributs personnalisés. Pour ce faire, utilisez les extensions de segments, qui vous permettent de cibler les utilisateurs en fonction d’un événement personnalisé ou d’un comportement d’achat stocké pendant toute la durée de vie de leur profil utilisateur.

New Stuff!