Riferimento per le classi TAGDatalayer

Riferimento per le classi TAGDatalayer

Panoramica

Il livello dati è un dizionario contenente informazioni generiche sull'applicazione.

Utilizza un set di chiavi standard in modo che possa essere letto da qualsiasi parte che comprenda la specifica. Lo stato del livello dati viene aggiornato tramite la relativa API. Ad esempio, un'app potrebbe iniziare con il seguente dataLayer:

   {
     title: "Original screen title"
   }

Poiché lo stato/i dati di un'app possono cambiare, l'app può aggiornare il dataLayer con una chiamata come questo:

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

Ora il livello dati contiene:

   {
     title: "New screen title"
   }

Dopo un altro push:

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

Il dataLayer contiene:

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

L'esempio seguente mostra come funziona l'unione di array e mappe. Se il dataLayer originale contiene:

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

Dopo il push:

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

Il dataLayer contiene:

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

I push vengono eseguiti in modo sincrono; dopo il push, le modifiche si sono applicate al modello.

Quando viene inviata una chiave event al livello dati, le regole per i tag vengono valutate e tutti i tag corrispondenti a questo evento vengono attivati. Ad esempio, nel caso di un contenitore con un tag le cui regole di attivazione prevedono che "evento" sia uguale a "openScreen", dopo questo push:

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

il tag si attiverà.

Funzioni pubbliche dei membri

(void) - pushValue:forKey:
 Effettua il push di una coppia chiave/valore al livello dati.
(void) - push:
 Unisce l'oggetto update specificato al modello dei dati esistente, chiamando eventuali listener con l'aggiornamento (dopo l'unione).
(NSObject *)- get:
 Restituisce l'oggetto del modello associato alla chiave specificata.

Documentazione sulle funzioni membri

- (void) pushValue: (NSObject *) value
Chiave: (NSObject *) chiave

Effettua il push di una coppia chiave/valore al livello dati.

Questo è solo un metodo di convenienza che chiama push:@{key: value}.

- (void) push: (NSDictionary *) aggiornamento

Unisce l'oggetto update specificato al modello dei dati esistente, chiamando eventuali listener con l'aggiornamento (dopo l'unione).

È valido per i valori nel dizionario (o negli array incorporati) di tipo NSNull. Se vuoi rappresentare un valore mancante (ad esempio un indice vuoto in un elenco), utilizza l'oggetto kTAGDataLayerObjectNotPresent.

Di solito si tratta di una chiamata sincrona. Tuttavia, se, mentre il thread esegue il push, viene eseguito un altro push dallo stesso thread, il secondo push è asincrono (il secondo push restituirà prima che siano state apportate modifiche al livello dati). Questo secondo push dallo stesso thread può verificarsi, ad esempio, se viene eseguito un push del livello dati in risposta all'attivazione di un tag. Tuttavia, tutti gli aggiornamenti verranno elaborati prima che venga restituito il push più esterno.

Se l'elemento update contiene la chiave event, le regole verranno valutate e i tag corrispondenti verranno attivati.

Parametri:
updateL'oggetto Update da elaborare
- (NSObject*) get: (NSString *) chiave

Restituisce l'oggetto del modello associato alla chiave specificata.

Se la chiave non è presente, restituisce nil. Se è presente key, ma NSNull, restituisce NSNull.

La chiave può contenere punti incorporati. Ad esempio, una chiave di "a.b.c" restituisce il valore della chiave "c" nel dizionario con la chiave "b" del dizionario con la chiave "a" nel modello.