| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- //
- // GoogleAnalyst.m
- // iSales-NPD
- //
- // Created by Jack on 2017/3/28.
- // Copyright © 2017年 United Software Applications, Inc. All rights reserved.
- //
- #import "GoogleAnalyst.h"
- #import "Analytics.h"
- #import "RANetwork.h"
- @implementation GoogleAnalyst
- #pragma mark - Private
- + (NSString *)currentDateString {
- NSDate *date = [NSDate date];
- NSDateFormatter *formate = [[NSDateFormatter alloc] init];
- formate.dateFormat = @"YYYY-MM-dd HH:mm:ss";
- return [formate stringFromDate:date];
- }
- #pragma mark - Public
- + (void)trackScreen:(NSString *)screenName {
-
- if (!screenName.length) {
- return;
- }
- // 屏幕追踪
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker set:kGAIScreenName value:screenName];
- [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
- // [tracker set:kGAIScreenName value:nil]; // 清除值,直接在追踪器设置值将是持久值,并且会应用于多次匹配。
-
- }
- + (NSString *)currentTrackScreen {
- return [[[GAI sharedInstance] defaultTracker] get:kGAIScreenName];
- }
- + (void)trackEventCategory:(NSString *)category action:(NSString *)action label:(NSString *)label value:(NSNumber *)value {
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker send:[[GAIDictionaryBuilder createEventWithCategory:category action:action label:label value:value] build]];
- }
- + (void)trackTimingWithCategory:(NSString *)category interval:(NSTimeInterval)loadTime name:(NSString *)name label:(NSString *)label {
-
- id tracker = [[GAI sharedInstance] defaultTracker];
-
- // 以毫秒表示的计时值
- [tracker send:[[GAIDictionaryBuilder createTimingWithCategory:category
- interval:@((NSUInteger)(loadTime * 1000))
- name:name
- label:label] build]];
-
- }
- + (void)trackSignInUserID:(NSString *)userID {
-
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- [tracker set:kGAIUserId value:userID];
-
-
- }
- + (void)trackSignOut {
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- // NSString *userId = [tracker get:kGAIUserId];
-
- [tracker set:kGAIUserId value:nil];
- }
- + (void)trackProduct:(NSString *)productName action:(NSString *)action count:(NSNumber *)count{
-
- AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
-
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
-
- GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
-
- for (NSString *product_name in [productName componentsSeparatedByString:@","]) {
-
- GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
- [product setName:product_name];
- if (count) {
- [product setQuantity:count];
- }
- [builder addProduct:product];
-
- [builder addProductImpression:product impressionList:@"Products" impressionSource:nil];
-
- }
- GAIEcommerceProductAction *paction = [[GAIEcommerceProductAction alloc] init];
- if ([action isEqualToString:@"Add To Cart"]) {
-
- [paction setAction:kGAIPAAdd];
- // 自定义指标 Add To Cart
- NSString *metricValue4 = @"1";
- [tracker set:[GAIFields customMetricForIndex:2] value:metricValue4]; //
-
- } else {
-
- [paction setAction:kGAIPADetail];
-
- // 自定义指标 View A Model
- NSString *metricValue3 = @"1";
- [tracker set:[GAIFields customMetricForIndex:1] value:metricValue3]; //
- }
- [builder setProductAction:paction];
-
- // 自定义维度
- NSString *dimensionValue1 = productName;
- [tracker set:[GAIFields customDimensionForIndex:1] value:dimensionValue1]; // Model Name
- NSString *dimensionValue2 = appDelegate.user;
- [tracker set:[GAIFields customDimensionForIndex:2] value:dimensionValue2]; // User Name
- NSString *dimensionValue3 = appDelegate.customerInfo[@"customer_name"];
- [tracker set:[GAIFields customDimensionForIndex:3] value:dimensionValue3]; // Customer Name
-
- //----------------
- [tracker send:[builder build]];
- [self clearTracker];
- }
- + (void)clearTracker {
- id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
- [tracker set:[GAIFields customMetricForIndex:3] value:nil]; //
- [tracker set:[GAIFields customMetricForIndex:4] value:nil];
- [tracker set:[GAIFields customDimensionForIndex:1] value:nil];
- // [tracker set:[GAIFields customDimensionForIndex:2] value:nil];
- // [tracker set:[GAIFields customDimensionForIndex:3] value:nil];
- }
- @end
|