TagManager

classe publique TagManager

Il s'agit de l'implémentation de Google Tag Manager pour mobile. Exemple d'utilisation :

 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 conteneur est un ensemble de macros, de balises et de règles. Il est créé dans l'application GTM et reçoit un ID de conteneur. Cet ID de conteneur est celui utilisé dans cette API.

La classe Container fournit des méthodes permettant de récupérer les valeurs à partir d'une clé. Les routines getBoolean(String), getDouble(String), getLong(String) et getString(String) renvoient la valeur actuelle de la clé d'une macro de collection de valeurs, en fonction des règles associées au conteneur.

Par exemple, si votre conteneur comporte une macro de collection de valeurs avec une clé speed dont la valeur est 32 et que la règle d'activation est Language est "en", ainsi qu'une autre macro de collection de valeurs avec une clé speed dont la valeur est 45 et que la règle d'activation est Language n'est pas "en",

 container.getLong("speed")
renvoie alors 32 si la langue actuelle de l'appareil est l'anglais, ou 45 dans le cas contraire.

La couche de données est une carte contenant des informations génériques sur l'application. La classe DataLayer fournit des méthodes pour transférer et récupérer des données depuis la couche de données. Si vous transmettez une clé event à la couche de données, les balises correspondant à cet événement se déclenchent.

Une version initiale du conteneur est fournie avec l'application. Il doit être placé en tant que composant nommé tagmanager/containerId, où containerId est le même ID de conteneur que celui que vous utiliserez dans cette API. Lorsque vous appelez openContainer(String, Container.Callback), le conteneur est renvoyé avec ces règles/macros groupées. Vous allez créer le conteneur dans l'interface utilisateur et utiliser le bouton "Télécharger" pour le télécharger.

Vous pouvez modifier le conteneur dans l'interface utilisateur et publier une nouvelle version. Dans ce cas, la prochaine fois que l'application mobile actualisera le conteneur sur le réseau (actuellement toutes les 12 heures), elle récupérera cette nouvelle version. Lorsque vous appelez l'une des routines get..., la valeur est calculée à l'aide des règles les plus récentes.

Le conteneur téléchargé est enregistré localement. Lorsque vous appelez openContainer(String, Container.Callback), il charge d'abord le conteneur par défaut, puis tous les conteneurs enregistrés de manière asynchrone. Si aucune version n'est détectée ou si elle date de plus de 12 heures, le système tente de récupérer une version plus récente sur le réseau. Vous pouvez connaître l'état de ces chargements asynchrones en transmettant un élément Container.Callback à openContainer(String, Container.Callback).

Parfois, vous pouvez vouloir bloquer jusqu'à ce qu'un conteneur autre que celui par défaut soit disponible ou jusqu'à ce qu'un nouveau conteneur soit disponible. ContainerOpener est une classe utilitaire qui peut vous aider.

Lorsque vous n'avez plus besoin d'un conteneur, appelez close().

Récapitulatif des classes imbriquées

interface TagManager.Logger Interface simple pour la journalisation des erreurs/avertissement/info/debug/verbose
enum TagManager.RefreshMode Mode d'actualisation du conteneur

Récapitulatif des méthodes publiques

Conteneur
getContainer(Chaîne containerId)
Contexte
DataLayer
statique TagManager
getInstance(Contexte context)
Logger
TagManager.RefreshMode
Conteneur
openContainer(Chaîne containerId, Container.Callback rappel)
void
void

Méthodes publiques

public Conteneur getContainer (Chaîne containerId)

Renvoie le conteneur ouvert associé à containerId. Renvoie null si le conteneur n'est pas déjà ouvert.

public Contexte getContext ()

Renvoie le contexte enregistré associé à cet objet.

public DataLayer getDataLayer ()

Renvoie l'objet de couche de données utilisé par Tag Manager.

public statique TagManager getInstance (Contexte contexte)

Obtenez l'instance du singleton de la classe TagManager, en la créant si nécessaire.

public Enregistreur getLogger ()

Renvoie l'enregistreur utilisé par Tag Manager.

public TagManager.RefreshMode getRefreshMode ()

Renvoie le mode d'actualisation utilisé pour tous les conteneurs.

public Conteneur openContainer (String containerId, Container.Callback containerId)

Renvoie un conteneur. Le rappel sera appelé au fur et à mesure que divers événements se produisent pour le conteneur. OpenContainer tente au minimum de charger une version enregistrée du conteneur. Si aucune version n'est enregistrée ou si la version enregistrée est obsolète, une tentative de chargement à partir du réseau est effectuée.

En général, le conteneur renvoyé est vide, mais le chargement s'effectue sur un thread distinct. Par conséquent, le conteneur renvoyé peut être actualisé avant d'être renvoyé, après avoir été renvoyé, ou ne jamais être actualisé (si, par exemple, il n'y a pas de connexion réseau pendant la durée de vie du conteneur).

Si vous appelez openContainer une deuxième fois pour un containerId donné, une exception est générée.

Paramètres
containerId ID du conteneur à ouvrir
rappel Un objet dont les différentes méthodes sont appelées lors de certaines parties du processus de chargement Notez que les méthodes peuvent être appelées à partir de threads différents. De plus, elles peuvent être appelées avant le retour de openContainer.

public void setLogger (Enregistreur logger)

Remplace l'enregistreur existant utilisé par Tag Manager.

public void setRefreshMode (TagManager.RefreshMode mode)

Définit le mode d'actualisation utilisé pour tous les conteneurs.