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 d'être lu par toute partie compréhensible de la spécification. 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"
   }

Étant donné que l'état et les données d'une application peuvent changer, celle-ci peut mettre à jour la couche de données avec un appel tel que:

   [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 cette transmission:

   [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 s'effectuent 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. Par exemple, si un conteneur est associé à une balise dont la règle de déclenchement est "événement" est égal à "openScreen", après cette poussée:

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

cette balise se déclenchera.

Fonctions de membre public

(inutile)- pushValue:forKey:
 Transfère une paire clé/valeur à la couche de données.
(inutile)- 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 les fonctions membres

- (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 (comme un index vide dans une liste), utilisez l'objet kTAGDataLayerObjectNotPresent.

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

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 *) key

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

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

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