Last active
December 9, 2015 22:08
-
-
Save matsuda/4335105 to your computer and use it in GitHub Desktop.
Google Analytics for iOS 's useful macros
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import "GANTracker.h" | |
/* | |
Google Analytics's Macros | |
http://d.hatena.ne.jp/ninjinkun/20110115/1295074900 | |
http://tkyk.name/blog/2011/09/19/iOS-Xcode-iphone_google-analytics-for-ios/ | |
http://d.hatena.ne.jp/diveintounlimit/20120512/1336837189 | |
*/ | |
#define GA_DEBUG_FLAG 0 | |
/******************************** | |
init | |
********************************/ | |
#define __GA_INIT_TRACKER(ACCOUNT, PERIOD, DELEGATE) [[GANTracker sharedTracker] startTrackerWithAccountID:ACCOUNT dispatchPeriod:PERIOD delegate:DELEGATE]; | |
#if GA_DEBUG_FLAG | |
#define GA_INIT_TRACKER(ACCOUNT, PERIOD, DELEGATE) { \ | |
__GA_INIT_TRACKER(ACCOUNT, PERIOD, DELEGATE); \ | |
[GANTracker sharedTracker].debug = YES; \ | |
[GANTracker sharedTracker].dryRun = YES; \ | |
} | |
#else | |
#define GA_INIT_TRACKER(ACCOUNT, PERIOD, DELEGATE) __GA_INIT_TRACKER(ACCOUNT, PERIOD, DELEGATE); | |
#endif | |
#define GA_TRACK_VER(INDEX, NAME, VALUE) { \ | |
NSError *GA_ERROR = nil; \ | |
if (![[GANTracker sharedTracker] setCustomVariableAtIndex:INDEX name:NAME value:VALUE withError:&GA_ERROR]) { \ | |
NSLog(@"%@", GA_ERROR.helpAnchor); \ | |
} \ | |
}; | |
//#define GA_TRACK_VER { \ | |
// UIDevice *cd = [UIDevice currentDevice]; \ | |
// NSError *GA_ERROR = nil; \ | |
// if (![[GANTracker sharedTracker] setCustomVariableAtIndex:1 name:cd.model value:cd.systemVersion withError:&GA_ERROR]) { \ | |
// NSLog(@"%@", GA_ERROR.helpAnchor); \ | |
// } \ | |
//}; | |
/******************************** | |
stop | |
********************************/ | |
#define GA_STOP_TRACKER [[GANTracker sharedTracker] stopTracker]; | |
/******************************** | |
track page | |
********************************/ | |
#if GA_DEBUG_FLAG | |
#define GA_TRACK_PAGE(PAGE) { \ | |
NSError *GA_ERROR = nil; \ | |
if (![[GANTracker sharedTracker] trackPageview:PAGE withError:&GA_ERROR]) { \ | |
NSLog(@"%@", GA_ERROR.helpAnchor); \ | |
} else { \ | |
NSLog(@"GA_TRACK_PAGE >>> %@", PAGE); \ | |
} \ | |
}; | |
#else | |
#define GA_TRACK_PAGE(PAGE) { \ | |
NSError *GA_ERROR = nil; \ | |
if (![[GANTracker sharedTracker] trackPageview:PAGE withError:&GA_ERROR]) { \ | |
NSLog(@"%@", GA_ERROR.helpAnchor); \ | |
} \ | |
}; | |
#endif | |
/******************************** | |
track event | |
********************************/ | |
#define GA_TRACK_EVENT(EVENT, ACTION, LABEL, VALUE) { \ | |
NSError *GA_ERROR = nil; \ | |
if (![[GANTracker sharedTracker] trackEvent:EVENT action:ACTION label:LABEL value:VALUE withError:&GA_ERROR]) { \ | |
NSLog(@"%@", GA_ERROR.helpAnchor); \ | |
} \ | |
}; | |
/******************************** | |
util | |
********************************/ | |
#define GA_TRACK_CLASS GA_TRACK_PAGE( NSStringFromClass([self class]) ); | |
#define GA_TRACK_METHOD GA_TRACK_EVENT( NSStringFromClass([self class] ), NSStringFromSelector(_cmd), @””, -1); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import "GAI.h" | |
/* | |
Google Analytics for iOS v2 's Macros | |
*/ | |
#define GA_DEBUG_FLAG 0 | |
/******************************** | |
init | |
********************************/ | |
#define __GA_INIT_TRACKER(ACCOUNT, PERIOD) { \ | |
[GAI sharedInstance].trackUncaughtExceptions = YES; \ | |
[GAI sharedInstance].dispatchInterval = PERIOD; \ | |
[[GAI sharedInstance] trackerWithTrackingId:ACCOUNT]; \ | |
[GAI sharedInstance].defaultTracker.useHttps = YES; \ | |
} | |
#if GA_DEBUG_FLAG | |
#define GA_INIT_TRACKER(ACCOUNT, PERIOD) { \ | |
__GA_INIT_TRACKER(ACCOUNT, PERIOD); \ | |
[GAI sharedInstance].debug = YES; \ | |
} | |
#else | |
#define GA_INIT_TRACKER(ACCOUNT, PERIOD) { \ | |
__GA_INIT_TRACKER(ACCOUNT, PERIOD); \ | |
[GAI sharedInstance].debug = NO; \ | |
} | |
#endif | |
/******************************** | |
track page | |
********************************/ | |
#define GA_TRACK_PAGE(PAGE) [[GAI sharedInstance].defaultTracker trackView:PAGE] | |
/******************************** | |
track event | |
********************************/ | |
#define GA_TRACK_EVENT(EVENT, ACTION, LABEL, VALUE) { \ | |
[[GAI sharedInstance].defaultTracker trackEventWithCategory:EVENT \ | |
withAction:ACTION \ | |
withLabel:LABEL \ | |
withValue:VALUE]; \ | |
}; | |
/******************************** | |
util | |
********************************/ | |
#define GA_TRACK_CLASS GA_TRACK_PAGE( NSStringFromClass([self class]) ); | |
#define GA_TRACK_METHOD GA_TRACK_EVENT( NSStringFromClass([self class] ), NSStringFromSelector(_cmd), @””, [NSNumber numberWithInt:-1]); | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#import "GAI.h" | |
#import "GAIFields.h" | |
#import "GAIDictionaryBuilder.h" | |
/******************************** | |
init | |
********************************/ | |
#define GA_INIT_TRACKER(ACCOUNT, PERIOD) { \ | |
[[GAI sharedInstance] trackerWithTrackingId:ACCOUNT]; \ | |
[GAI sharedInstance].dispatchInterval = PERIOD; \ | |
[GAI sharedInstance].trackUncaughtExceptions = YES; \ | |
[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelError]; \ | |
} | |
/******************************** | |
track screen | |
********************************/ | |
#define GA_TRACK_SCREEN(SCREEN) { \ | |
[[GAI sharedInstance].defaultTracker set:kGAIScreenName value:SCREEN]; \ | |
[[GAI sharedInstance].defaultTracker send:[[GAIDictionaryBuilder createAppView] build]]; \ | |
} | |
/******************************** | |
track event | |
********************************/ | |
#define GA_TRACK_EVENT(CATEGORY, ACTION, LABEL, VALUE) { \ | |
[[[GAI sharedInstance] defaultTracker] \ | |
send:[[GAIDictionaryBuilder createEventWithCategory:CATEGORY \ | |
action:ACTION \ | |
label:LABEL \ | |
value:VALUE] build]]; \ | |
} | |
/******************************** | |
util | |
********************************/ | |
#define GA_TRACK_CLASS GA_TRACK_SCREEN( NSStringFromClass([self class]) ) | |
#define GA_TRACK_METHOD GA_TRACK_EVENT( NSStringFromClass([self class]), \ | |
NSStringFromSelector(_cmd), \ | |
@"", \ | |
[NSNumber numberWithInt:-1] ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment