Administrador de etiquetas

clase pública TagManager

Esta es la implementación de Google Tag Manager (GTM) para dispositivos móviles. 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 de la 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 con una clave determinada. Las rutinas getBoolean(String), getDouble(String), getLong(String) y getString(String) muestran el valor actual de la clave de una macro de recopilación de valores, según las reglas asociadas con 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 Language 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", entonces la siguiente llamada:

 container.getLong("speed")
mostrará 32 si el idioma actual del dispositivo es el inglés, o bien 45 de lo contrario.

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 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 con el nombre tagmanager/containerId, en el que containerId es el mismo ID de contenedor que usarás en esta API. Cuando llames a openContainer(String, Container.Callback), el contenedor se mostrará con esas reglas o macros empaquetadas. 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 manera local. Cuando llamas a openContainer(String, Container.Callback), primero cargará el contenedor predeterminado y, luego, cargará de manera asíncrona cualquier contenedor guardado. Si no se encuentra ninguno 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 Container.Callback a openContainer(String, Container.Callback).

En ocasiones, es posible que quieras bloquear hasta que haya un contenedor que no predeterminado esté disponible o hasta que haya un contenedor nuevo 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, advertencias, información, depuración y detalles
enum TagManager.RefreshMode Modo para actualizar el contenedor. 

Resumen de métodos públicos

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

Métodos públicos

public Contenedor getContainer (String containerId)

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

public Context getContext ()

Muestra el contexto guardado asociado con este objeto.

public DataLayer getDataLayer ()

Muestra el objeto de capa de datos que utiliza el administrador de etiquetas.

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

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

public Logger getLogger ()

Muestra el registrador que usa Tag Manager.

public TagManager.RefreshMode getRefreshMode ()

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

public Container openContainer (String containerId, Container.Callback devolución de llamada)

Muestra un contenedor. Se llamará a la devolución de llamada a medida que ocurran varias situaciones para el contenedor. Como mínimo, openContainer 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á cargar desde la red.

Por lo general, el contenedor mostrado estará vacío, pero la carga se realizará en un subproceso independiente, por lo que el contenedor mostrado se puede actualizar antes o después de mostrarse, o puede que nunca se actualice (por ejemplo, si no hay conexión de red durante la vida útil del contenedor).

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

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

público void setLogger (Logger logger)

Reemplaza el registrador existente que usa Tag Manager.

public void setRefreshMode (TagManager.RefreshMode modo)

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