Campagne generali & attribuzione delle origini del traffico
Dopo l'installazione di un'applicazione, è possibile che questa venga avviata da referral provenienti da campagne pubblicitarie, siti web o altre applicazioni. In questo contesto, le fonti di traffico o le campagne di marketing possono essere attribuite all'attività dell'utente nelle sessioni successive, configurando direttamente i campi della campagna su un tracker.
Il modo più semplice per inviare i dati della campagna è usare [GAIDictionaryBuilder setCampaignParametersFromUrl:urlString], dove urlString è una stringa che rappresenta l'URL che può contenere i parametri della campagna di Google Analytics.
Negli esempi successivi, i dati della campagna non vengono impostati direttamente sul tracker, in quanto devono essere inviati solo una volta:
/*
* MyAppDelegate.m
* Un esempio di come implementare l'attribuzione delle campagne e dei referral.
* Se nell'URL di riferimento non sono impostati i parametri della campagna di Google Analytics, si utilizza il nome dell'host come referrer.
*/
// For iOS 9.0 and successivi
- (BOOL)application:(UIApplication *)app openURL:(nonnull NSURL *)url
options:(nonnull NSDictionary *)options {
// Per le versioni di iOS precedenti alla 9.0
//- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
// sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
NSString *urlString = [url absoluteString];
id<GAITracker> tracker = [[GAI sharedInstance] trackerWithName:@"tracker" trackingId:@"UA-XXXX-Y"];
// setCampaignParametersFromUrl: parses Google Analytics campaign ("UTM")
// parametri da una stringa url ad una Mappa che può essere impostata su un Tracker.
GAIDictionaryBuilder *hitParams = [[GAIDictionaryBuilder alloc] init];
// Impostare i dati della campagna sulla mappa, non direttamente sul tracker, in quanto devono essere inviati solo una volta.
[hitParams setCampaignParametersFromUrl:urlString];
// Source della campagna è l'unico campo obbligatorio della campagna. Se la chiamata precedente non ha impostato una source della campagna, si dovrà utilizzare il nome dell'host come referrer.
if(![hitParams get:kGAICampaignSource] && [url host].length !=0) {
// Impostare i dati della campagna sulla mappa, non sul tracker.
[hitParams set:@"referrer" forKey:kGAICampaignMedium];
[hitParams set:[url host] forKey:kGAICampaignSource];
}
NSDictionary *hitParamsDict = [hitParams build];
// Per la visualizzazione di una schermata è necessario indicare il nome della schermata.
[tracker set:kGAIScreenName value:@"screen name"];
// Versioni precedenti dell'SDK V3.
// [tracker send:[[[GAIDictionaryBuilder createAppView] setAll:hitParamsDict] build]];
// Versione SDK 3.08 e successive.
[tracker send:[[[GAIDictionaryBuilder createScreenView] setAll:hitParamsDict] build]];
In alternativa, se si dispongono delle informazioni della campagna in una forma diversa dai parametri della campagna di Google Analytics, è possibile impostarle in un NSDictionary e inviarle manualmente:
// Si presuppone che almeno un tracker sia stato inizializzato.
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
// Non è necessario impostare kGAICampaignKeyword per questa campagna e-mail.
NSDictionary *campaignData = [NSDictionary dictionaryWithObjectsAndKeys:
@"email", kGAICampaignSource,
@"email_marketing", kGAICampaignMedium,
@"summer_campaign", kGAICampaignName,
@"email_variation1", kGAICampaignContent, nil];
// Per la visualizzazione di una schermata è necessario indicare il nome della schermata.
[tracker set:kGAIScreenName value:@"screen name"];
// Si noti che i dati della campagna sono impostati sul Dictionary, non sul tracker. Versioni precedenti all' SDK V3.
// [tracker send:[[[GAIDictionaryBuilder createAppView] setAll:campaignData] build]];
// Versione SDK 3.08 e successive.
[tracker send:[[[GAIDictionaryBuilder createScreenView] setAll:campaignData] build]];