6

我想使用谷歌分析来跟踪某些用户的浏览量和会话。为此,我(希望)使用最新 (v1.1) GANTracker 版本支持的自定义变量。

在我的 appHeader 我有这个代码:

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxxx-x"
                                       dispatchPeriod:10
                                             delegate:nil];

NSError *error1;
if(![[GANTracker sharedTracker] setCustomVariableAtIndex:0
                                                    name:@"userSession"
                                                   value:@"username"
                                                   scope:kGANSessionScope
                                               withError:&error1]){
    NSLog(@"error1 %@", error1);
}

NSError *error2;
if(![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                    name:@"userSession"
                                                   value:@"username"
                                                   scope:kGANPageScope
                                               withError:&error2]){
    NSLog(@"error2 %@", error2);
}

当我启动我的应用程序时,我收到以下错误:

error1: Error Domain=com.google.googleanalytics.GANTrackerError Code=195946409 "The operation couldn’t be completed. (com.google.googleanalytics.GANTrackerError error 195946409.)"
error2: Error Domain=com.google.googleanalytics.GANTrackerError Code=195946409 "The operation couldn’t be completed. (com.google.googleanalytics.GANTrackerError error 195946409.)"

在打开我要跟踪的页面的功能中,我放了这个:

NSError * error;
if(![[GANTracker sharedTracker] trackPageview:@"/pagename"]
                                    withError:&error]){
        NSLog(@"%@", error);
}

这不会返回任何错误

如果我省略了 setCustomVariableAtIndex 函数,则页面浏览量会记录在分析中,但使用自定义变量我什么也得不到。

有谁知道我如何解决这个问题?

4

1 回答 1

6

我遇到了同样的问题,并在Google 的示例代码中偶然发现了答案。

如果将索引设置为零,自定义变量会引发错误。您的第一个变量需要使用索引 1。这会将上面的代码片段更改为如下所示...

[[GANTracker sharedTracker] startTrackerWithAccountID:@"UA-xxxxxxxx-x"
                                       dispatchPeriod:10
                                             delegate:nil];

NSError *error1;
if(![[GANTracker sharedTracker] setCustomVariableAtIndex:1
                                                    name:@"userSession"
                                                   value:@"username"
                                                   scope:kGANSessionScope
                                               withError:&error1]){
    NSLog(@"error1 %@", error1);
}

NSError *error2;
if(![[GANTracker sharedTracker] setCustomVariableAtIndex:2
                                                    name:@"userSession"
                                                   value:@"username"
                                                   scope:kGANPageScope
                                               withError:&error2]){
    NSLog(@"error2 %@", error2);
}
于 2011-07-26T01:02:22.070 回答