谷歌分析ios屏幕视图

谷歌分析ios屏幕视图,ios,google-analytics-api,Ios,Google Analytics Api,我已经在iOS应用程序中集成了google analytics SDK v3,现在我需要跟踪屏幕视图。以下是我目前在他们网站上看到的内容: 以下是我正在使用的代码(手动屏幕测量): 在didFinishLaunchingWithOptions上调用SetupGoogleAnalytics。在做了这些更改之后,我仍然在“屏幕视图”和“屏幕/会话”部分看到零。老实说,我不知道我错过了什么让它正常工作。这是我用来整合它的链接 以前有人遇到过同样的问题吗?有人对此有什么意见吗 提前感谢您的帮助…我就是

我已经在iOS应用程序中集成了google analytics SDK v3,现在我需要跟踪屏幕视图。以下是我目前在他们网站上看到的内容:

以下是我正在使用的代码(手动屏幕测量):

在didFinishLaunchingWithOptions上调用SetupGoogleAnalytics。在做了这些更改之后,我仍然在“屏幕视图”和“屏幕/会话”部分看到零。老实说,我不知道我错过了什么让它正常工作。这是我用来整合它的链接

以前有人遇到过同样的问题吗?有人对此有什么意见吗


提前感谢您的帮助…

我就是这样做的,效果很好。 对于每个我的ViewController的ViewDid,将显示:

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"XXX view"];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
kGAILogLevelVerbose记录每20秒发送到服务器的活动,以便您可以看到它。这仅用于调试目的,请确保在提交应用程序之前对其进行注释

此外,您应该能够在实时屏幕视图上看到您的屏幕,在调试时只有一个用户


祝你好运。

为了能够跟踪谷歌分析上的屏幕,我尝试了以下方法。你可以试试看它是否适合你

首先,确保根据Google提供的指南正确配置了头文件和项目:

接下来,在要跟踪的屏幕的viewdiload下:-

- (void)viewDidLoad
{
    [super viewDidLoad];

    id tracker = [[GAI sharedInstance] defaultTracker];
    [tracker set:kGAIScreenName value:@"Home Screen"];
    [tracker send:[[GAIDictionaryBuilder createAppView] build]];
}
视图下显示:-

-(void)viewDidAppear:(BOOL)animated{

    self.screenName = @"Home Screen";
    [super viewDidAppear:animated];
}
这没有错
self.screenName
必须放在
[super-viewdide:animated]之前以便在Google Analytics上跟踪屏幕。这很奇怪,但它只能在我自己的项目中的一些特殊情况下工作。也许它也会对你的项目起作用


注意:查看加载和查看显示的屏幕名称应相同。

常规设置

摘自谷歌分析iOS文档。 您可能希望将其中一些添加到您的
didfishlaunchingwithoptions

// Optional: automatically send uncaught exceptions to Google Analytics.
[GAI sharedInstance].trackUncaughtExceptions = YES;

// Optional: set Google Analytics dispatch interval to e.g. 20 seconds.
[GAI sharedInstance].dispatchInterval = 20;

// Optional: set Logger to VERBOSE for debug information.
[[[GAI sharedInstance] logger] setLogLevel:kGAILogLevelVerbose];

// Initialize tracker. Replace with your tracking ID.
[[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXX-Y"];
此外,您还有两个选项来跟踪视图控制器事件

选项A-实现自动屏幕测量

让google analytics自动测量应用程序中的视图,让视图控制器扩展
GAITrackedViewController
。将名为
screenName
的属性设置为要在报告中显示的屏幕名称

#import "GAITrackedViewController.h"

@interface HomeViewController : GAITrackedViewController

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    self.screenName = @"Your screen name that should show up in Google Analytics";
}
选项B-手动跟踪屏幕事件

手动触发每个所需ViewController的事件。 将以下内容添加到视图控制器的视图显示中

id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"Your screen name that should show up in Google Analytics"];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
id tracker=[[GAI sharedInstance]defaultTracker];
[tracker set:kGAIScreenName值:@“您的屏幕名称应显示在Google Analytics中”];
[跟踪器发送:[[GAIDictionaryBuilder createAppView]生成]];

hello@Maystro您今天必须在GoogleAnalytics帐户上设置日期, 然后你可以在那里看到你的时事。如果你没有那么做。
我读到你说“谢谢你的输入,情况就是这样。我需要等待至少12小时才能在谷歌分析页面上看到更新的数据。-Maystro 6月27日6:34”

请申请

[GAI sharedInstance].dispatchInterval = 10;
每10秒快速响应一次。 并检查在AppDelegate.m中应用的以下块 打电话

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    [self startGoogleAnalytics];
    ....//your other code
}

- (void)startGoogleAnalytics
{
    NSDictionary *appDefaults = @{kAllowTracking: @(YES)};
    [[NSUserDefaults standardUserDefaults] registerDefaults:appDefaults];

    // User must be able to opt out of tracking

    [GAI sharedInstance].optOut =
    ![[NSUserDefaults standardUserDefaults] boolForKey:@"allowTracking"];

   // Initialise Google Analytics with a 120-second dispatch interval. There is a
   // tradeoff between battery usage and timely dispatch.

    [GAI sharedInstance].dispatchInterval = 10;
    [GAI sharedInstance].trackUncaughtExceptions = YES;
    [[GAI sharedInstance] trackerWithName:@"XYZ_Tracker"
                           trackingId:@"UA-XXXX-Y"];
}
然后使用发送屏幕状态

self.screenName = @"Your screen name that should show up in Google Analytics";


希望!您的需求将通过上述步骤解决

Swift 3

    let tracker = GAI.sharedInstance().defaultTracker
    tracker?.set("Home Screen", value: "Home Screen")
    let screenTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
    tracker?.send(screenTracker as! [AnyHashable: Any])

@Maystro您确保在didFinishLauching中设置了GAI?老实说,我的实现似乎是正确的,因为现在数据每天都在更新。问题是我不知道我需要等待至少12个小时才能正确更新数据。感谢您的输入,但我无法接受您的答案。今天,我刷新了Google analytics页面,最后,它显示iOS屏幕视图为112,但我不知道它们是如何获得的(我尝试了太多的解决方案,我不知道哪一个是正确的)。我的问题是:Google analytics是否需要时间来刷新/显示更新的值,因为它不是实时数据?是的,它确实需要一些时间来显示,至少12小时。但有一个特点是“实时”,它应该显示实时数据。我建议您将跟踪代码放在viewDidLoad和ViewDidDisplay上。只要同一视图控制器中的屏幕名称相同,它就会将它们视为一个单独的屏幕。感谢您的输入,情况就是这样。我需要等待至少12小时才能在Google analytics页面上看到更新的数据。为什么不直接使用ViewWillAppeal?这样,在调用ViewDidDisplay上的super之前,就不必费心设置变量了。您甚至不需要覆盖ViewDidDisplay。
self.screenName = @"Your screen name that should show up in Google Analytics";
[[tracker set:kGAIScreenName value:@"Your screenName"]build]];
    let tracker = GAI.sharedInstance().defaultTracker
    tracker?.set("Home Screen", value: "Home Screen")
    let screenTracker: NSObject = GAIDictionaryBuilder.createScreenView().build()
    tracker?.send(screenTracker as! [AnyHashable: Any])