Riferimento classe TAGManager


Panoramica

Una classe che rappresenta l'implementazione mobile di Google Tag Manager (GTM).

Esempio di utilizzo:

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

Un contenitore è una raccolta di macro, regole e tag. Viene creato nell'applicazione GTM (http://www.google.com/tagmanager) e gli viene assegnato un ID contenitore. L'ID contenitore è quello utilizzato all'interno di questa API.

La classe TAGContainer fornisce metodi per recuperare i valori della macro in base al nome della macro. Le routine booleanForKey: (TAGContainer), DoubleForKey: (TAGContainer), int64ForKey: (TAGContainer), stringForKey: (TAGContainer) restituiscono il valore corrente del nome della macro raccolta valori, a seconda delle regole associate alla macro nel contenitore.

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

     [container longForKey:@"speed"]
 

restituirà 32 se la lingua corrente del dispositivo è l'inglese o 45 negli altri casi.

Il livello dati è una mappa contenente informazioni generiche sull'applicazione. La classe TAGDataLayer fornisce metodi per eseguire il push e il recupero dei dati dal livello dati. Se invii una chiave event al livello dati, i tag che corrispondono a questo evento verranno attivati.

Una versione iniziale del contenitore è integrata nell'applicazione. Deve essere inserita come risorsa nel bundle con nome containerId, dove containerId è lo stesso ID contenitore che utilizzerai all'interno di questa API. Quando richiami openContainerById:callback: (TAGManager), il contenitore viene restituito con i tag, le macro e le regole 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 openContainerById:callback: (TAGManager), viene caricato prima il contenitore predefinito e poi in modo asincrono qualsiasi contenitore salvato. Se non ne trova nessuna o se è più vecchia di 12 ore, proverà a recuperare una versione più recente dalla rete. Puoi trovare lo stato di questi caricamenti asincroni passando un valore TAGContainerCallback a openContainerById:callback: (TAGManager).

In alcuni casi, può essere opportuno bloccare l'account finché non è disponibile un contenitore non predefinito o finché non è disponibile un contenitore aggiornato e recente. Puoi farlo utilizzando i callback in openContainerById:callback: (TAGManager) o TAGContainerOpener.

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

Funzioni pubbliche dei membri

(TAGContainer *)- openContainerById:callback:
 Restituisce un contenitore.
(TAGContainer *)- getContainerById:
 Restituisce il contenitore associato all'elemento containerId specificato; restituisce nil se il contenitore non è già aperto.
(BOOL) - previewWithUrl:
 Visualizza l'anteprima dell'app con l'URL di input.
(void) - spedizione
 Invia l'eventuale traffico di rete in sospeso generato dai tag (pixel arbitrari, beacon di analisi e così via).
(void) - dispatchWithCompleteHandler:
 Invia il successivo traffico di rete in attesa in coda, chiamando completamentiHandler quando la richiesta è stata inviata (restituendo kTAGDispatchGood) o quando si è verificato un errore (restituendo kTAGDispatchError).

Funzioni membri pubbliche statiche

(TAGManager *)+ istanza
 Recupera l'istanza singleton della classe TAGManager, creandola se necessario.

Proprietà

id< TAGLogger >logger
 Il logger da utilizzare per l'SDK di Google Tag Manager.
TAGRefreshModerefreshMode
 La modalità di aggiornamento utilizzata per l'SDK di Google Tag Manager.
TAGDataLayerdataLayer
 Chiama il metodo push: (TAGDatalayer) per eseguire il push di eventi e altri dati.
NSTimeIntervallodispatchInterval
 Se questo valore è positivo, le informazioni di monitoraggio verranno inviate automaticamente ogni secondo dispatchIntervalli.

Documentazione sulle funzioni membri

- (TAGContainer *) openContainerById: (NSString *) containerId
da richiamare: (id< TAGContainerCallback >) richiamata

Restituisce un contenitore.

Di solito il container restituito è vuoto, ma il caricamento avviene in modo asincrono, quindi il container restituito può essere aggiornato prima di essere restituito, dopo che viene restituito o potrebbe non essere mai aggiornato se, ad esempio, non esiste una connessione di rete durante il ciclo di vita del container.

Il callback verrà chiamato in vari modi per il container. openContainerById:callback: tenterà di caricare almeno una versione salvata del contenitore. Se non è presente una versione salvata o se la versione salvata non è aggiornata, verrà effettuato un tentativo di caricamento dalla rete.

Se openContainerById:callback: viene chiamato una seconda volta per un determinato containerId, verrà restituito nil, a meno che il contenitore aperto in precedenza non sia già stato chiuso.

Parametri:
containerIdL'ID del contenitore da aprire.
callbackUn oggetto i cui diversi metodi vengono chiamati durante il processo di caricamento. Tieni presente che i metodi potrebbero essere chiamati da diversi thread. Inoltre, possono essere richiamati prima di openContainerById:callback:.
Resi:
Il container aperto.
- (TAGContainer *) getContainerById: (NSString *) containerId

Restituisce il contenitore associato all'elemento containerId specificato; restituisce nil se il contenitore non è già aperto.

- (BOOL) previewWithUrl: (NSURL *) url

Visualizza l'anteprima dell'app con l'URL di input.

L'URL valido deve iniziare con il seguente codice:

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

dove <app_name> è il nome dell'applicazione.

Parametri:
urlL'URL di anteprima.
Resi:
SÌ se l'URL è un URL di anteprima della pagina valida.

Recupera l'istanza singleton della classe TAGManager, creandola se necessario.

Resi:
L'istanza singleton di TAGManager.
- (void) spedizione

Invia l'eventuale traffico di rete in sospeso generato dai tag (pixel arbitrari, beacon di analisi e così via).

- (void) dispatchWithCompleteHandler: (TAGDispatchResult) completionHandler

Invia il successivo traffico di rete in attesa in coda, chiamando completamentiHandler quando la richiesta è stata inviata (restituendo kTAGDispatchGood) o quando si è verificato un errore (restituendo kTAGDispatchError).

Se non c'è connessione di rete o se non ci sono dati da inviare, viene restituito kTAGDispatchNoData.

Chiamare questo metodo con nullcompleteHandler è lo stesso di chiamare dispatch.

Questo metodo può essere utilizzato per il recupero dei dati in background in iOS 7.0 o versioni successive.

È consigliabile chiamare questa opzione quando la richiesta viene chiusa per avviare l'invio delle informazioni di monitoraggio non inviate.


Documentazione della proprietà

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

Il logger da utilizzare per l'SDK di Google Tag Manager.

Per impostazione predefinita, Google Tag Manager registra i messaggi di errore/avviso e ignora i messaggi info/debug/dettagliati. Puoi utilizzare il tuo logger personalizzato impostando questa proprietà.

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

La modalità di aggiornamento utilizzata per l'SDK di Google Tag Manager.

L'impostazione su kTAGRefreshModeDefaultContainer consente al metodo di aggiornamento di utilizzare solo il contenitore predefinito per scopi di sviluppo. Il valore predefinito è kTAGRefreshModeStandard.

- (TAGDataLayer*) dataLayer [read, assign]

Chiama il metodo push: (TAGDatalayer) per eseguire il push di eventi e altri dati.

- (NSTimeIntervallo) dispatchInterval [read, write, assign]

Se questo valore è positivo, le informazioni di monitoraggio verranno inviate automaticamente ogni secondo dispatchIntervalli.

In caso contrario, le informazioni di tracciamento devono essere inviate manualmente chiamando il servizio di spedizione.

Per impostazione predefinita, è impostato su "120", che indica che le informazioni di tracciamento verranno inviate automaticamente ogni 120 secondi.