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 | |
void |
setLogger(Enregistreur logger)
|
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 statique TagManager getInstance (Contexte contexte)
Obtenez l'instance du singleton de la classe TagManager
, en la créant si nécessaire.
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.