Événements e‑commerce
add_payment_info
Cet événement signifie qu'un utilisateur a soumis ses informations de paiement
Paramètres (requis et recommandés)
payment_method
string
Oui
card
La méthode de paiement choisie (voir la liste des valeurs possibles ci‑dessous)
user
Oui
consent_categories est la liste des consentements de l'utilisateur et est obligatoire pour gérer les consentements. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
coupon
string
Non
CHRISTMAS
Code coupon utilisé pour un achat.
revenue
number
Non
16.00
Revenu (prix de livraison et taxes exclus) après remise.
()revenue est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez revenue.
currency
string (ISO 4217)
Non
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
Exemple
cact('trigger','add_payment_info', {
payment_method: 'card',
revenue: 16.00,
currency: 'EUR',
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});val event = TCAddPaymentInfoEvent("card")
event.revenue = 16.00f
event.currency = "EUR"
serverside.execute(event)TCAddPaymentInfoEvent event = new TCAddPaymentInfoEvent("card");
event.revenue = 16.6f;
event.currency = "EUR";
serverside.execute(event);TCAddPaymentInfoEvent *event = [[TCAddPaymentInfoEvent alloc] initWithId: @"ID";
event.revenue = [[NSDecimalNumber alloc] initWithFloat: 16.00f];
event.currency = @"EUR";
[TCS execute: event];let event = TCAddPaymentInfoEvent(payementMethod: "card")
event?.revenue = 16.00
event?.currency = "EUR"
serverside?.execute(event)var event = TCAddPaymentInfoEvent();
event.paymentMethod = "card";
event.revenue = 16.00;
event.currency = "EUR";
serverside.execute(event);{
"event_name": "add_payment_info",
"payment_method": "card",
"revenue": 16.00,
"value": 22.53,
"currency": "EUR",
"user": {
"id": "12345",
"email": "[email protected]",
"consent_categories": [
1,
3
]
}
}add_shipping_info
Cet événement signifie qu'un utilisateur a soumis ses informations de livraison.
Paramètres
currency
string (ISO 4217)
Oui
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue ou valueparamètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
value
number
Oui
22.53
La valeur monétaire de l'événement (prix de livraison et taxes inclus) après remise
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
coupon
string
Non
CHRISTMAS
Code coupon utilisé pour un achat.
shipping_tier
string
Non
Ground
Le niveau de livraison (par ex. Next-day, Air`) sélectionné pour la livraison de l'article acheté.
Exemple
{% tabs %} {% tab title="JavaScript" %} `
``javascript cact('trigger','add_shipping_info', { value: 8.00, currency: 'EUR', coupon: 'promo', shipping_tier: 'ups', items: [{ id: 'SKU_12345', quantity: 1, variant: 'red', coupon: 'CHRISTMAS', discount: 1.99, product:{ id: '12345', name: 'Trex tshirt', category_1: 'clothes', category_2: 't-shirts', category_3: 'boy', brand: 'Lacoste', price: 9.99 } }], user: { id: '12356', email:'[email protected]', consent_categories: [1,3] } });
</div>
<div data-gb-custom-block data-tag="tab" data-title='Kotlin (Android)'>
```kotlin
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCAddShippingInfoEvent(items, 112.5f, "EUR")
event.coupon = "promo"
event.shippingTier = "ups"
serverside.execute(event)TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCAddShippingInfoEvent event = new TCAddShippingInfoEvent(items, 112.5f, "EUR");
event.coupon = "promo";
event.shippingTier = "ups";
serverside.execute(event);NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddShippingInfoEvent *event = [[TCAddShippingInfoEvent alloc] initWithItems: items
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"];
event.coupon = @"promo";
event.shippingTier = @"ups";
[TCS execute: event];let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddShippingInfoEvent(items: [item_1, item_2], withValue: 1, withCurrency: "EUR")
event?.addAdditionalProperty("additionalKey", withBoolValue: true)
event?.coupon = "promo"
event?.shippingTier = "ups"
serverside?.execute(event)TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 150;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCAddShippingInfoEvent();
event.coupon = "promo";
event.shippingTier = "ups";
event.currency = "EUR";
event.items = [tc_item_1, tc_item_2];
serverside.execute(event);{
"event_name": "add_shipping_info",
"shipping_tier": "Ground",
"revenue": 16.00,
"value": 22.53,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "[email protected]",
"consent_categories": [
1,
3
]
}
}add_to_cart
Cet événement signifie qu'un article a été ajouté à un panier pour achat.
Paramètres (requis et recommandés)
value
number
Oui*
8.00
La valeur monétaire de l'événement.
()value est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez value.
currency
string (ISO 4217)
Oui*
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','add_to_cart', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCAddToCartEvent(22.53f, "EUR", items)
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCAddToCartEvent event = new TCAddToCartEvent(22.53f, "EUR", items);
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddToCartEvent *event = [[TCAddToCartEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddToCartEvent(value: 1, withCurrency: "EUR", withItems: [item_1, item_2])
event?.addAdditionalProperty("additionalKey", withBoolValue: true)
event?.currency = "EUR"
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 12.5;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCAddToCartEvent();
event.currency = "EUR";
event.items = [tc_item_1];
event.value = 12.5;
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "add_to_cart",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
add_to_wishlist
L'événement signifie qu'un article a été ajouté à une wishlist. Utilisez cet événement pour identifier les articles cadeaux populaires dans votre application.
Paramètres (requis et recommandés)
value
number
Non
8.00
La valeur monétaire de l'événement.
()revenue est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez revenue.
currency
string (ISO 4217)
Non
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','add_to_wishlist', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCAddToWishlistEvent(items)
event.value = 20.00f
event.currency = "EUR"
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCAddToWishlistEvent event = new TCAddToWishlistEvent(items);
event.value = 20.00f;
event.currency = "EUR";
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCAddToWishlistEvent *event = [[TCAddToWishlistEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCAddToWishlistEvent(items: [item_1, item_2])
event?.currency = "EUR"
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCAddToWishlistEvent();
event.addAdditionalPropertyWithIntValue("key_additional_1", 12);
event.addAdditionalPropertyWithListValue("key_additional_2", [12,12,12]);
event.currency = "EUR";
event.items = [tc_item_1];
event.value = 12.5;
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "add_to_wishlist",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
begin_checkout
Cet événement signifie qu'un utilisateur a commencé un checkout.
Paramètres (requis et recommandés)
revenue
number
Oui
16.00
La valeur monétaire de l'événement (prix de livraison et taxes exclus) après remise
value
number
Oui
22.53
La valeur monétaire de l'événement (prix de livraison et taxes inclus) après remise
currency
string (ISO 4217)
Oui
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
coupon
string
Non
CHRISTMAS
Code coupon utilisé pour un achat.
id
string
Non
0_12345
ID de transaction. Utilisé comme clé pour les mises à jour
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','begin_checkout', {
id: 'O_12345',
coupon: 'CHRISTMAS',
revenue: 16.00,
value: 20.33,
currency: 'EUR',
user: {
id: '12356',
email:'[email protected]'
},
items: [{
id: 'SKU_12345',
quantity: 1,
price: 9.99,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
colors: ['red'],
price: 9.99
}
}, {
id: 'SKU_12346',
quantity: 1,
price: 9.99,
variant: 'green',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12346',
name: 'Heart tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'girl',
brand: 'Jenyfion',
colors: ['blue','white'],
price: 9.99
}
}]
}){% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCBeginCheckoutEvent(1.0f, 2.0f, "EUR", items)
event.coupon = "CHRISTMAS"
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCBeginCheckoutEvent event = new TCBeginCheckoutEvent(1.0f, 2.0f, "EUR", items);
event.coupon = "CHRISTMAS";
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCBeginCheckoutEvent *event = [[TCBeginCheckoutEvent alloc] initWithRevenue: [[NSDecimalNumber alloc] initWithString: @"1.1"]
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withItems: items];
event.coupon = @"CHRISTMAS";
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCBeginCheckoutEvent(revenue: 1, withValue: 3, withCurrency: "EUR", withItems: [item_1, item_2])
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 5.10;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCBeginCheckoutEvent();
event.coupon = "CHRISTMAS";
event.items = [tc_item_1, tc_item_2];
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "begin_checkout",
"id": "O_12345",
"coupon": "CHRISTMAS",
"revenue": 16.00,
"value": 22.53,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "[email protected]",
"consent_categories": [
1,
3
]
}
}{% endtab %} {% endtabs %}
generate_lead
Enregistrez cet événement lorsqu'un lead a été généré afin de comprendre l'efficacité de vos campagnes de réengagement.
Paramètres (requis et recommandés)
value
number
Non*
9.99
La valeur monétaire de l'événement.
()revenue est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez revenue.
currency
string (ISO 4217)
Non*
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
id
string
Non
ID lead
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="Javascript" %}
cact('trigger','generate_lead', {
currency: 'EUR',
value: 9.99,
id: 'L_12345',
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val event = TCGenerateLeadEvent(9.99f, "EUR")
event.ID = "L_12345"
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCGenerateLeadEvent event = new TCGenerateLeadEvent(9.99f, "EUR");
event.ID = "L_12345";
serverside.execute(event);{% endtab %}
{% tab title="iOS" %}
TCGenerateLeadEvent *event = [[TCGenerateLeadEvent alloc] initWithValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"];
event.ID = @"2b758628-f81b-454f-8e3d-867e8bc98523";
[TCS execute: event];{% endtab %}
{% tab title="Swift" %}
let event = TCGenerateLeadEvent(value: 1, withCurrency: "EUR")
event?.ID = "2b758628-f81b-454f-8e3d-867e8bc98523";
serverside.execute(event){% endtab %}
{% tab title="Flutter" %}
var event = TCGenerateLeadEvent();
event.currency = "EUR";
event.value = 9.99;
event.ID = "2b758628-f81b-454f-8e3d-867e8bc98523";
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "generate_lead",
"method": "LinkedIn"
}{% endtab %} {% endtabs %}
purchase
Déclenchez cet événement lorsqu'un ou plusieurs articles sont achetés par un utilisateur.
Paramètres (requis et recommandés)
id
string
Oui
O_1245
ID de transaction. Utilisé comme clé pour les mises à jour
user
Oui
Toutes les propriétés que vous ajoutez ici seront utilisées comme conditions pour faire correspondre les utilisateurs dans notre base de données.
cosent_categories est automatiquement rempli si vous utilisez Commanders Act CMP.
revenue
number
Oui
16.00
La valeur monétaire de l'événement (prix de livraison et taxes exclus) après remise
value
number
Oui
22.53
La valeur monétaire de l'événement (prix de livraison et taxes inclus) après remise
shipping_amount
number
Non
3.33
Coût d'expédition associé à une transaction.
tax_amount
number
Non
3.20
Taxe associée à une transaction.
currency
string (ISO 4217)
Oui
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
coupon
string
Non
CHRISTMAS
Code coupon utilisé pour un achat.
type
string
Oui
offline
Type de conversion (online, offline, call etc.)
payment_method
string
Oui
card
Type de méthode de paiement (voir la liste des valeurs possibles ci‑dessous)
status
string
Oui
en_cours
Statut de la conversion (voir la liste des valeurs possibles ci-dessous). Les conversions avec le statut "pending" ne sont pas incluses dans la somme et les comptes par défaut agrégés dans la fonctionnalité augmented user attributes
last_channel
string
Non
display
Le dernier channel juste avant l'achat.
last_source
string
Non
google.com
La dernière source (référent) juste avant l'achat.
Ajouté automatiquement par cact API
url
string(url)
Non
aucun
URL du site web où vous pouvez acheter l'article
Équivalent de window.location.href
Exemple
{% tabs %} {% tab title="Javascript" %}
cact('trigger','purchase', {
id: 'O_12345',
coupon: 'CHRISTMAS',
revenue: 16.00,
value: 20.33,
shipping_amount: 3.33,
tax_amount: 3.20,
currency: 'EUR',
user: {
id: '12356',
email:'[email protected]'
},
items: [{
id: 'SKU_12345',
quantity: 1,
price: 9.99,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
colors: ['red'],
price: 9.99
}
}, {
id: 'SKU_12346',
quantity: 1,
price: 9.99,
variant: 'green',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12346',
name: 'Heart tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'girl',
brand: 'Jenyfion',
colors: ['blue','white'],
price: 9.99
}
}]
}){% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCPurchaseEvent("O_12345", 16.0f, 22.53f, "EUR", "purchase", "CreditCard", "waiting", items)
event.shippingAmount = 3.33f
event.taxAmount = 3.20f
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCPurchaseEvent event = new TCPurchaseEvent("O_12345", 16.0f, 22.53f, "EUR", "purchase", "CreditCard", "waiting", items);
event.shippingAmount = 3.33f;
event.taxAmount = 3.20f;
serverside.execute(event);{% endtab %}
{% tab title="iOS" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCPurchaseEvent *event = [[TCPurchaseEvent alloc] initWithId: @"ID"
withRevenue: [[NSDecimalNumber alloc] initWithString: @"1.1"]
withValue: [[NSDecimalNumber alloc] initWithString: @"12.2"]
withCurrency: @"EUR"
withType: @"purchase"
withPaymentMethod: @"CreditCard"
withStatus: @"waiting"
withItems: items];
[TCS execute: event];{% endtab %}
{% tab title="Swift" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCPurchaseEvent(id: "purchaseID", withRevenue: 16.21, withValue: 23.10, withCurrency: "EUR", withType: "purchase", withPaymentMethod: "CreditCard", withStatus: "waiting", withItems: [item_1, item_2])
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 5.10;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCPurchaseEvent();
event.shippingAmount = 3.33;
event.taxAmount = 3.20;
event.revenue = 2.5;
event.value = 12.2;
event.currency = "EUR";
event.type = "purchase";
event.paymentMethod = "CreditCard";
event.status = "waiting";
event.items = [tc_item_1, tc_item_2];
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "purchase",
"id": "O_12345",
"coupon": "CHRISTMAS",
"revenue": 16.00,
"value": 22.53,
"shipping_amount": 3.33,
"tax_amount": 3.20,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "[email protected]",
"consent_categories": [
1,
3
]
}
}{% endtab %} {% endtabs %}
refund
Déclenchez cet événement lorsqu'un achat a été remboursé
Paramètres (requis et recommandés)
id
string
Oui
O_1245
ID de transaction. Utilisé comme clé pour les mises à jour
user
Oui
Toutes les propriétés que vous ajoutez ici seront utilisées comme conditions pour faire correspondre les utilisateurs dans notre base de données.
cosent_categories est automatiquement rempli si vous utilisez Commanders Act CMP.
revenue
number
Oui
16.00
La valeur monétaire de l'événement (prix de livraison et taxes exclus) après remise
value
number
Oui
22.53
La valeur monétaire de l'événement (prix de livraison et taxes inclus) après remise
shipping_amount
number
Non
3.33
Coût d'expédition associé à une transaction.
tax_amount
number
Non
3.20
Coût d'expédition associé à une transaction.
currency
string (ISO 4217)
Oui
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
coupon
string
Non
CHRISTMAS
Code coupon utilisé pour un achat.
type
string
Oui
offline
Type de conversion (online, offline, call etc.)
items
Non*
(*) items est requis pour les remboursements partiels mais peut être omis pour les remboursements totaux.
Ajouté automatiquement par cact API
url
string(url)
Non
aucun
URL du site web où vous pouvez acheter l'article
Équivalent de window.location.href
Exemple
{% tabs %} {% tab title="Javascript" %}
cact('trigger','refund', {
id: 'O_12345',
coupon: 'CHRISTMAS',
revenue: 16.00,
value: 20.33,
shipping_amount: 3.33,
tax_amount: 3.20,
currency: 'EUR',
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
}){% endtab %}
{% tab title="Kotlin (Android)" %}
val event = TCRefundEvent("O_12345", 16.00f, 23.53f, "EUR", "offline")
event.coupon = "CHRISTMAS"
event.shippingAmount = 4.33f
event.taxAmount = 3.20f
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCRefundEvent event = new TCRefundEvent("O_12345", 16.00f, 23.53f, "EUR", "offline");
event.coupon = "CHRISTMAS";
event.shippingAmount = 4.33f;
event.taxAmount = 3.20f;
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCRefundEvent *event = [[TCRefundEvent alloc] initWithID: @"2b758628-f81b-454f-8e3d-867e8bc98523"
withRevenue: [[NSDecimalNumber alloc] initWithString: @"20.2"]
withValue: [[NSDecimalNumber alloc] initWithString: @"26.2"]
withCurrency: @"EUR"
withType: @"offline"
withItems: items];
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCRefundEvent(id: "purchaseID", withRevenue: 16.32, withValue: 23.1, withCurrency: "EUR", withType: "refund", withItems: [item_1, item_2])
event?.shippingAmount = 11
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
var event = TCRefundEvent();
event.currency = "EUR";
event.value = 26.20;
event.revenue = 20.20;
event.coupon = "CHRISTMAS";
event.shippingAmount = 4.33;
event.taxAmount = 3.20;
event.type = "offline";
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "refund",
"value": 8.00,
"currency": "EUR",
"revenue": 16.00,
"shipping_amount": 3.33,
"tax_amount": 3.20
}{% endtab %} {% endtabs %}
remove_from_cart
Cet événement signifie qu'un article a été retiré d'un panier.
Paramètres (requis et recommandés)
value
number
Non
8.00
La valeur monétaire de l'événement.
()value est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez value.
currency
string (ISO 4217)
Non
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','remove_from_cart', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCRemoveFromCartEvent(items)
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCRemoveFromCartEvent event = new TCRemoveFromCartEvent(items);
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCRemoveFromCartEvent *event = [[TCRemoveFromCartEvent alloc] initWithItems: items];
event.value = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCRemoveFromCartEvent(items: [item_1, item_2])
event?.value = 22.53
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCRemoveFromCartEvent();
event.value = 15.1;
event.currency = "EUR";
event.items = [tc_item_1];
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "remove_from_cart",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
select_item
Cet événement signifie qu'un article a été sélectionné dans une liste.
Paramètres
item_list_name
string
Non
Produits associés
Le nom de la liste dans laquelle l'article a été présenté à l'utilisateur.
items
Oui
Les articles pour l'événement. Le items tableau doit contenir un seul élément, représentant l'article sélectionné.
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','select_item', {
item_list_name: 'Related products',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCSelectItemEvent(items)
event.itemListName = "Related products"
serverside.execute(event{% endtab %}
{% tab title="Java (Android)" %}
TCSelectContentEvent event = new TCSelectContentEvent();
event.contentType = "product";
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice:[[NSDecimalNumber alloc] initWithFloat: 1.5f]]
withQuantity: 1]];
TCSelectItemEvent *event = [[TCSelectItemEvent alloc] initWithItems: items];
event.itemListName = @"Related products";
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCSelectItemEvent(items: [item_1, item_2])
event.itemListName = "Related products";
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCSelectItemEvent();
event.itemListName = "Related products";
event.items = [tc_item_1];
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "select_item",
"item_list_name": "Related products",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
view_cart
Cet événement signifie qu'un utilisateur a consulté son panier.
Paramètres (requis et recommandés)
value
number
Non
8.00
La valeur monétaire de l'événement.
()value est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez value.
currency
string (ISO 4217)
Non
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
(*) Si vous fournissez le revenue paramètre, vous devez également fournir le currency paramètre afin que les métriques de revenus puissent être calculées avec précision.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','view_cart', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewCartEvent(items);
event.value = 15.1f
event.currency = "EUR"
serverside.execute(event);{% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewCartEvent event = new TCViewCartEvent(items);
event.value = 15.1f;
event.currency = "EUR";
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
TCViewCartEvent *event = [[TCViewCartEvent alloc] initWithItems: items];
event.value = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewCartEvent(items: [item_1, item_2])
event?.value = 22.53
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 10;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 5.10;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewCartEvent();
event.value = 15.1;
event.currency = "EUR";
event.items = [tc_item_1, tc_item_2
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "view_cart",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
view_item
Cet événement signifie qu'un contenu a été affiché à l'utilisateur. Utilisez cet événement pour gérer les articles les plus consultés.
Paramètres (requis et recommandés)
revenue
number
Oui*
9.99
La valeur monétaire de l'événement.
()revenue est généralement requis pour des rapports significatifs.
()currency est requis si vous indiquez revenue.
currency
string (ISO 4217)
Oui*
EUR
Devise de l'achat ou des articles associés à l'événement, au format ISO 4217 en 3 lettres.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="JavaScript" %}
cact('trigger','view_item', {
value: 8.00,
currency: 'EUR',
items: [{
id: 'SKU_12345',
quantity: 1,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewItem(items)
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewItem event = new TCViewItem(items);
serverside.execute(event);{% endtab %}
{% tab title="Objective-C (iOS)" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: [[NSDecimalNumber alloc] initWithString: @"1.5"]]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCViewItem *event = [[TCViewItem alloc] initWithItems: items];
event.revenue = [[NSDecimalNumber alloc] initWithString: @"12.2"];
event.currency = @"EUR";
[TCS execute: event];{% endtab %}
{% tab title="Swift (iOS)" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewItem(items: [item_1, item_2])
event?.revenue = 12.2
serverside?.execute(event){% endtab %}
{% tab title="Dart (Flutter)" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewItemEvent();
event.pageName = "event_page_name";
event.pageType = "event_page_type";
event.items = [tc_item_1];
event.addAdditionalPropertyWithIntValue("key_additional_1", 12);
event.addAdditionalPropertyWithListValue("key_additional_2", [12,12,12]);
event.addAdditionalPropertyWithMapValue("key_map", {'test': 12, "test2": "value"});
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "view_item",
"value": 8.00,
"currency": "EUR",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
]
}
}
]
}{% endtab %} {% endtabs %}
view_item_list
Enregistrez cet événement lorsque l'utilisateur s'est vu présenter une liste d'articles d'une certaine catégorie.
Paramètres
item_list_name
string
Non
Produits associés
Le nom de la liste dans laquelle l'article a été présenté à l'utilisateur.
user
Oui
consent_categories est la liste des consentements de l'utilisateur. Elle est automatiquement remplie à partir des sources web si vous utilisez Commanders Act CMP.
Vous devez également ajouter toutes les propriétés de l'utilisateur dans cet objet user, en particulier la clé de rapprochement (id, email).
Exemple
{% tabs %} {% tab title="Javascript" %}
cact('trigger','view_item_list', {
item_list_name: 'Related products',
items: [{
id: 'SKU_12345',
quantity: 1,
price: 9.99,
variant: 'red',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12345',
name: 'Trex tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'boy',
brand: 'Lacoste',
colors: ['red'],
price: 9.99
}
}, {
id: 'SKU_12346',
quantity: 1,
price: 9.99,
variant: 'green',
coupon: 'CHRISTMAS',
discount: 1.99,
product:{
id: '12346',
name: 'Heart tshirt',
category_1: 'clothes',
category_2: 't-shirts',
category_3: 'girl',
brand: 'Jenny',
colors: ['blue','white'],
price: 9.99
}
}],
user: {
id: '12356',
email:'[email protected]',
consent_categories: [1,3]
}
});{% endtab %}
{% tab title="Kotlin (Android)" %}
val item1 = TCItem("my_product1_id", TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1)
val item2 = TCItem("my_product2_id", TCProduct("my_product_2_id", "my_product_2_name", 110f), 1)
val items = listOf<TCItem>(item1, item2)
val event = TCViewItemList(items)
event.itemListName = "your products"
serverside.execute(event){% endtab %}
{% tab title="Java (Android)" %}
TCItem item1 = new TCItem("my_product1_id", new TCProduct("my_product_1_id", "my_product_1_name", 12.5f), 1);
TCItem item2 = new TCItem("my_product2_id", new TCProduct("my_product_2_id", "my_product_2_name", 25.6f), 1);
ArrayList<TCItem> items = new ArrayList<>(Arrays.asList(item1, item2));
TCViewItemListEvent event = new TCViewItemListEvent(items);
event.itemListName = "your products";
serverside.execute(event);{% endtab %}
{% tab title="iOS" %}
NSMutableArray *items = [[NSMutableArray alloc] init];
[items addObject: [[TCItem alloc] initWithItemId: @"iID1"
withProduct: [[TCProduct alloc] initWithProductId: @"pID1"
withName: @"pName1"
withPrice: @1.5f]
withQuantity: 1]];
[items addObject: [[TCItem alloc] initWithItemId: @"iID2"
withProduct: [[TCProduct alloc] initWithProductId: @"pID2"
withName: @"pName2"
withPrice: [[NSDecimalNumber alloc] initWithFloat: 2.5f]]
withQuantity: 2]];
TCViewItemListEvent *event = [[TCViewItemListEvent alloc] initWithItems: items];
event.itemListName = @"summer_collection";
[TCS execute: event];{% endtab %}
{% tab title="Swift" %}
let item_1:TCItem = TCItem(itemId: "my_item1.id", with: TCProduct(productId: "my_product1.id", withName: "my_product1.name", withPrice: 12.5), withQuantity: 1)
let item_2:TCItem = TCItem(itemId: "my_item2.id", with: TCProduct(productId: "my_product2.id", withName: "my_product2.name", withPrice: 22.5), withQuantity: 1)
let event = TCViewItemListEvent(items: [item_1, item_2])
event?.itemListName = "summer_collection"
serverside?.execute(event){% endtab %}
{% tab title="Flutter" %}
TCProduct tc_product = TCProduct();
tc_product.ID = "product_1_ID";
tc_product.name = "product_1_name";
tc_product.price = 150;
tc_product.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_1 = TCItem();
tc_item_1.ID = "item_1_id";
tc_item_1.product = tc_product;
tc_item_1.quantity = 1;
tc_item_1.addAdditionalProperty("key_additional_item", "val_additional_product");
TCProduct tc_product_2 = TCProduct();
tc_product_2.ID = "product_2_ID";
tc_product_2.name = "product_2_name";
tc_product_2.price = 150;
tc_product_2.addAdditionalProperty("key_additional_product", "val_additional_product");
TCItem tc_item_2 = TCItem();
tc_item_2.ID = "item_2_id";
tc_item_2.quantity = 2;
tc_item_2.product = tc_product;
tc_item_2.addAdditionalProperty("key_additional_item", "val_additional_product");
var event = TCViewItemListEvent();
event.pageName = "event_page_name";
event.pageType = "event_page_type";
event.items = [tc_item_1, tc_item_2];
event.addAdditionalPropertyWithIntValue("key_additional_1", 12);
event.addAdditionalPropertyWithListValue("key_additional_2", [12,12,12]);
event.addAdditionalPropertyWithMapValue("key_map", {'test': 12, "test2": "value"});
event.itemListName = "itemListName";
serverside.execute(event);{% endtab %}
{% tab title="json" %}
{
"event_name": "view_item_list",
"item_list_name": "Related products",
"items": [
{
"id": "SKU_12345",
"quantity": 1,
"price": 9.99,
"variant": "red",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12345",
"name": "Trex tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "boy",
"brand": "Lacoste",
"colors": [
"red"
],
"price": 9.99
}
},
{
"id": "SKU_12346",
"quantity": 1,
"price": 9.99,
"variant": "green",
"coupon": "CHRISTMAS",
"discount": 1.99,
"product": {
"id": "12346",
"name": "Heart tshirt",
"category_1": "clothes",
"category_2": "t-shirts",
"category_3": "girl",
"brand": "Jenyfion",
"colors": [
"blue",
"white"
],
"price": 9.99
}
}
],
"user": {
"id": "12345",
"email": "[email protected]",
"consent_categories": [
1,
3
]
}
}{% endtab %} {% endtabs %}
- SCHÉMAS COURANTS -
Articles
Paramètres (requis et recommandés)
id
string
Oui
SKU_12345
L'ID d'un article.
Si vous n'avez pas d'ID d'article, vous pouvez utiliser l'ID du produit comme valeur. Ce champ est utilisé comme clé pour les mises à jour (ex : refund)
variant
string
Non
rouge
La variante de l'article.
list_position
number
Non
1
La position de l'article dans une liste ou une collection.
discount
number
Non
2.00
Valeur monétaire de la remise associée à un achat
quantity
number
Oui
2
La quantité de l'article.
affiliation
string
Non*
TÉLÉCHARGER
Requis pour la plupart des destinations d'affiliation.
coupon
string
Non
CHRISTMAS
Le code coupon associé à un article.
Produit
Paramètres (requis et recommandés)
id
string
Oui*
12345
L'ID du produit (ex : dans votre base de données de catalogue produit)
Le item.id et product.id n'ont pas à être différents. S'ils sont différents, typiquement le product.id est un identifiant de base de données, comme 9714107479 and the item.id est un identifiant destiné au public comme SKU-12345.
(*) Si vous avez importé votre catalogue produit dans la plateforme, le product.id correspond à l'ID produit unique dans le catalogue et peut être utilisé avec la fonctionnalité id expansion.
name
string
Oui
Trex
Nom du produit
price
number
Oui
14.99
Le prix du produit
currency
string (ISO 4217)
Non
EUR
Devise du price, au format ISO 4217 sur 3 lettres.
Si défini, le niveau d'événement currency est ignoré.
Les devises multiples par événement ne sont pas prises en charge. Chaque article doit définir la même devise.
category_1
string
Non
T-Shirts
Catégorie de produit (spécifique au contexte). item_category2 jusqu'à item_category5 peut également être utilisé si le produit a de nombreuses catégories.
brand
string
Non
Lacoste
Marque du produit
colors
Array[string]
Non
[blue, white]
La/les couleur(s) du produit
size
string
Non
128
Taille de l'article
User
Lorsque vous envoyez un événement, il doit contenir suffisamment d'informations pour identifier quel utilisateur l'a généré. Nous pouvons relier les événements entre eux en utilisant des cookies. Mais les partenaires de destination exigent des identifiants précis pour effectuer des actions.
id et email sont généralement les paramètres les plus utiles. Bien que certains partenaires de destination utilisent aussi firstname, lastname, birthdate, city, ...
Vous n'aurez pas toujours tous ces paramètres. Mais il est recommandé de les envoyer dès que possible pendant la navigation de l'utilisateur.
Paramètres (requis et recommandés)
id
string
Non*
845454
Identifiant principal de l'utilisateur (par ex. ID CRM)
(*) requis pour de nombreuses destinations et traitements internes.
email
string
Oui*
Email (valeur en clair)
(*) requis pour de nombreuses destinations et traitements internes. Non requis si email_sha256 est fourni
email_md5
string
Non*
8eb1b52... (taille 32)
Email, haché en utilisant algorithme MD5. Non requis si email est fourni (voir ci-dessous)
email_sha256
string
Non*
836f82d... (taille 64)
Email, haché en utilisant algorithme SHA-256. Non requis si email est fourni (voir ci-dessous)
phone
string
Non*
+33612345678
Numéro de téléphone, E.164 format (*) requis pour certaines destinations.
firstname
string
Non
John
Prénom
lastname
string
Non
Doe
Nom
gender
string
Non
m
Genre
fpour Femmempour Homme
birthdate
string
Non
1970-01-01
Date de naissance, YYYY-MM-DD format
city
string
Non
Boston
Ville
state
string
Non
Massachusetts
État
zipcode
string
Non
02108
Code postal
consent_categories
Array
Oui
[1,2,3]
Catégories de consentement de l'utilisateur. Nécessaires pour autoriser le partage de données avec les partenaires de destination. Elles sont automatiquement remplies à partir des sources web si vous utilisez Commanders Act CMP.
À propos du hachage
Dans certains cas, vous ne pourrez pas envoyer un paramètre valeur en clair. Elle est soit indisponible soit restreinte.
Il peut donc être possible d'envoyer les valeurs hachées. Nous acceptons actuellement 2 algorithmes : md5 et sha256.
Chaque user.<property> peut être envoyée sous format haché avec suffixe d'algorithme : _md5 ou _sha256 (underscore suivi du nom de l'algorithme en minuscules)
Exemple :
{
user: {
email_md5: '8eb1b522f60d11fa897de1dc6351b7e8', // md5('[email protected]')
email_sha256: '836f82db99121b3481011f16b49dfa5fbc714a0d1b1b9f784a1ebbbf5b39577f', // sha256('[email protected]')
phone_md5: '60dd761f55cb17f0532c9fb1679e8ddd', // md5('+33612345678')
phone_sha256: '42d573cfc315801d4cd8eddd5416b416a0bf298b9b9e12d6b07442c91db42bd8', // sha256('+33612345678')
}
}ℹ️ nous ne supportons que l'encodage hex (base16) &#xNAN;(c.-à-d : valeurs hachées. les valeurs sont transportées par des chaînes avec des caractères [0-9a-f]) Les autres encodages ne sont pas encore supportés
Pas besoin d'envoyer les deux valeur et valeurs hachées. valeurs :
si vous envoyez valeur valeur, les valeurs hachées. valeurs ne sont pas nécessaires &#xNAN;Nous pouvons générer valeurs hachées. valeurs côté serveur en utilisant valeur value
si vous n'envoyez pas valeur valeur, alors vous devriez remplir autant de valeurs hachées. valeurs que possible &#xNAN;Les partenaires exigent différents algorithmes de hachage et sans valeur valeur, nous ne pouvons générer aucun hash. C'est pourquoi nous avons besoin de l'exact valeurs hachées. value
- VALEUR ÉNUMÉRÉE -
Méthodes de paiement
Valeurs énumérées pour les méthodes de paiement :
payment_method
by_invoice
payment_method
by_bank_transfer_in_advance
payment_method
card
payment_method
check_in_advance
payment_method
cod
payment_method
coupon
payment_method
direct_debit
payment_method
online_payment_system
payment_method
other
Statut d'achat
Valeurs énumérées pour le statut d'achat :
status
annulé
status
livré
status
en_cours
status
partiellement_livré
status
partiellement_retourné
status
partiellement_expedie
status
en_attente_d'expédition
status
retourné
status
expédié
status
en_attente
Mis à jour
Ce contenu vous a-t-il été utile ?