Panoramica
Una classe che corrisponde all'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 è un insieme di macro, regole e tag. Viene creato nell'applicazione GTM (http://www.google.com/tagmanager) e gli viene assegnato un ID contenitore. Questo ID contenitore è quello utilizzato all'interno di questa API.
La classe TAGContainer fornisce metodi per recuperare i valori delle 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 container ha una macro per la raccolta di 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", quindi viene effettuata la chiamata seguente:
[container longForKey:@"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 TAGDataLayer fornisce metodi per eseguire il push e recuperare i dati dal livello dati. Il push di una chiave event al livello dati comporterà l'attivazione dei tag corrispondenti a questo evento.
Una versione iniziale del container viene integrata nell'applicazione. Deve essere inserito come risorsa nel bundle con nome containerId, dove containerId è lo stesso ID container che utilizzerai in questa API. Quando chiami openContainerById:callback: (TAGManager), il container viene restituito con le regole, i tag e le macro in bundle. 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, al successivo aggiornamento del contenitore dalla rete (attualmente ogni 12 ore), l'app mobile riceverà la nuova versione. Quando chiami una delle routine get..., il valore viene calcolato utilizzando le regole più recenti.
Il contenitore scaricato viene salvato in locale. Quando chiami openContainerById:callback: (TAGManager), verrà caricato prima il contenitore predefinito e, successivamente, qualsiasi contenitore salvato in modo asincrono. Se non ne viene trovata alcuna o se sono trascorse più di 12 ore, proverà a recuperare una versione più recente dalla rete. Puoi visualizzare lo stato di questi caricamenti asincroni passando un parametro TAGContainerCallback a openContainerById:callback: (TAGManager).
In alcuni casi potresti voler bloccare l'utente fino a quando non è disponibile un contenitore non predefinito o finché non è disponibile un contenitore nuovo di recente. A tale scopo, utilizza i callback in openContainerById:callback: (TAGManager) oppure TAGContainerOpener.
Quando hai finito di utilizzare un contenitore, chiama close (TAGContainer).
Funzioni per i membri pubbliche | |
| (TAGContainer *) | - openContainerById:callback: |
| Restituisce un container. | |
| (TAGContainer *) | - getContainerById: |
Restituisce il container associato al valore containerId specificato. restituisce nil se il contenitore non è già aperto. | |
| (BOOL) | - previewWithUrl: |
| Visualizza l'anteprima dell'app con l'URL di input. | |
| (nullo) | - spedizione |
| Invia il traffico di rete in attesa generato dai tag (pixel arbitrari, beacon di Analytics e così via). | |
| (nullo) | - dispatchWithCompletionHandler: |
| Invia il traffico di rete successivo in attesa nella coda, chiamando il completamentiGestione quando la richiesta viene inviata (restituisce kTAGDispatchGood) o se si verifica un errore (restituendo kTAGDispatchError). | |
Funzioni membro pubbliche statiche | |
| (TAGManager *) | + instance |
| Ottiene l'istanza singleton della classe TAGManager, creandola se necessario. | |
Proprietà | |
| id< TAGLogger > | logger |
| Il logger da utilizzare per l'SDK di Google Tag Manager. | |
| TAGRefreshMode | refreshMode |
| La modalità di aggiornamento utilizzata per l'SDK Google Tag Manager. | |
| TAGDataLayer * | dataLayer |
| Chiama il metodo push: (TAGDatalayer) per eseguire il push di eventi e altri dati. | |
| NSTimeInterval | dispatchInterval |
| Se questo valore è positivo, le informazioni di tracciamento verranno inviate automaticamente ogni secondo submitInterval. | |
Documentazione sulle funzioni dei membri
| - (TAGContainer *) openContainerById: | (NSString *) | containerId | |
| callback: | (id< TAGContainerCallback >) | richiamata | |
Restituisce un container.
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 essere stato restituito oppure non può mai essere aggiornato se, ad esempio, non esiste una connessione di rete durante la durata del container.
Il callback verrà chiamato perché si verificano varie cose per il container. Come minimo, openContainerById:callback: tenterà di caricare una versione salvata del contenitore. Se non esiste 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, viene restituito nil a meno che il contenitore aperto in precedenza non sia già stato chiuso.
- Parametri:
-
containerId L'ID del container da aprire. callback Un oggetto i cui vari metodi vengono richiamati durante il processo di caricamento. Tieni presente che i metodi possono essere richiamati da thread diversi. Inoltre, potrebbero essere chiamati prima che venga restituito openContainerById:callback:.
- Resi:
- Il contenitore aperto.
| - (TAGContainer *) getContainerById: | (NSString *) | containerId |
Restituisce il container associato al valore 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 quanto segue:
tagmanager.c.<app_name>://preview/p?id=
dove <app_name> è il nome dell'applicazione.
- Parametri:
-
url L'URL di anteprima.
- Resi:
- SÌ se l'URL è un URL di anteprima di tagmanager valido.
| + (TAGManager *) istanza |
Ottiene l'istanza singleton della classe TAGManager, creandola se necessario.
- Resi:
- L'istanza singleton di TAGManager.
| - (void) spedizione |
Invia il traffico di rete in attesa generato dai tag (pixel arbitrari, beacon di Analytics e così via).
| - (void) dispatchWithCompletionHandler: | (TAGRisultato invio) | completionHandler |
Invia il traffico di rete successivo in attesa nella coda, chiamando il completamentiGestione quando la richiesta viene inviata (restituisce kTAGDispatchGood) o se si verifica un errore (restituendo kTAGDispatchError).
Se non è disponibile una connessione di rete o non ci sono dati da inviare, viene restituito kTAGDispatchNoData.
Chiamare questo metodo con nil completamentiGestione equivale a chiamare il comando.
Questo metodo può essere utilizzato per il recupero dei dati in background in iOS 7.0 o versioni successive.
Sarebbe saggio chiamarlo all'uscita dell'applicazione per avviare l'invio di informazioni di monitoraggio non inviate.
Documentazione della proprietà
Il logger da utilizzare per l'SDK di Google Tag Manager.
Per impostazione predefinita, Google Tag Manager registra messaggi di errore/avviso e ignora i messaggi info/debug/dettagli. Puoi utilizzare il tuo logger personalizzato impostando questa proprietà.
- (TAGRefreshMode) refreshMode [read, write, assign] |
La modalità di aggiornamento utilizzata per l'SDK Google Tag Manager.
Se questo criterio viene impostato su kTAGRefreshModeDefaultContainer, il metodo di aggiornamento può utilizzare solo il contenitore predefinito per lo sviluppo. Il valore predefinito è kTAGRefreshModeStandard.
- (TAGDataLayer*) dataLayer [read, assign] |
Chiama il metodo push: (TAGDatalayer) per eseguire il push di eventi e altri dati.
- (NSTimeInterval) dispatchInterval [read, write, assign] |
Se questo valore è positivo, le informazioni di tracciamento verranno inviate automaticamente ogni secondo submitInterval.
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.