Référence de la classe TAGDataLayer

Référence de la classe TAGDataLayer

Présentation

La couche de données est un dictionnaire contenant des informations génériques sur l'application.

Il utilise un ensemble standard de clés afin que toute partie prenante connaissance de la spécification puisse le lire. L'état de la couche de données est mis à jour via son API. Par exemple, une application peut commencer par la couche de données suivante:

   {
     title: "Original screen title"
   }

Si l'état ou les données d'une application peuvent changer, celle-ci peut mettre à jour la dataLayer avec un appel du type:

   [dataLayer push:@{@"title": @"New screen title"}];

La couche de données contient maintenant:

   {
     title: "New screen title"
   }

Après un autre transfert:

   [dataLayer push:@{@"xyz": @3}];

La couche de données contient:

   {
     "title": "New screen title",
     "xyz": 3
   }

L'exemple suivant montre comment fonctionne la fusion de tableaux et de cartes. Si la couche de données d'origine contient:

   {
     "items": @[@"item1", [NSNull null], @"item2", @{@"a": @"aValue", @"b": @"bValue"}]
   }

Après ce transfert:

   [dataLayer push:@{@"items":
       @[[NSNull null], @"item6", kTAGDataLayerObjectNotPresent, @{@"a": [NSNull null]}]}

La couche de données contient:

   {
     "items": @[[NSNull null], @"item6", @"item2", @{@"a": [NSNull null], @"b": @"bValue"}]}
   }

Les transferts se font de manière synchrone. Après le transfert, les modifications sont répercutées dans le modèle.

Lorsqu'une clé event est transmise à la couche de données, les règles des balises sont évaluées et toutes les balises correspondant à cet événement se déclenchent. Prenons l'exemple d'un conteneur avec une balise dont les règles de déclenchement indiquent que "événement" est égal à "openScreen", après ce transfert:

   [dataLayer push:@{@"event", @"openScreen"}];

cette balise se déclenchera.

Fonctions de membre public

(void) pushValue:forKey:
 Transfère une paire clé/valeur à la couche de données.
(void) - push:
 Fusionne l'objet update donné dans le modèle de données existant, en appelant tous les écouteurs avec la mise à jour (après la fusion).
(NSObject *)- get:
 Renvoie l'objet du modèle associé à la clé donnée.

Documentation sur la fonction de membre

- (void) pushValue: (NSObject *) value
forKey: (NSObject *) clé

Transfère une paire clé/valeur à la couche de données.

Il s'agit simplement d'une méthode pratique qui appelle push:@{key: value}.

- (void) push: (NSDictionary *) mise à jour

Fusionne l'objet update donné dans le modèle de données existant, en appelant tous les écouteurs avec la mise à jour (après la fusion).

Les valeurs du dictionnaire (ou des tableaux intégrés) peuvent être de type NSNull. Si vous souhaitez représenter une valeur manquante (par exemple, un index vide dans une liste), utilisez l'objet kTAGDataLayerObjectNotPresent.

Il s'agit généralement d'un appel synchrone. Toutefois, si, pendant que le thread exécute le transfert, une autre transmission se produit à partir du même thread, ce deuxième transfert est asynchrone (le deuxième envoi sera renvoyé avant que des modifications n'aient été apportées à la couche de données). Cette seconde transmission à partir du même thread peut se produire, par exemple, si une transmission de la couche de données est effectuée en réponse au déclenchement d'une balise. Cependant, toutes les mises à jour seront traitées avant les retours push externe.

Si update contient la clé event, les règles seront évaluées et les balises correspondantes se déclencheront.

Paramètres :
updateObjet de mise à jour à traiter
- (NSObject*) get: (NSString *) clé

Renvoie l'objet du modèle associé à la clé donnée.

Si la clé n'est pas présente, renvoie nil. Si key est présent, mais que NSNull, renvoie NSNull.

La clé peut inclure des points. Par exemple, une clé de "a.b.c" renvoie la valeur de la clé "c" dans le dictionnaire avec la clé "b" dans le dictionnaire et la clé "a" dans le modèle.