我已经在我的iOS应用程序中集成了谷歌分析SDK v3,现在我需要跟踪屏幕视图。以下是我目前在其网站上看到的内容:
这是我正在使用的代码(手动屏幕测量):
+ (void)setupGoogleAnalytics
{
// User must be able to opt out of tracking
[GAI sharedInstance].optOut = NO;
// Initialize Google Analytics with a 120-second dispatch interval. There is a
// tradeoff between battery usage and timely dispatch.
[GAI sharedInstance].dispatchInterval = 120;
[GAI sharedInstance].trackUncaughtExceptions = YES;
[[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];
[[GAI sharedInstance] trackerWithName:[infoDictionary objectForKey:@"CFBundleDisplayName"] trackingId:GOOGLE_ANALYTICS_TOKEN];
[[GAI sharedInstance].defaultTracker set:kGAIAppVersion value:[infoDictionary objectForKey:@"CFBundleShortVersionString"]];
}
+ (void)dispatchLogView:(NSString *)viewName Category:(NSString *)category action:(NSString *)action label:(NSString *)label value:(NSNumber*)value withProperties:(NSDictionary *)dictProp
{
NSMutableDictionary *event = [[GAIDictionaryBuilder createEventWithCategory:category
action:action
label:label
value:value] build];
[[GAI sharedInstance].defaultTracker send:event];
[[GAI sharedInstance].defaultTracker set:kGAIScreenName value:viewName];
[[GAI sharedInstance].defaultTracker set:kGAIDescription value:viewName];
[[GAI sharedInstance].defaultTracker send:[[GAIDictionaryBuilder createAppView] build]];
[[GAI sharedInstance] dispatch];
}
在didFinishLaunchingWithOptions上调用SetupGoogleAnalytics。进行这些更改后,我仍然在“屏幕视图”和“屏幕/会话”部分下看到零。老实说,我不知道我错过了让它正常工作。以下是我用来整合https://developers.google.com/analytics/devguides/collection/ios/v3/screens#manual
的链接之前是否有人遇到过同样的问题?有人对此有任何意见吗?
先谢谢你的帮助......
答案 0 :(得分:4)
我尝试了以下方法,以便能够跟踪Google Analytics上的屏幕。您可以尝试一下,看看它是否适合您。
首先,请确保根据Google提供的指南正确配置了头文件和项目:Google Analytics SDK for iOS v3 - Getting Started
接下来,在您要跟踪的屏幕的 viewDidLoad 下: -
- (void)viewDidLoad
{
[super viewDidLoad];
id tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"Home Screen"];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
}
在 viewDidAppear 下: -
-(void)viewDidAppear:(BOOL)animated{
self.screenName = @"Home Screen";
[super viewDidAppear:animated];
}
没错。 self.screenName
必须放在[super viewDidAppear:animated];
之前,才能在Google Analytics上跟踪屏幕。这很奇怪但它只能在我自己的项目中的某些特殊情况下工作。可能它也适用于您的项目。
注意: viewDidload 和 viewDidAppear 的屏幕名称应该相同。
答案 1 :(得分:2)
我是这样做的,它有效。 对于我的每个ViewController的viewDidAppear:
id<GAITracker> tracker = [[GAI sharedInstance] defaultTracker];
[tracker set:kGAIScreenName value:@"XXX view"];
[tracker send:[[GAIDictionaryBuilder createAppView] build]];
我在AppDelegate的didFinishLauching中添加了这个
[GAI sharedInstance].trackUncaughtExceptions = YES;
[[GAI sharedInstance].logger setLogLevel:kGAILogLevelVerbose];
[GAI sharedInstance].dispatchInterval = 20;
[[GAI sharedInstance] trackerWithTrackingId:@"UA-XXXXXXXX-X"];
kGAILogLevelVerbose每20秒记录一次发送到服务器的活动,以便您可以看到它。这仅用于您的调试目的,请务必在提交应用程序之前将其注释掉。
此外,您应该能够在实时屏幕上看到您的屏幕,并在您进行调试时看到有1个用户。
祝你好运。
答案 2 :(得分:2)
常规设置
取自Google Analytics iOS文档。
您可能希望将其中一些内容添加到didFinishLaunchingWithOptions
// 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手动触发事件。
将以下内容添加到视图控制器的viewDidAppear
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]];
答案 3 :(得分:1)
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])
答案 4 :(得分:0)
您好@Maystro您必须在今天的GoogleAnalytics帐户中设置日期, 然后你可以在那里看到你当前的事件。如果你不这样做。 我读到你说“谢谢你输入,情况确实如此。我需要等待至少12小时才能在Google分析页面上看到更新的数据。 - 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";
或
[[tracker set:kGAIScreenName value:@"Your screenName"]build]];
希望!您的要求将通过上述步骤解决