// // 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 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 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 tracker = [[GAI sharedInstance] defaultTracker]; [tracker set:kGAIUserId value:userID]; } + (void)trackSignOut { id 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 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 = RASingleton.sharedInstance.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 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