ios - 谷歌 ios 分析不适用于少数屏幕

标签 ios objective-c ios7 google-analytics google-analytics-api

我已将 Google 分析集成到我的应用程序中。它适用于少数屏幕,但不适用于少数其他屏幕(即 View Controller )。

我总共有 45 个屏幕,但 GAI 仅适用于 19 个屏幕。 我已按照 this documentation 中的步骤进行操作.

我在所有 View Controller 中进行了如下更改,

@interface Myviewcontroller : GAITrackedViewController

并在 .h 和 .m 文件中导入 GAITrackedViewController

#import "GAITrackedViewController.h"

它在某些屏幕上工作正常,但在其他一些屏幕上却不行。我正在使用 self.screenName = @"Home screen"; 发送屏幕名称。

NSLogger对于成功集成的viewcontrollers如下,

VERBOSE: GoogleAnalytics 3.01 -[GAIBatchingDispatcher persist:] (GAIBatchingDispatcher.m:414): Saved hit: {
parameters =     {
    "&_u" = ".etno";
    "&_v" = "mi3.0.1";
    "&an" = My Project;
    "&av" = "1.0";
    "&cd" = "Home Screen";
    "&cid" = "XXXXXXXXXXXXXXXXXXXXXXX";
    "&sr" = 320x480;
    "&t" = appview;
    "&tid" = "UA-XXXXXXX-2";
    "&ul" = en;
    "&v" = 1;
    "&z" = XXXXXXXXXXXXX;
    gaiVersion = "3.01";
    };
    timestamp = "2014-04-28 09:44:17 +0000";
}

但是没有针对不成功尝试的日志记录,一段时间后我可以看到一些类似的日志记录,

INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 0X000007
INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 0X000002
INFO: GoogleAnalytics 3.01 -[GAIReachabilityChecker reachabilityFlagsChanged:] (GAIReachabilityChecker.m:159): Reachability flags update: 00000000

我检查了所有的 View Controller ,在这些屏幕之间集成 Google-Analytics 时代码没有区别。

我错过了什么?任何建议将不胜感激。

最佳答案

你在哪里添加 self.screenName = @"Home screen";

我以前发送页面浏览事件而不是使用自动跟踪:

//Init once
[GAI sharedInstance].dispatchInterval = 30;
[GAI sharedInstance].trackUncaughtExceptions = NO;
self.tracker = [[GAI sharedInstance] trackerWithTrackingId:gai_id];

并且在一个通用的 UIViewController 类中(然后您可以在任何想跟踪页面的时候继承自该类):

  1. 在.h中定义一个属性screenName

    @property(nonatomic, copy) NSString *screenName;

  2. 在 .m 中使用它

    -(void)viewDidAppear:(BOOL)动画{ //谷歌跟踪 [super viewDidAppear:animated];

    @try {
        [tracker set:kGAIScreenName value:screenName];
        [tracker send:[[GAIDictionaryBuilder createAppView] build]];
    }
    @catch (NSException *exception) {
        NSLog(@"[ERROR] in Automatic screen tracking: %@", exception.description);
    }
    

  3. 记得在inheritViewControllers里设置

    -(void)viewDidAppear:(BOOL)animated {
      self.screenName = @"my page name";
     [super viewDidAppear:animated];
    }
    

希望这对您有所帮助。

关于ios - 谷歌 ios 分析不适用于少数屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23338008/

相关文章:

ios - IOS7 升级后 Xcode 5 在 iPad 中编译的 iPhone 应用程序的框架问题(在 iPhone 中工作正常)

ios - 我可以在后台运行多点连接 session 吗?

iphone - 使用 UIButton 更改 UIScrollView?

ios - UILabel 文本行设置为方形排列 iOS

Objective-C - 在执行 "Initializer Chain"后遇到问题

ios - iBeacons 问题 : Did enter region triggers multiple times

ios - iOS7中更改tableview单元格的背景颜色

javascript - 从网站向日历应用程序添加事件?

ios - 对成员 'downloadTask(with:completionHandler:)' 的模糊引用

iphone - 从 Xcode 将 iPhone 应用程序安装到设备上,没有使用应用程序安装的文件