Developers » Généralités » Utilisation du dispatch() (SDKs)
Utilisation du dispatch() (SDKs)
Avant-propos
Cet article explique le fonctionnement détaillé de la méthode dispatch uniquement pour les SDK mobiles.
Explications
Qu’est-ce que le dispatch ?
Le dispatch est une fonction implémentée dans les SDK qui permet d’envoyer toutes les données de marquage en une seule fois, à l’inverse, par exemple, du sendView pour les écrans ou du sendTouch pour les gestes, qui n’envoient que les données propres à leur type. Cependant, l’utilisation du dispatch requiert quelques informations afin de ne pas avoir de hits problématiques.
Comment l’utiliser ?
Pour bien utiliser cette méthode, il est nécessaire de comprendre le système d’ajout des données de marquage.
Ce système repose sur la chronologie d’exécution du code. En effet, lors de l’implémentation du marquage de votre application, des objets seront ajoutés au fur et à mesure de l’exécution du code :
// Adding Custom Var tracker.CustomVars().add(1, "value", CustomVar.CustomVarType.App); // Adding Custom Object tracker.CustomObjects().add("{\"key\":\"value\"}"); // Adding Aisle tracker.Aisles().add("level1"); // Dispatch tracker.dispatch();
Dans cet exemple, tous les objets ajoutés sont liés au même type de marquage, il n’y aura donc qu’un seul hit envoyé contenant tout.
Cependant, si on ajoute un Geste :
// Adding Custom Var tracker.CustomVars().add(1, "value", CustomVar.CustomVarType.App); // Adding Custom Object tracker.CustomObjects().add("{\"key\":\"value\"}"); // Adding Gesture tracker.Gestures().add("gesture"); // Adding Aisle tracker.Aisles().add("level1"); // Dispatch tracker.dispatch();
Si ce code est exécuté, deux hits seront envoyés dans cet ordre :
- Un premier contenant Gesture et CustomObject
- Un second contenant CustomVar et Aisle
Pourquoi ? Car certains objets sont des objets d’agréments et les autres des objets finaux.
Les objets d’agréments sont utilisés pour enrichir les données et les objets finaux vont déclencher l’envoi d’un hit contenant toutes les informations compatibles avec son type au moment de son exécution.
En reprenant l’exemple précédent :
tracker.CustomVars().add(1, "value", CustomVar.CustomVarType.App); // -> Object compatible with Screen // Adding Custom Object tracker.CustomObjects().add("{\"key\":\"value\"}"); // -> Object compatible with all types // Adding Gesture tracker.Gestures().add("gesture"); // "Final" object : Sending hit which contains compatible data with Gesture // Adding Aisle tracker.Aisles().add("level1"); // Object compatible with Screen // Dispatch tracker.dispatch(); // If no other final object was added before, sending all objects added
- Ajout d’un objet CustomVar, agrémentant un Screen
- Ajout d’un objet CustomObject, agrémentant n’importe quel hit
- Ajout d’un objet « final » Gesture -> Envoi d’un hit contenant toutes les informations compatibles avec un Gesture, en l’occurence à ce niveau d’exécution du code, seul le CustomObject ajouté est compatible
- Ajout d’un objet Aisle, agrémentant un Screen
- Appel au dispatch : si aucun objet « final » n’est ajouté avant son exécution, tous les objets ajoutés précédemment vont être envoyés en respectant leur compatibilité.
Tableau récapitulatif
Objets « finaux » | Objets d’agréments compatibles |
---|---|
Défaut/Screen |
|
Gesture |
|
Publisher, SelfPromotion |
|
Product |
|