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 Applicazione GTM a cui viene assegnato un ID contenitore. Questo ID contenitore è quello utilizzato all'interno di questa API.

La classe Container fornisce metodi per recuperare i valori una volta specificata una chiave. Le routine getBoolean(String), getDouble(String), getLong(String), getString(String) restituiscono lo stato attuale per la chiave di una macro raccolta valori, a seconda delle regole associate al container.

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

 container.getLong("speed")
restituisce 32 se la lingua corrente del dispositivo è l'inglese oppure 45 in caso contrario.

Il livello dati è una mappa che contiene 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 comporterà i tag corrispondenti a questo evento per l'attivazione.

Una versione iniziale del container viene integrata nell'applicazione. Dovrebbe essere posizionato come asset con il nome tagmanager/containerId dove containerId è lo stesso l'ID container che utilizzerai in questa API. Quando chiami openContainer(String, Container.Callback), il container con le regole e le macro associate. Dovrai creare il container 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 l'app mobile aggiorna il container dalla rete (attualmente ogni 12 ore), riceve la nuova versione. Quando chiama una delle routine get..., il valore verrà calcolato utilizzando le regole più recenti.

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

A volte potresti voler bloccare finché non è disponibile un contenitore non predefinito o finché è disponibile un container recente. ContainerOpener è una classe di utilità che può aiutarti.

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

Riepilogo della classe nidificata

interfaccia TagManager.Logger Interfaccia semplice per il logging di errore/avviso/info/debug/dettagliato.
enum TagManager.RefreshMode Modalità per l'aggiornamento del contenitore.

Riepilogo del metodo pubblico

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

Metodi pubblici

pubblica Contenitore getContainer (Stringa containerId)

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

pubblica Contesto . getContext ()

Restituisce il contesto salvato associato all'oggetto.

pubblica DataLayer getDataLayer ()

Restituisce l'oggetto livello dati utilizzato da Tag Manager.

pubblica statico TagManager getInstance (Contesto contesto)

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

pubblica Registratore getLogger ()

Restituisce il logger utilizzato da Tag Manager.

pubblica TagManager.RefreshMode getRefreshMode ()

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

pubblica Contenitore openContainer (Stringa containerId, Container.Callback callback)

Restituisce un container. Il callback verrà chiamato perché si verificano varie cose nel container. Come minimo, openContainer proverà a caricare una versione salvata del containerizzato. Se non esiste una versione salvata o se la versione salvata non è aggiornata, prova a verrà fatto caricare dalla rete.

Di solito, il container restituito è vuoto, ma il caricamento avviene su un container quindi il container restituito può essere aggiornato prima di essere restituito, o non possono mai essere aggiornati (se, ad esempio, non vi è connessione di rete durante il ciclo di vita del container).

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

Parametri
containerId l'ID del container per aprire
callback un oggetto i cui vari metodi verranno chiamati durante parti del processo e il processo di sviluppo. Tieni presente che i metodi possono essere richiamati da thread diversi. Inoltre, da chiamare prima del ritorno di openContainer.

pubblica null . setLogger (Logger logger)

Sostituisce il logger esistente utilizzato da Tag Manager.

pubblica null . setRefreshMode (TagManager.RefreshMode )

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