GoogleAnalyst.m 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. //
  2. // GoogleAnalyst.m
  3. // iSales-NPD
  4. //
  5. // Created by Jack on 2017/3/28.
  6. // Copyright © 2017年 United Software Applications, Inc. All rights reserved.
  7. //
  8. #import "GoogleAnalyst.h"
  9. #import "Analytics.h"
  10. #import "iSalesNetwork.h"
  11. @implementation GoogleAnalyst
  12. #pragma mark - Private
  13. + (NSString *)currentDateString {
  14. NSDate *date = [NSDate date];
  15. NSDateFormatter *formate = [[NSDateFormatter alloc] init];
  16. formate.dateFormat = @"YYYY-MM-dd HH:mm:ss";
  17. return [formate stringFromDate:date];
  18. }
  19. #pragma mark - Public
  20. + (void)trackScreen:(NSString *)screenName {
  21. if (!screenName.length) {
  22. return;
  23. }
  24. // 屏幕追踪
  25. id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
  26. [tracker set:kGAIScreenName value:screenName];
  27. [tracker send:[[GAIDictionaryBuilder createScreenView] build]];
  28. // [tracker set:kGAIScreenName value:nil]; // 清除值,直接在追踪器设置值将是持久值,并且会应用于多次匹配。
  29. }
  30. + (NSString *)currentTrackScreen {
  31. return [[[GAI sharedInstance] defaultTracker] get:kGAIScreenName];
  32. }
  33. + (void)trackEventCategory:(NSString *)category action:(NSString *)action label:(NSString *)label value:(NSNumber *)value {
  34. id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
  35. [tracker send:[[GAIDictionaryBuilder createEventWithCategory:category action:action label:label value:value] build]];
  36. }
  37. + (void)trackTimingWithCategory:(NSString *)category interval:(NSTimeInterval)loadTime name:(NSString *)name label:(NSString *)label {
  38. id tracker = [[GAI sharedInstance] defaultTracker];
  39. // 以毫秒表示的计时值
  40. [tracker send:[[GAIDictionaryBuilder createTimingWithCategory:category
  41. interval:@((NSUInteger)(loadTime * 1000))
  42. name:name
  43. label:label] build]];
  44. }
  45. + (void)trackSignInUserID:(NSString *)userID {
  46. id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
  47. [tracker set:kGAIUserId value:userID];
  48. }
  49. + (void)trackSignOut {
  50. id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
  51. // NSString *userId = [tracker get:kGAIUserId];
  52. [tracker set:kGAIUserId value:nil];
  53. }
  54. + (void)trackProduct:(NSString *)productName action:(NSString *)action count:(NSNumber *)count{
  55. id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
  56. GAIDictionaryBuilder *builder = [GAIDictionaryBuilder createScreenView];
  57. for (NSString *product_name in [productName componentsSeparatedByString:@","]) {
  58. GAIEcommerceProduct *product = [[GAIEcommerceProduct alloc] init];
  59. [product setName:product_name];
  60. if (count) {
  61. [product setQuantity:count];
  62. }
  63. [builder addProduct:product];
  64. [builder addProductImpression:product impressionList:@"Products" impressionSource:nil];
  65. }
  66. GAIEcommerceProductAction *paction = [[GAIEcommerceProductAction alloc] init];
  67. if ([action isEqualToString:@"Add To Cart"]) {
  68. [paction setAction:kGAIPAAdd];
  69. } else {
  70. [paction setAction:kGAIPADetail];
  71. }
  72. [builder setProductAction:paction];
  73. [tracker send:[builder build]];
  74. }
  75. @end