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 en 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 a partir de su nombre. Las rutinas booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer) y stringForKey: (TAGContainer) muestran el valor actual para el nombre de la macro de recopilación de valores, según las reglas asociadas con esa macro en el contenedor.
Por ejemplo, si tu contenedor tiene una macro de recopilación de valores con la clave "speed" cuyo valor es 32 y la regla de habilitación es Language es “en”. y otra macro de recopilación de valores con la clave “speed” cuyo valor es 45, y la regla de habilitación es Language no es "en", y realiza la siguiente llamada:
[container longForKey:@"speed"]
El resultado será 32 si el idioma actual del dispositivo es inglés; de lo contrario, 45.
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 empaqueta una versión inicial del contenedor con la aplicación. Se debe colocar como un recurso en el paquete con el nombre containerId, donde containerId es el mismo ID de contenedor que usarás dentro de esta API. Cuando llames a openContainerById:callback: (TAGManager), se mostrará el contenedor con esas reglas, etiquetas y macros 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á con las reglas más recientes.
El contenedor descargado se guarda de forma local. Cuando llames a openContainerById:callback: (TAGManager), primero se cargará el contenedor predeterminado y, luego, cualquier contenedor guardado de forma asíncrona. Si no se encuentra ninguna o si tiene más de 12 horas de antigüedad, se intentará recuperar una versión más reciente de la red. Para encontrar el estado de esas cargas asíncronas, pasa un elemento TAGContainerCallback a openContainerById:callback: (TAGManager).
A veces, es posible que quieras bloquear hasta que haya un contenedor no predeterminado disponible o uno nuevo que esté disponible recientemente. Para ello, puedes usar las devoluciones de llamada de openContainerById:callback: (TAGManager) o usar TAGContainerOpener.
Cuando termines de usar un contenedor, llama a close (TAGContainer).
Funciones de los miembros públicos | |
| (TAGContainer *) | - openContainerById:callback: |
| Devuelve un contenedor. | |
| (TAGContainer *) | - getContainerById: |
Muestra el contenedor asociado con el containerId determinado. Muestra nil si el contenedor aún no está abierto. | |
| (BOOL) | - previewWithUrl: |
| Obtén una vista previa de la app con la URL de entrada. | |
| (vacío) | - envío |
| Despacha el tráfico de red pendiente generado por etiquetas (píxeles arbitrarios, píxeles contadores de estadísticas, etc.). | |
| (vacío) | - dispatchWithCompletionHandler: |
| Envía el siguiente tráfico de red pendiente en la cola y llama a completedHandler cuando se envía la solicitud (devuelve kTAGDispatchGood) o se produce un error (devuelve kTAGDispatchError). | |
Funciones estáticas de miembros públicos | |
| (TAGManager *) | + instancia |
| Obtiene la instancia singleton de la clase TAGManager y la crea si es necesario. | |
Propiedades | |
| ID< TAGLogger > | registrador |
| El registrador que se usará para el SDK de Google Tag Manager. | |
| TAGRefreshMode | refreshMode |
| El modo de actualización que se usa para el SDK de Google Tag Manager. | |
| TAGDataLayer * | dataLayer |
| Llama al método push: (TAGDataLayer) para enviar eventos y otros datos. | |
| NSTimeInterval | dispatchInterval |
| Si este valor es positivo, la información de seguimiento se enviará automáticamente cada segundos de despachoInterval. | |
Documentación de la función de miembro
| - (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| devolución de llamada: | (id< TAGContainerCallback >) | devolución de llamada | |
Devuelve un contenedor.
Por lo general, el contenedor que se muestra estará vacío, pero la carga se realizará de forma asíncrona. Por lo tanto, el contenedor devuelto puede actualizarse antes o después de mostrarse, o nunca se puede actualizar si, por ejemplo, no hay conexión de red durante la vida útil del contenedor.
Se llamará a la devolución de llamada cuando sucedan varios eventos en 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á cargarla desde la red.
Si se llama por segunda vez a openContainerById:callback: para una containerId determinada, se mostrará nil, a menos que el contenedor anterior ya se haya cerrado.
- Parámetros:
-
containerId El ID del contenedor que se abrirá. callback Es un objeto a cuyos métodos se llamará durante el proceso de carga. Ten en cuenta que se puede llamar a los métodos desde diferentes subprocesos. Además, se pueden llamar antes de que se muestre openContainerById:callback:.
- Muestra:
- El contenedor abierto.
| - (TAGContainer *) getContainerById: | (NSString *) | containerId |
Muestra el contenedor asociado con el containerId determinado. Muestra nil si el contenedor aún no está abierto.
| - (BOOL) previewWithUrl: | (NSURL *) | url |
Obtén 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:
-
url La URL de vista previa.
- Muestra:
- SÍ, si la URL es una URL de vista previa válida de TagManager.
| + (TAGManager *) instancia |
Obtiene la instancia singleton de la clase TAGManager y la crea si es necesario.
- Muestra:
- La instancia singleton de TAGManager.
| - envío (vacío) |
Despacha el tráfico de red pendiente generado por etiquetas (píxeles arbitrarios, píxeles contadores de estadísticas, etc.).
| - (void) dispatchWithCompletionHandler: | (TAGDispatchResult) | completionHandler |
Envía el siguiente tráfico de red pendiente en la cola y llama a completedHandler cuando se envía la solicitud (devuelve kTAGDispatchGood) o se produce un error (devuelve kTAGDispatchError).
Si no hay una conexión de red o no hay datos para enviar, se devuelve kTAGDispatchNoData.
Llamar a este método con nil completeHandler es lo mismo que llamar a despacho.
Este método se puede utilizar para recuperar datos en segundo plano en iOS 7.0 o versiones posteriores.
Se recomienda llamar a este método cuando la aplicación se cierra para iniciar el envío de cualquier información de seguimiento que no se haya enviado.
Documentación de la propiedad
El registrador que se usará para el SDK de Google Tag Manager.
De forma predeterminada, Google Tag Manager registra los mensajes de error o advertencia, y omite los mensajes de información, depuración y verbosidad. Puedes usar tu propio registrador personalizado configurando esta propiedad.
- (TAGRefreshMode) refreshMode [read, write, assign] |
El modo de actualización que se usa para el SDK de Google Tag Manager.
Si se establece en kTAGRefreshModeDefaultContainer, el método de actualización puede usar 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 segundos de despachoInterval.
De lo contrario, la información de seguimiento se debe enviar de forma manual llamando al equipo de despacho.
De forma predeterminada, se configura en "120", lo que indica que la información de seguimiento se enviará automáticamente cada 120 segundos.