Configurazione avanzata: SDK per iOS

Questo documento fornisce una panoramica di alcune delle funzionalità di configurazione avanzate dell'SDK di Google Analytics per iOS v2.

Panoramica

L'SDK di Google Analytics per iOS utilizza due classi per gestire lo stato globale dell'implementazione e l'invio dei dati ai server di Google Analytics.

  • GAI: un singleton che gestisce lo stato globale dell'implementazione, inclusi il recupero di nuovi oggetti GAITracker, nonché l'impostazione di disattivazione a livello di app e le impostazioni di invio.
  • GAITracker: il corso da cui invii i dati a Google Analytics. È possibile creare un'istanza di più tracker, uno per ogni ID proprietà univoco.

Utilizzo di più tracker

A partire dalla versione 2 dell'SDK, puoi utilizzare più tracker in un'unica implementazione, uno per ID di monitoraggio univoco. Tutti i tracker condividono lo stesso stato globale di cui è titolare il tuo GAI single.

Nell'esempio seguente, una visualizzazione di schermata viene inviata a due proprietà separate utilizzando due tracker, ciascuno con il proprio ID proprietà univoco:

#import "RootViewController.h"
#import "GAI.h"

@interface RootViewController ()

@end

@implementation RootViewController
{
- (void)viewDidLoad {
  [super viewDidLoad];

  // Send a screen view to the first property.
  id tracker1 = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];
  [tracker1 sendView:@"/HomeScreen"];

  // Send another screen view to the second property.
  id tracker2 = [[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Z"];
  [tracker2 sendView:@"Home"];
}

@end

Tieni presente che le funzionalità di misurazione automatica, come la misurazione automatica delle schermate e delle eccezioni non rilevate, utilizzano un solo tracker per inviare dati a Google Analytics. Se usi queste funzionalità e vuoi inviare dati utilizzando altri tracker, dovrai farlo manualmente.

Come riferimento, la misurazione automatica dello schermo utilizza il tracker specificato nella proprietà tracker di un determinato GAITrackedViewController. La misurazione dell'eccezione non rilevata utilizza il tracker predefinito specificato nell'istanza GAI.

Tracker predefinito

Sebbene un'implementazione possa utilizzare più tracker, a livello globale ha un solo tracker predefinito. Il primo Tracker recuperato diventa il tracker predefinito.

Per scegliere il tracker predefinito, utilizza:

// Get default tracker.
id myDefault = [GAI sharedInstance].defaultTracker;

Per impostare il tracker predefinito, utilizza:

// Get a new tracker.
id newTracker = [[GAI sharedInstance]trackerWithTrackingId:@"UA-NEW-TRACKING-ID");

// Set the new tracker as the default tracker, globally.
[GAI sharedInstance].defaultTracker = newTracker;

Campionamento

Puoi attivare il campionamento lato client per limitare il numero di hit inviati a Google Analytics. Se la tua app ha un numero elevato di utenti o invia un elevato volume di dati a Google Analytics, l'attivazione del campionamento aiuta a garantire report senza interruzioni.

Ad esempio, per implementare il campionamento lato client a una percentuale del 50%, utilizza il seguente codice:

// Set a sample rate of 50%.
[tracker setSampleRate:50.0];  // Sample rate is a double.

Disattivazione a livello di app

Puoi abilitare un flag di disattivazione a livello di app che disattiverà Google Analytics nell'intera app. Una volta impostato, il flag viene mantenuto per tutta la durata dell'app o fino a quando non viene reimpostato.

Per attivare l'impostazione di disattivazione a livello di app, utilizza:

// Get the app-level opt out preference.
if ([GAI sharedInstance].optOut) {
  ... // Alert the user they have opted out.
}

Per impostare il flag di disattivazione a livello di app, utilizza:


// Set the app-level opt out preference.
[[GAI sharedInstance].setOptOut = YES];

Test e debug

L'SDK di Google Analytics per iOS mette a disposizione una modalità di debug che consente di stampare informazioni utili sui dati inviati a Google Analytics nei tuoi log.

// Enable debug mode.
[GAI sharedInstance].debug = YES;