Referencia de la clase TAGDataLayer

Referencia de la clase TAGDataLayer

Descripción general

La capa de datos es un diccionario que contiene información genérica sobre la aplicación.

Utiliza un conjunto estándar de claves para que pueda leerlo cualquier parte que comprenda la especificación. El estado de la capa de datos se actualiza a través de su API. Por ejemplo, una app podría comenzar con el siguiente dataLayer:

   {
     title: "Original screen title"
   }

A medida que cambian el estado o los datos de una app, esta puede actualizar dataLayer con una llamada como la siguiente:

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

Ahora, la capa de datos contiene lo siguiente:

   {
     title: "New screen title"
   }

Después de otra inserción, sigue estos pasos:

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

El objeto dataLayer contiene lo siguiente:

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

En el siguiente ejemplo, se muestra cómo funciona la combinación de arrays y mapas. Si el dataLayer original contiene lo siguiente:

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

Después de que se realiza el envío, sigue estos pasos:

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

El objeto dataLayer contiene lo siguiente:

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

Los envíos se realizan de forma síncrona; después del envío, los cambios se reflejaron en el modelo.

Cuando se envía una clave event a la capa de datos, se evalúan las reglas para las etiquetas y se activan las que coincidan con este evento. Por ejemplo, en un contenedor con una etiqueta cuyas reglas de activación sean ese “evento” equivale a "openScreen", después de este envío:

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

se activará esa etiqueta.

Funciones de los miembros públicos

(vacío)- pushValue:forKey:
 Envía un par clave-valor a la capa de datos.
(vacío)- push:
 Combina el objeto update determinado en el modelo de datos existente y llama a cualquier objeto de escucha con la actualización (después de la combinación).
(NSObject *)- obtener:
 Devuelve el objeto en el modelo asociado con la clave determinada.

Documentación de la función de miembro

- (void) pushValue: (NSObject *) value
forKey: (NSObject *) Clave

Envía un par clave-valor a la capa de datos.

Este es solo un método de conveniencia que llama a push:@{key: value}.

- (void) push: (NSDictionary *) actualización

Combina el objeto update determinado en el modelo de datos existente y llama a cualquier objeto de escucha con la actualización (después de la combinación).

Es válido que los valores del diccionario (o de los arrays incorporados) sean del tipo NSNull. Si deseas representar un valor faltante (como un índice vacío en una lista), usa el objeto kTAGDataLayerObjectNotPresent.

Por lo general, esta es una llamada síncrona. Sin embargo, si, mientras el subproceso ejecuta el envío, se produce otro envío desde el mismo subproceso, entonces ese segundo envío es asíncrono (se devolverá el segundo envío antes de que se realicen cambios en la capa de datos). Este segundo envío del mismo subproceso puede ocurrir, por ejemplo, si se realiza un envío de la capa de datos en respuesta a la activación de una etiqueta. Sin embargo, todas las actualizaciones se procesarán antes de que se devuelva el envío más externo.

Si update contiene la event clave, se evaluarán las reglas y se activarán las etiquetas coincidentes.

Parámetros:
updateEl objeto de actualización que se procesará
- (NSObject*) get: (NSString *) key

Devuelve el objeto en el modelo asociado con la clave determinada.

Si no hay una clave, muestra nil. Si key está presente, pero NSNull, muestra NSNull.

La clave puede tener puntos incorporados. Por ejemplo: una clave de "a.b.c" muestra el valor de la “c”. en el diccionario con la clave "b" en el diccionario con la clave "a" en el modelo.