Referencia de la clase TAGManager


Descripción general

Una clase que es la implementación para dispositivos móviles de Google Tag Manager (GTM).

Ejemplo de uso:

      TAGContainer *container =
          [[TAGManager instance] openContainerById:myContainerId];
      NSString *value = [container stringForKey:@"myKey"];
      TAGDataLayer *dataLayer =
          [[TAGManager instance] dataLayer];
      [dataLayer push:@{@"event": @"openScreen",
                        @"screenName": @"Main Page"}];

Un contenedor es una colección de macros, reglas y etiquetas. Se crea dentro de la aplicación de GTM (http://www.google.com/tagmanager) y se le asigna un ID de contenedor. Este ID de contenedor es el que se usa en esta API.

La clase TAGContainer proporciona métodos para recuperar valores de macro dado el nombre de la macro. Las rutinas booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer) y stringForKey: (TAGContainer) mostrarán el valor actual del nombre de la macro de recopilación de valores, según las reglas asociadas a esa macro en el contenedor.

Por ejemplo, si tu contenedor tiene una macro de recopilación de valores con una clave "speed" cuyo valor es 32, y la regla de habilitación es "en"; y otra macro de recopilación de valores con una clave "speed" cuyo valor es 45, y la regla de habilitación es Language no es "en", se realiza la siguiente llamada:

     [container longForKey:@"speed"]
 

mostrará 32 si el idioma actual del dispositivo es inglés, o bien 45 en caso contrario.

La capa de datos es un mapa que contiene información genérica sobre la aplicación. La clase TAGDataLayer proporciona métodos para enviar y recuperar datos de la capa de datos. Si envías una clave event a la capa de datos, se activarán las etiquetas que coincidan con este evento.

Se incluye una versión inicial del contenedor con la aplicación. Debe colocarse como un recurso en el paquete con el nombre containerId, en el que containerId es el mismo ID de contenedor que usarás en esta API. Cuando llames a openContainerById:callback: (TAGManager), se mostrará el contenedor con esas macros, etiquetas y reglas agrupadas. Crearás el contenedor en la IU y usarás el botón Descargar para descargarlo.

Puedes modificar el contenedor en la IU y publicar una versión nueva. En ese caso, la próxima vez que la app para dispositivos móviles actualice el contenedor desde la red (actualmente cada 12 horas), obtendrá esa versión nueva. Cuando llamas a una de las rutinas get..., el valor se calculará usando las reglas más recientes.

El contenedor descargado se guarda de forma local. Cuando llamas a openContainerById:callback: (TAGManager), primero se cargará el contenedor predeterminado y, luego, se cargará de forma asíncrona cualquier contenedor guardado. Si no se encuentra ninguno o si tiene más de 12 horas de antigüedad, intentará recuperar una versión más reciente desde la red. Para encontrar el estado de esas cargas asíncronas, pasa una TAGContainerCallback a openContainerById:callback: (TAGManager).

En ocasiones, es posible que quieras aplicar el bloqueo hasta que haya un contenedor que no predeterminado esté disponible o hasta que haya uno nuevo disponible recientemente. Para ello, usa las devoluciones de llamada en openContainerById:callback: (TAGManager) o TAGContainerOpener.

Cuando termines con un contenedor, llama a close (TAGContainer).

Funciones públicas de miembro

(TAGContainer *)- openContainerById:callback:
 Muestra un contenedor.
(TAGContainer *)getContainerById:
 Muestra el contenedor asociado con el containerId especificado; muestra nil si el contenedor aún no está abierto.
(BOOL) - previewWithUrl:
 Muestra una vista previa de la app con la URL de entrada.
(void) - despacho
 Envía el tráfico de red pendiente que generan etiquetas (píxeles arbitrarios, pixeles contadores de estadísticas, etc.).
(void) - dispatchWithCompletionHandler:
 Envía el siguiente tráfico de red pendiente en la cola y llama a finishHandler cuando se envía la solicitud (se muestra kTAGDispatchGood) o cuando se produce un error (se muestra kTAGDispatchError).

Funciones de miembro públicas estáticas

(TAGManager *)+ instancia
 Obtiene la instancia singleton de la clase TAGManager y la crea si es necesario.

Propiedades

id< TAGLogger >logger
 El registrador que se debe usar para el SDK de Google Tag Manager.
TAGRefreshModerefreshMode
 El modo de actualización que se usa para el SDK de Google Tag Manager.
TAGDataLayerdataLayer
 Llama al método push: (TAGDataLayer) para enviar eventos y otros datos.
NSTimeIntervaldispatchInterval
 Si este valor es positivo, la información de seguimiento se enviará automáticamente cada segundo de dispatchInterval.

Documentación de las funciones de los miembros

- (TAGContainer *) openContainerById: (NSString *) containerId
devolución de llamada: (id< TAGContainerCallback >) devolución de llamada

Muestra un contenedor.

Por lo general, el contenedor mostrado estará vacío, pero la carga se realizará de forma asíncrona, por lo que el contenedor mostrado puede actualizarse antes o después de mostrarse, o es posible que nunca se actualice si, por ejemplo, no hay conexión de red durante la vida útil del contenedor.

Se llamará a la devolución de llamada a medida que ocurran varias situaciones para el contenedor. Como mínimo, openContainerById:callback: intentará cargar una versión guardada del contenedor. Si no hay una versión guardada o si la versión guardada está desactualizada, se intentará realizar la carga desde la red.

Si se llama a openContainerById:callback: por segunda vez para un containerId determinado, se mostrará nil, a menos que el contenedor abierto anterior ya se haya cerrado.

Parámetros:
containerIdEl ID del contenedor que se abrirá.
callbackEs un objeto a cuyos diversos métodos se llamará durante el proceso de carga. Ten en cuenta que los métodos se pueden llamar desde diferentes subprocesos. Además, es posible que se los llame antes de que se muestre openContainerById:callback:.
Devuelve:
Es el contenedor abierto.
- (TAGContainer *) getContainerById: (NSString *) containerId

Muestra el contenedor asociado con el containerId especificado; muestra nil si el contenedor aún no está abierto.

- (BOOL) previewWithUrl: (NSURL *) url

Muestra una vista previa de la app con la URL de entrada.

La URL válida debe comenzar con lo siguiente:

 tagmanager.c.<app_name>://preview/p?id=

donde <app_name> es el nombre de la aplicación.

Parámetros:
urlURL de vista previa.
Devuelve:
SÍ, si la URL es una URL de vista previa de Tagmanager válida.

Obtiene la instancia singleton de la clase TAGManager y la crea si es necesario.

Devuelve:
La instancia singleton de TAGManager.
- (vacío) dispatch

Envía el tráfico de red pendiente que generan etiquetas (píxeles arbitrarios, pixeles contadores de estadísticas, etc.).

- (void) dispatchWithCompletionHandler: (TAGDispatchResult) completionHandler

Envía el siguiente tráfico de red pendiente en la cola y llama a finishHandler cuando se envía la solicitud (se muestra kTAGDispatchGood) o cuando se produce un error (se muestra kTAGDispatchError).

Si no hay conexión de red o datos para enviar, se muestra kTAGDispatchNoData.

Llamar a este método con un elemento dispatchHandler nulo es igual que llamar al equipo de despacho.

Este método se puede usar para recuperar datos en segundo plano en iOS 7.0 o versiones posteriores.

Sería sensato llamar a este método cuando se cierre la aplicación para iniciar el envío de cualquier información de seguimiento no enviada.


Documentación de la propiedad

- (id<TAGLogger>) logger [read, write, assign]

El registrador que se debe usar para el SDK de Google Tag Manager.

De forma predeterminada, Google Tag Manager registra los mensajes de error o advertencia y, además, ignora los mensajes de información, depuración o detalles. Puedes configurar esta propiedad para usar tu propio registrador personalizado.

- (TAGRefreshMode) refreshMode [read, write, assign]

El modo de actualización que se usa para el SDK de Google Tag Manager.

Configurarlo como kTAGRefreshModeDefaultContainer permite que el método de actualización use solo el contenedor predeterminado para fines de desarrollo. El valor predeterminado es kTAGRefreshModeStandard.

- (TAGDataLayer*) dataLayer [read, assign];

Llama al método push: (TAGDataLayer) para enviar eventos y otros datos.

- (NSTimeInterval) dispatchInterval [read, write, assign]

Si este valor es positivo, la información de seguimiento se enviará automáticamente cada segundo de dispatchInterval.

De lo contrario, la información de seguimiento debe enviarse de forma manual llamando al equipo de despacho.

El valor predeterminado es "120", lo que indica que la información de seguimiento se enviará automáticamente cada 120 segundos.