Evénements Panier (Sales Insights)

  • iOS
  • watchOS
  • tvOS
 

Avant-propos

Cette documentation de marquage ne s’applique qu’à partir de la version 2.15.0 du Tracker.

Si vous ne voyez pas le menu « Sales Insights » dans Explorer, contactez-nous pour que nous activions la fonctionnalité pour vous.

 

Evénements Panier

Le tracker met à disposition une instance ecommerce exposant différents objets et méthodes utiles pour la mesure :

  • des affichages de panier,

    Il est possible d’activer en plus un marquage automatique de contenu de panier SalesTracker en surchargeant la variable de configuration « autoSalesTracker » :

    let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
    tracker.ecommerce.setAutoSalesTrackerEnabled(true, sync: true, completionHandler: nil)
    Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
    [tracker.ecommerce setAutoSalesTrackerEnabled:YES sync:YES completionHandler:nil];
    

  • des mises à jour de panier,
  • des étapes de livraison et de paiement,
  • de panier en attente de paiement.
  • Il est possible d’activer en plus un marquage automatique de commande SalesTracker en surchargeant la variable de configuration « autoSalesTracker » :

    let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
    tracker.ecommerce.setAutoSalesTrackerEnabled(true, sync: true, completionHandler: nil)
    Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
    [tracker.ecommerce setAutoSalesTrackerEnabled:YES sync:YES completionHandler:nil];
    

    Le domaine de collecte Ecommerce doit être renseigné via la variable de configuration « collectDomain » :

    tracker.ecommerce.setCollectDomain("collect-euw1", sync: true, completionHandler: nil)
    [tracker.ecommerce setCollectDomain:@"collect-euw1" sync:YES completionHandler:nil];
    

Le domaine de collecte Ecommerce doit être renseigné via la variable de configuration « collectDomain » :

tracker.ecommerce.setCollectDomain("collect-euw1", sync: true, completionHandler: nil)
[tracker.ecommerce setCollectDomain:@"collect-euw1" sync:YES completionHandler:nil];

Voir la liste complète des variables de configuration Ecommerce pouvant être surchargées en bas de page.

 

Affichage de panier

La mesure d’un affichage de panier se fait par la création d’un objet DisplayCart auquel sont associés :

  • un panier de type ECommerceCart,
  • une liste de produits products pouvant contenir un ou plusieurs produits de type ECommerceProduct.

Les propriétés d’un panier se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du panier (obligatoire).
  • « currency » – String : Devise.
  • « turnovertaxincluded » – Float : Montant total TTC du panier.
  • « turnovertaxfree » – Float : Montant total HT du panier.
  • « quantity » – Number : Nombre total de produits dans le panier.
  • « nbdistinctproduct » – Number : Nombre de produits distincts dans le panier.

Les propriétés d’un produit se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du produit (obligatoire).
  • « $ » – String : Nom du produit.
  • « pricetaxincluded » – Float : Prix TTC.
  • « pricetaxfree » – Float : Prix HT.
  • « quantity » – Number : Nombre de produits dans le panier.
  • « category1 » – String : Catégorie de niveau 1 du produit (jusqu’à 6 niveaux d’arborescence possibles ; de « category1 » à « category6 »).

La déclaration de produits est facultative pour l’analyse Ecommerce. Les produits, s’ils sont déclarés, permettront seulement d’enrichir l’analyse des ventes/commandes SalesTracker. Les paramètres à déclarer se limitent donc aux paramètres nécessaires au marquage SalesTracker.

Exemple

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
let dc: DisplayCart = tracker.ecommerce.displayCarts.add()
_ = dc.cart.setAll(obj:
    [
        "id": "53",
        "turnovertaxfree": 456.2,
        "turnovertaxincluded": 549,
        "nbdistinctproduct": 1,
        "quantity": 1,
        "currency": "EUR"
    ]
)
_ = dc.products.append(ECommerceProduct(obj: 
    [
        "id": "7",
        "$": "laptop_A56",
        "pricetaxincluded": 549,
        "pricetaxfree": 456.2, 
        "quantity": 1,
        "category1": "Computers_and_Networking",
        "category2": "Computers",
        "category3": "Laptops"
    ]))
tracker.dispatch()

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « tracker.events.send() » pour envoyer exclusivement vos données Ecommerce.

Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
DisplayCart *dc = [[tracker.ecommerce displayCarts] add];
NSMutableArray *dcproducts = [dc.products mutableCopy];
(void)[dc.cart setAllWithObj:@{
    @"id": @"53",
    @"turnovertaxfree": @456.2,
    @"turnovertaxincluded":@549,
    @"nbdistinctproduct": @1,
    @"quantity": @1,
    @"currency": @"EUR"
}];
[dcproducts addObject:[[ECommerceProduct alloc] initWithObj:@{
    @"id": @"7",
    @"$": @"laptop_A56",
    @"pricetaxincluded": @549,
    @"pricetaxfree": @456.2,
    @"category1": @"Computers_and_Networking",
    @"category2": @"Computers", 
    @"quantity": @1,
    @"category3": @"Laptops"
}]];
[dc setProducts: dcproducts];
[tracker dispatch];

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « [tracker.events send]; » pour envoyer exclusivement vos données Ecommerce.

 

Mise à jour de panier

La mesure d’une mise à jour de panier se fait par la création d’un objet UpdateCart auquel est associé :

  • un panier de type ECommerceCart.

Les propriétés d’un panier se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du panier (obligatoire).
  • « currency » – String : Devise.
  • « turnovertaxincluded » – Float : Montant total TTC du panier.
  • « turnovertaxfree » – Float : Montant total HT du panier.
  • « quantity » – Number : Nombre total de produits dans le panier.
  • « nbdistinctproduct » – Number : Nombre de produits distincts dans le panier.

Exemple

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
let uc: UpdateCart = tracker.ecommerce.updateCarts.add()
_ = uc.cart.setAll(obj:
    [
        "id": "34",
        "turnoverTaxFree": 52,
        "turnovertaxincluded": 62.4,
        "nbdistinctproduct": 1,
        "quantity": 2,
        "currency": "EUR"
    ]
)
tracker.dispatch()

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « tracker.events.send() » pour envoyer exclusivement vos données Ecommerce.

Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
UpdateCart *uc = [[tracker.ecommerce updateCarts] add];
(void)[uc.cart setAllWithObj:@{
    @"id": @"34",
    @"turnovertaxfree": @52,
    @"turnovertaxincluded": @62.4,
    @"nbdistinctproduct": @1,
    @"quantity": @2,
    @"currency": @"EUR"
}];
[tracker dispatch];

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « [tracker.events send]; » pour envoyer exclusivement vos données Ecommerce.

 

Affichage de l’étape de livraison

La mesure de l’étape de livraison se fait par la création d’un objet DeliveryCheckout auquel sont associés :

  • un panier de type ECommerceCart,
  • des données de livraison sous la forme d’un objet de type ECommerceShipping.

Les propriétés d’un panier se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du panier (obligatoire).
  • « currency » – String : Devise.
  • « turnovertaxincluded » – Float : Montant total TTC du panier.
  • « turnovertaxfree » – Float : Montant total HT du panier.
  • « quantity » – Number : Nombre total de produits dans le panier.
  • « nbdistinctproduct » – Number : Nombre de produits distincts dans le panier.

Les données de livraison se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés (à renseigner si connues à cette étape) :

  • « delivery » – String : Nom du transporteur.
  • « costtaxincluded » – Float : Montant des frais de livraison TTC.
  • « costtaxfree » – Float : Montant des frais de livraison HT.

Les données de livraison ne doivent être renseignées qu’une seule fois, soit lors de l’étape de livraison, soit lors de l’étape de paiement.

Exemple

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
let dch: DeliveryCheckout = tracker.ecommerce.deliveryCheckouts.add()
_ = dch.cart.setAll(obj:
    [
        "id": "34",
        "turnovertaxfree": 34,
        "turnovertaxincluded": 40.8,
        "nbdistinctproduct": 1,
        "quantity": 1,
        "currency": "EUR"
    ]
)
_ = dch.shipping.setAll(obj:
    [
        "costtaxfree": 7,
        "costtaxincluded": 8.4,
        "delivery": "My carrier"
    ]
)
tracker.dispatch()

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « tracker.events.send() » pour envoyer exclusivement vos données Ecommerce.

Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
DeliveryCheckout *dch = [[tracker.ecommerce deliveryCheckouts] add];
(void)[dch.cart setAllWithObj:@{
    @"id": @"34",
    @"turnovertaxfree": @34,
    @"turnovertaxincluded": @40.8,
    @"nbdistinctproduct": @1,
    @"quantity": @1,
    @"currency": @"EUR"
}];
(void)[dch.shipping setAllWithObj:@{
    @"costtaxfree": @7,
    @"costtaxincluded": @8.4,
    @"delivery": @"My carrier"
}];
[tracker dispatch];

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « [tracker.events send]; » pour envoyer exclusivement vos données Ecommerce.

 

Affichage de l’étape de paiement

La mesure de l’étape de paiement se fait par la création d’un objet PaymentCheckout auquel sont associés :

  • un panier de type ECommerceCart,
  • des données de livraison sous la forme d’un objet de type ECommerceShipping,

Les propriétés d’un panier se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du panier (obligatoire).
  • « currency » – String : Devise.
  • « turnovertaxincluded » – Float : Montant total TTC du panier (frais de livraison inclus).
  • « turnovertaxfree » – Float : Montant total HT du panier (frais de livraison inclus).
  • « quantity » – Number : Nombre total de produits dans le panier.
  • « nbdistinctproduct » – Number : Nombre de produits distincts dans le panier.

Les données de livraison se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés  :

  • « delivery » – String : Nom du transporteur.
  • « costtaxincluded » – Float : Montant des frais de livraison TTC.
  • « costtaxfree » – Float : Montant des frais de livraison HT.

Les données de livraison ne doivent être renseignées qu’une seule fois, soit lors de l’étape de livraison, soit lors de l’étape de paiement.

Exemple

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
let pch: PaymentCheckout = tracker.ecommerce.paymentCheckouts.add()
_ = pch.cart.setAll(obj:
    [
        "id": "34",
        "turnovertaxfree": 34,
        "turnovertaxincluded": 40.8,
        "nbdistinctproduct": 1,
        "quantity": 1,
        "currency": "EUR"
    ]
)
_ = pch.shipping.setAll(obj:
    [
        "costtaxfree": 7,
        "costtaxincluded": 8.4,
        "delivery": "My carrier"
    ]
)
tracker.dispatch()

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « tracker.events.send() » pour envoyer exclusivement vos données Ecommerce.

Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
PaymentCheckout *pch = [[tracker.ecommerce paymentCheckouts] add];
(void)[pch.cart setAllWithObj:@{
    @"id": @"34",
    @"turnovertaxfree": @34,
    @"turnovertaxincluded": @40.8,
    @"nbdistinctproduct": @1,
    @"quantity": @1,
    @"currency": @"EUR"
}];
(void)[pch.shipping setAllWithObj:@{
    @"costtaxfree": @7,
    @"costtaxincluded": @8.4,
    @"delivery": @"My carrier"
}];
[tracker dispatch];

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « [tracker.events send]; » pour envoyer exclusivement vos données Ecommerce.

 

Panier en attente de paiement

Un panier en attente de paiement doit être validé par une confirmation de transaction côté serveur.

La mesure d’un panier en attente de paiement se fait par la création d’un objet CartAwaitingPayment auquel sont associés :

  • un panier de type ECommerceCart,
  • une liste de produits, products, pouvant contenir un ou plusieurs produits de type ECommerceProduct.
  • des données de livraison sous la forme d’un objet de type ECommerceShipping,
  • des données de paiement sous la forme d’un objet de type ECommercePayment,
  • des données de transaction sous la forme d’un objet de type ECommerceTransaction.

Les propriétés d’un panier se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « id » – String : Identifiant du panier (obligatoire).
  • « currency » – String : Devise.
  • « turnovertaxincluded » – Float : Montant total TTC du panier (frais de livraison inclus).
  • « turnovertaxfree » – Float : Montant total HT du panier (frais de livraison inclus).
  • « quantity » – Number : Nombre total de produits dans le panier.
  • « nbdistinctproduct » – Number : Nombre de produits distincts dans le panier.

Les propriétés d’un produit se déclarent sous la forme d’une collection de type Dictionary avec différentes clés :

  • « id » – String : Identifiant du produit (obligatoire).
  • « variant » – String : Variante du produit (taille, couleur, etc.).
  • « $ » – String : Nom du produit.
  • « brand » – String : Marque du produit.
  • « discount » – Boolean : Produit remisé (0 pour non ; 1 pour oui).
  • « pricetaxincluded » – Float : Prix TTC.
  • « pricetaxfree » – Float : Prix HT.
  • « currency » – String : Devise.
  • « stock » – Boolean : Produit en stock (0 pour non ; 1 pour oui).
  • « quantity » – Number : Nombre de produits en attente de paiement.
  • « category1 » – String : Catégorie de niveau 1 du produit (jusqu’à 6 niveaux d’arborescence possibles ; de « category1 » à « category6 »).

Les données de livraison se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés  :

  • « delivery » – String : Nom du transporteur.
  • « costtaxincluded » – Float : Montant des frais de livraison TTC.
  • « costtaxfree » – Float : Montant des frais de livraison HT.

Le moyen de paiement se déclare dans une propriété :

  • « mode » – String : Moyen de paiement.

Les propriétés de la transaction se déclarent sous la forme d’une collection de type Dictionary  avec différentes clés :

  • « promocode » – Array : Tableau de codes promotionnels pouvant contenir un ou plusieurs codes. Un code promotionnel se déclare sous la forme d’un libellé.
  • « firstpurchase » – Boolean : Première commande du client (0 pour non ; 1 pour oui).

Si vous utilisez le double marquage avec SalesTracker, il sera nécessaire d’ajouter un écran en tant que paramètre à l’initialisation du panier. La page devra de plus être déclarée comme objectif principal.

Exemple

let tracker: Tracker = ATInternet.sharedInstance.defaultTracker
// With SalesTracker
tracker.ecommerce.setAutoSalesTrackerEnabled(true, sync: true, completionHandler: nil)
let cap: CartAwaitingPayment = tracker.ecommerce.cartAwaitingPayments.add(screenLabel: "transaction")
// Without SalesTracker
//tracker.ecommerce.setAutoSalesTrackerEnabled(false, sync: true, completionHandler: nil)
//let cap: CartAwaitingPayment = tracker.ecommerce.cartAwaitingPayments.add(screenLabel: nil)
_ = cap.cart.setAll(obj:
    [
        "id": "34",
        "turnovertaxfree": 463.2,
        "turnovertaxincluded": 557.4,
        "nbdistinctproduct": 1,
        "quantity": 1,
        "currency": "EUR",
        "creation_utc": 1514973161 //UTC timestamp in seconds
    ]
)
cap.products.append(ECommerceProduct(obj: 
    [
        "id": "7",
        "variant": "1",
        "$": "laptop_A56",
        "brand": "ACER",
        "discount": 1,
        "pricetaxincluded": 549,
        "pricetaxfree": 456.2,
        "currency": "EUR",
        "stock": 1,
        "quantity": 1,
        "category1": "Computers_and_Networking",
        "category2": "Computers",
        "category3": "Laptops"
    ]))
_ = cap.shipping.setAll(obj:
    [
        "costtaxfree": 7,
        "costtaxincluded": 8.4,
        "delivery": "My carrier"
    ]
)
_ = cap.payment.set(key: "mode", value: "Credit card")
_ = cap.transaction.setAll(obj:
    [
        "promocode": ["DQQYRZSJ", "UN1ENE27"],
        "firstpurchase": 0
    ]
)
tracker.dispatch()

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « tracker.events.send() » pour envoyer exclusivement vos données Ecommerce.

Tracker* tracker = [ATInternet sharedInstance].defaultTracker;
// With SalesTracker
[tracker.ecommerce setAutoSalesTrackerEnabled:YES sync:YES completionHandler:nil];
CartAwaitingPayment *cap = [[tracker.ecommerce cartAwaitingPayments] addWithScreenLabel:@"transaction"];
// Without SalesTracker
//[tracker.ecommerce setAutoSalesTrackerEnabled:NO sync:YES completionHandler:nil];
//CartAwaitingPayment *cap = [[tracker.ecommerce cartAwaitingPayments] addWithScreenLabel:nil];
NSMutableArray *capproducts = [cap.products mutableCopy];
(void)[cap.cart setAllWithObj:@{
    @"id": @"34",
    @"turnovertaxfree": @463.2,
    @"turnovertaxincluded": @557.4,
    @"nbdistinctproduct": @1,
    @"quantity": @1,
    @"currency": @"EUR",
    @"creation_utc": @1514973161 //UTC timestamp in seconds
}];
[capproducts addObject:[[ECommerceProduct alloc] initWithObj:@{
    @"id": @"7",
    @"variant": @"1",
    @"$": @"laptop_A56",
    @"brand": @"ACER",
    @"discount": @1,
    @"pricetaxincluded": @549,
    @"pricetaxfree": @456.2,
    @"currency": @"EUR",
    @"stock": @1,
    @"quantity": @1,
    @"category1": @"Computers_and_Networking",
    @"category2": @"Computers",
    @"category3": @"Laptops"
}]];
(void)[cap.shipping setAllWithObj:@{
    @"costtaxfree": @7,
    @"costtaxincluded": @8.4,
    @"delivery": @"My carrier"
}];
(void)[cap.payment setWithKey:@"mode" value: @"Credit card"];
(void)[cap.transaction setAllWithObj:@{
    @"promocode": @[@"DQQYRZSJ", @"UN1ENE27"],
    @"firstpurchase": @0
}];
[cap setProducts: capproducts];
[tracker dispatch];

Vous pouvez si vous le souhaitez utiliser la méthode indépendante « [tracker.events send]; » pour envoyer exclusivement vos données Ecommerce.

 

Annexes

 

Variables de configuration

Nom Valeur par défaut Description Version
collectDomain «  » Domaine de collecte Sales Insights  >= 2.12.0
autoSalesTracker false Activer la mesure automatique de contenu de panier SalesTracker sur un événement d’affichage de panier  >= 2.12.0
 

Cet article vous a-t-il été utile ?

Dernière mise à jour : 10/09/2019