Référence de la classe TAGManager


Présentation

Une classe qui correspond à l'implémentation mobile de Google Tag Manager (GTM).

Exemple d'utilisation:

      TAGContainer *container =
          [[TAGManager instance] openContainerById:myContainerId];
      NSString *value = [container stringForKey:@"myKey"];
      TAGDataLayer *dataLayer =
          [[TAGManager instance] dataLayer];
      [dataLayer push:@{@"event": @"openScreen",
                        @"screenName": @"Main Page"}];

Un conteneur est un ensemble de macros, de règles et de balises. Il est créé dans l'application GTM (http://www.google.com/tagmanager) et reçoit un ID de conteneur. Cet ID de conteneur est celui utilisé dans cette API.

La classe TAGContainer fournit des méthodes pour récupérer les valeurs de macro en fonction du nom de la macro. Les routines booleanForKey: (TAGContainer), doubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) renvoient la valeur actuelle du nom de la macro de collection de valeurs, en fonction des règles associées à cette macro dans le 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", et 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" dont la valeur est "en", alors effectuez l'appel suivant:

     [container longForKey:@"speed"]
 

renvoie 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 TAGDataLayer 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. Elle doit être placée en tant que ressource dans le bundle nommé containerId, où containerId est le même ID de conteneur que celui que vous utiliserez dans cette API. Lorsque vous appelez openContainerById:callback: (TAGManager), le conteneur est renvoyé avec ces règles/balises/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 sera calculée à l'aide des règles les plus récentes.

Le conteneur téléchargé est enregistré en local. Lorsque vous appelez openContainerById:callback: (TAGManager), 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 la version date de plus de 12 heures, il essaiera de récupérer une version plus récente sur le réseau. Vous pouvez trouver l'état de ces chargements asynchrones en transmettant un TAGContainerCallback à openContainerById:callback: (TAGManager).

Vous pouvez parfois vouloir bloquer l'accès jusqu'à ce qu'un conteneur autre que celui par défaut soit disponible ou jusqu'à ce qu'un nouveau conteneur soit disponible. Pour ce faire, vous pouvez utiliser les rappels dans openContainerById:callback: (TAGManager) ou TAGContainerOpener.

Lorsque vous avez terminé avec un conteneur, appelez close (TAGContainer).

Fonctions de membre public

(TAGContainer *)- openContainerById:callback:
 Renvoie un conteneur.
(TAGContainer *)- getContainerById:
 Renvoie le conteneur associé à l'élément containerId donné. Renvoie nil si le conteneur n'est pas déjà ouvert.
(BOOL) - previewWithUrl:
 Prévisualise l'application avec l'URL d'entrée.
(void) - dispatch
 Transmet tout trafic réseau en attente généré par des balises (pixels arbitraires, balises d'analyse, etc.).
(void) dispatchWithCompleteHandler :
 Transfère le prochain trafic réseau en attente dans la file d'attente, en appelant "complèteHandler" lorsque la requête a été envoyée (en renvoyant kTAGDispatchGood) ou en cas d'erreur (renvoi de kTAGDispatchError).

Fonctions de membre public statique

(TAGManager *)+ instance
 Récupère l'instance du singleton de la classe TAGManager, en la créant si nécessaire.

Propriétés

id< TAGLogger >logger
 Enregistreur à utiliser pour le SDK Google Tag Manager.
TAGRefreshModerefreshMode
 Mode d'actualisation utilisé pour le SDK Google Tag Manager.
TAGDataLayerdataLayer
 Appelez la méthode push: (TAGDataLayer) pour transmettre des événements et d'autres données.
NSTimeIntervaldispatchInterval
 Si cette valeur est positive, les informations de suivi sont automatiquement envoyées toutes les secondes dispatchInterval.

Documentation sur la fonction de membre

- (TAGContainer *) openContainerById: (NSString *) containerId
: (id< TAGContainerCallback >) rappel

Renvoie un conteneur.

Généralement, le conteneur renvoyé est vide, mais le chargement s'effectue de manière asynchrone. 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 sa durée de vie.

Le rappel sera appelé au fur et à mesure que divers événements se produisent pour le conteneur. Au minimum, openContainerById:callback: tente 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 lancée.

Si openContainerById:callback: est appelé une deuxième fois pour un containerId donné, nil est renvoyé, sauf si le conteneur ouvert précédent a déjà été fermé.

Paramètres :
containerIdID du conteneur à ouvrir.
rappelObjet dont les différentes méthodes sont appelées lors 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 openContainerById:callback:.
Renvoie :
Conteneur ouvert.
- (TAGContainer *) getContainerById: (NSString *) containerId

Renvoie le conteneur associé à l'élément containerId donné. Renvoie nil si le conteneur n'est pas déjà ouvert.

- (BOOL) previewWithUrl: (NSURL *) url

Prévisualise l'application avec l'URL d'entrée.

L'URL valide doit commencer par les éléments suivants:

 tagmanager.c.<app_name>://preview/p?id=

où <app_name> correspond au nom de l'application.

Paramètres :
urlURL d'aperçu.
Renvoie :
OUI si l'URL est une URL d'aperçu tagmanager valide.

Récupère l'instance du singleton de la classe TAGManager, en la créant si nécessaire.

Renvoie :
Instance du singleton de TAGManager.
- (void) envoi

Transmet tout trafic réseau en attente généré par des balises (pixels arbitraires, balises d'analyse, etc.).

- (void) dispatchWithCompleteHandler: (TAGDispatchResult) completionHandler

Transfère le prochain trafic réseau en attente dans la file d'attente, en appelant "complèteHandler" lorsque la requête a été envoyée (en renvoyant kTAGDispatchGood) ou en cas d'erreur (renvoi de kTAGDispatchError).

En l'absence de connexion réseau ou s'il n'y a pas de données à envoyer, kTAGDispatchNoData est renvoyé.

Appeler cette méthode avec nil completedHandler revient à appeler la distribution.

Cette méthode peut être utilisée pour l'extraction de données en arrière-plan sur iOS 7.0 ou version ultérieure.

Il est donc judicieux d'appeler cette méthode lorsque l'application se ferme pour initier l'envoi des informations de suivi qui n'ont pas encore été envoyées.


Documentation de la propriété

- (id<TAGLogger>) logger [read, write, assign]

Enregistreur à utiliser pour le SDK Google Tag Manager.

Par défaut, Google Tag Manager consigne les messages d'erreur/d'avertissement et ignore les messages d'information, de débogage et de verbosité. Vous pouvez utiliser votre propre enregistreur personnalisé en définissant cette propriété.

- (TAGRefreshMode) refreshMode [read, write, assign]

Mode d'actualisation utilisé pour le SDK Google Tag Manager.

Définir cette valeur sur kTAGRefreshModeDefaultContainer permet à la méthode d'actualisation d'utiliser uniquement le conteneur par défaut à des fins de développement. La valeur par défaut est kTAGRefreshModeStandard.

- (TAGDataLayer*) dataLayer [read, assign]

Appelez la méthode push: (TAGDataLayer) pour transmettre des événements et d'autres données.

- (NSTimeInterval) : dispatchInterval [read, write, assign]

Si cette valeur est positive, les informations de suivi sont automatiquement envoyées toutes les secondes dispatchInterval.

Sinon, les informations de suivi doivent être envoyées manuellement en appelant le service d'expédition.

La valeur par défaut est "120", ce qui signifie que les informations de suivi seront envoyées automatiquement toutes les 120 secondes.