TagManager

classe pubblica TagManager

Questa è l'implementazione mobile di Google Tag Manager (GTM). Esempio di utilizzo:

 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 contenitore è una raccolta di macro, tag e regole. Viene creato all'interno dell'applicazione GTM e alle viene assegnato un ID contenitore. L'ID contenitore è quello utilizzato all'interno di questa API.

La classe Container fornisce metodi per recuperare i valori a cui è stata assegnata una chiave. Le routine getBoolean(String), getDouble(String), getLong(String), getString(String) restituiscono il valore attuale per la chiave di una macro di raccolta valori, a seconda delle regole associate al container.

Ad esempio, se il tuo container ha una macro di raccolta valori con una chiave speed il cui valore è 32 e la regola di attivazione è Language è "en"; e un'altra macro di raccolta valori con una chiave speed il cui valore è 45 e la regola di attivazione è Language non è "en", la chiamata seguente:

 container.getLong("speed")
restituirà 32 se la lingua corrente del dispositivo è l'inglese oppure 45 altrimenti.

Il livello dati è una mappa contenente informazioni generiche sull'applicazione. La classe DataLayer fornisce metodi per eseguire il push e recuperare i dati dal livello dati. Il push di una chiave event al livello dati determina l'attivazione dei tag che corrispondono a questo evento.

Una versione iniziale del contenitore è integrata nell'applicazione. Deve essere posizionato come asset con nome tagmanager/containerId, dove containerId è lo stesso ID contenitore che utilizzerai all'interno di questa API. Quando chiami openContainer(String, Container.Callback), il container verrà restituito con le regole/macro in bundle. Dovrai creare il contenitore nell'interfaccia utente e utilizzare il pulsante Scarica per scaricarlo.

Puoi modificare il contenitore nell'interfaccia utente e pubblicare una nuova versione. In questo caso, la volta successiva che l'app mobile aggiorna il contenitore dalla rete (attualmente ogni 12 ore), riceverà la nuova versione. Quando chiami una delle routine get..., il valore viene calcolato utilizzando le regole più recenti.

Il contenitore scaricato viene salvato localmente; quando chiami openContainer(String, Container.Callback), questo carica prima il contenitore predefinito, quindi carica in modo asincrono qualsiasi contenitore salvato. Se non ne trova nessuna o se è più recente di 12 ore, proverà a recuperare una versione più recente dalla rete. Puoi trovare lo stato di questi caricamenti asincroni passando un Container.Callback a openContainer(String, Container.Callback).

A volte, è consigliabile bloccare l'account finché non è disponibile un container non predefinito o finché non è disponibile un container recente e aggiornato. ContainerOpener è una classe di utilità che può aiutarti.

Quando hai finito di utilizzare un container, chiama close().

Riepilogo dei corsi nidificati

interfaccia TagManager.Logger Un'interfaccia semplice per errori/avvisi/informazioni/debug/logging dettagliato. 
enum TagManager.RefreshMode Modalità per aggiornare il contenitore. 

Riepilogo del metodo pubblico

Container
getContainer(Stringa containerId)
Contesto
DataLayer
statico TagManager
getInstance(Contesto contesto)
Logger
TagManager.RefreshMode
Container
openContainer(Stringa containerId, Container.Callback callback)
void
setLogger(Logger logger)
void

Metodi pubblici

pubblici Container getContainer (Stringa containerId)

Restituisce il contenitore aperto associato a containerId; restituisce null se il contenitore non è già aperto.

pubblico Contesto getContext ()

Restituisce il contesto salvato associato all'oggetto.

pubblico DataLayer getDataLayer ()

Restituisce l'oggetto del livello dati utilizzato da Tag Manager.

statico pubblico TagManager getInstance (Contesto contesto)

Ottieni l'istanza singleton della classe TagManager, creandola se necessario.

pubblico Logger getLogger ()

Restituisce il logger utilizzato da Tag Manager.

pubblici TagManager.RefreshMode getRefreshMode ()

Restituisce la modalità di aggiornamento utilizzata per tutti i contenitori.

pubblici Container openContainer (Stringa containerId, Container.Callback callback)

Restituisce un contenitore. Il callback verrà chiamato in vari modi per il container. Come minimo, openContainer tenterà di caricare una versione salvata del container. Se non è presente alcuna versione salvata o se la versione salvata è obsoleta, verrà effettuato un tentativo di caricamento dalla rete.

Di solito, il container restituito sarà vuoto, ma il caricamento avverrà in un thread separato, pertanto il container restituito potrebbe essere aggiornato prima di essere restituito, dopo che è stato restituito o potrebbe non essere mai aggiornato (se, ad esempio, non è presente una connessione di rete durante il ciclo di vita del container).

Se chiami openContainer una seconda volta per un determinato containerId, verrà generata un'eccezione.

Parametri
containerId l'ID del container da aprire
callback un oggetto i cui vari metodi verranno chiamati durante parti del processo di caricamento. Tieni presente che i metodi potrebbero essere chiamati da diversi thread. Inoltre, potrebbero essere chiamati prima del ritorno di openContainer.

Public void setLogger (Logger logger)

Sostituisce il logger esistente utilizzato da Tag Manager.

Public void setRefreshMode (TagManager.RefreshMode )

Imposta la modalità di aggiornamento utilizzata per tutti i contenitori.