Administrador de etiquetas

clase pública TagManager

Esta es la implementación para dispositivos móviles de Google Tag Manager (GTM). Ejemplo de uso:

 Container container = TagManager.getInstance(context).openContainer(myContainerId);
 String value = container.getString("myKey");

 DataLayer dataLayer = TagManager.getInstance(context).getDataLayer();
 dataLayer.push(DataLayer.mapOf("event", "openScreen", "screenName", "Main Page"));
Un contenedor es una colección de macros, etiquetas y reglas. Se crea dentro del aplicación de GTM y se le asigna un ID de contenedor. Este ID de contenedor es el que se usa en esta API.

La clase Container proporciona métodos para recuperar valores según una clave. Las rutinas getBoolean(String), getDouble(String) getLong(String) y getString(String) muestran el valor actual. para la clave de una macro de recopilación de valor, según las reglas asociadas al contenedor.

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

 container.getLong("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 DataLayer 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 generarán etiquetas que coincidan con este evento. se dispare.

Se empaqueta una versión inicial del contenedor con la aplicación. Debe ser se coloca como un elemento con el nombre tagmanager/containerId donde containerId es el mismo el ID del contenedor que usarás en esta API. Cuando llamas a openContainer(String, Container.Callback), el contenedor se devolverán con esas reglas o 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 la aplicación para dispositivos móviles actualiza el contenedor desde la red (actualmente cada 12 horas) obtendrá la nueva versión. Cuando llama 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 openContainer(String, Container.Callback), primero cargará el contenedor predeterminado y cargará de forma asíncrona cualquier contenedor guardado. Si no hay ninguno Si la encuentra o si tiene más de 12 horas de antigüedad, intentará recuperar una versión más reciente de la red. Puedes encontrar el estado de esas cargas asíncronas pasando un De Container.Callback a openContainer(String, Container.Callback).

Es posible que quieras bloquear hasta que haya un contenedor no predeterminado disponible del contenedor nuevo más reciente está disponible. ContainerOpener es una clase de utilidad que puede ayudarte.

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

Resumen de clases anidadas

interfaz TagManager.Logger Una interfaz simple para el registro de errores/advertencia/información/depuración/verbose.
enum TagManager.RefreshMode Modo para actualizar el contenedor.

Resumen de métodos públicos

Contenedor
getContainer(String containerId)
Contexto
DataLayer
estático TagManager
getInstance(contexto contexto)
Logger
TagManager.RefreshMode
Contenedor
openContainer(String containerId, Container.Callback devolución de llamada)
void
setLogger(Registrador registrador)
void

Métodos públicos

público Contenedor . getContainer (Cadena containerId)

Muestra el contenedor abierto asociado con containerId. Muestra null si el contenedor aún no está abierto.

público Contexto getContext ()

Muestra el contexto guardado asociado con este objeto.

público DataLayer . getDataLayer ()

Devuelve el objeto de capa de datos que utiliza Tag Manager.

público estático TagManager . getInstance (Contexto contexto)

Obtén la instancia singleton de la clase TagManager y créala si es necesario.

público Registrador . getLogger ()

Muestra el registrador que utiliza Tag Manager.

público TagManager.RefreshMode . getRefreshMode ()

Muestra el modo de actualización que se usa para todos los contenedores.

público Contenedor . openContainer (String containerId, Container.Callback devolución de llamada)

Devuelve un contenedor. Se llamará a la devolución de llamada cuando sucedan varios eventos el contenedor. Como mínimo, openContainer intentará cargar una versión guardada del objeto contenedor. Si no hay una versión guardada o si la versión guardada está desactualizada, intenta para cargar desde la red.

Por lo general, el contenedor que se devuelve estará vacío, pero la carga se realizará en un subproceso, por lo que el contenedor devuelto puede actualizarse antes y después de devolverse, o que nunca se actualicen (si, por ejemplo, no se pierde la conexión a la red durante el ciclo de vida del contenedor).

Si llamas a openContainer por segunda vez para un containerId determinado, se generará una se arrojará una excepción.

Parámetros
containerId el ID del contenedor que se abrirá
callback un objeto a cuyos métodos se llamará durante partes de la carga. el proceso de administración de recursos. Ten en cuenta que se puede llamar a los métodos desde diferentes subprocesos. Además, pueden se debe llamar antes de que se devuelva openContainer.

público anular setLogger (Registrador registrador)

Reemplaza el registrador existente que usa Tag Manager.

público anular setRefreshMode (TagManager.RefreshMode modo)

Establece el modo de actualización que se usa para todos los contenedores.