如何为Google Analytics事件跟踪设置应用程序版本号

11
当我尝试在Google Analytics中设置appVersion时,我的事件跟踪停止工作。具体来说,我正在尝试将应用程序版本与事件跟踪一起使用,以便我可以知道哪个应用程序版本引起了事件。
我已经尝试像这样设置应用程序版本:
ga('set', 'appVersion', app.version);

我尝试过这样做:
ga('send', 
   'event', 
   eventCategory, 
   eventAction, 
   {'page': pageName, 'appVersion' : app.version });

我也尝试了另一种语法:

ga('send', 
   {'hitType' : 'event',
    'eventCategory' : eventCategory,
    'eventAction' : eventAction,
    'page' : pageName,
    'appVersion' : app.version});

如果我包含appVersion,那么事件跟踪就会停止工作。实时中不显示任何事件,并且第二天在“行为/事件”部分也不显示。尽管如此,页面浏览量仍然有效。
根据评论的要求,我正在编辑以添加我的事件跟踪代码。在我试图解决这个问题的过程中,它经历了几次变化。这是当前的样子。
var app = {
    trackEvent: function (pageName, eventCategory, eventAction, optionalEventLabel, optionalEventValue) {

        var eventObject = {
            'eventCategory' : eventCategory,
            'eventAction' : eventAction,
            'optionalEventLabel' : optionalEventLabel,
            'optionalEventValue' : optionalEventValue,
            'page' : pageName,
        };

        console.log("app.trackEvent - " + JSON.stringify(eventObject));

        ga('send', 'event', eventObject);
    }
}

我经常使用以下方式从多个地方调用此方法:

app.trackEvent("PageNameValue", "EventCategoryValue", "EventActionValue", "EventLabelValueIfIHaveOne", AnIntegerValueIfIHaveOne);

任何帮助或建议将不胜感激。 编辑... 我发现了以下似乎适用的错误报告:https://code.google.com/p/analytics-issues/issues/detail?id=366 错误报告提到通过设置自定义维度来解决此问题。我会尝试一下。


两种事件格式都看起来不错。为了方便起见,您可能希望将事件标签与应用版本一起设置。请注意,如果您使用set方法设置应用版本,则适用于页面上的所有数据发送。此外,如果您已经使用set方法设置了应用版本,则在事件数据发送中不需要再次设置(所以只需选择一种方法即可,不要同时使用两种)。常规的调试步骤包括:使用GA Debugger进行检查,检查控制台数据发送情况,确保没有设置过滤器。 - nyuen
谢谢nyuen的回复。感谢您确认了set的行为,这对我来说似乎更可取。我安装了GA调试器插件并打开了它,但是我在控制台输出中没有看到任何区别。也许我没有在正确的地方寻找。按Ctrl+Shift+J可以打开Chrome开发者控制台,对吗?当我查看控制台的网络选项卡时,我可以看到GA事件请求以状态码200完成,这应该表示成功,但正如我所说,事件跟踪将完全停止工作。我注意到我的初始请求被重定向(状态码307)。 - SneakyBeagle79
将eventLabel与版本号设置的想法可能是一个解决方法。我希望能够使用实际的appVersion使其正常工作,以便我可以将其用作筛选eventCategory的二级维度。 - SneakyBeagle79
我不确定为什么事件会停止工作。你能否提供你接下来的事件的代码(即在成功事件之后应触发的事件)? - nyuen
上面的trackEvent代码目前可以正常工作。但是如果我在发送事件调用中添加'appVersion':'1.0',它就会停止工作。 - SneakyBeagle79
3个回答

8
这似乎是Google Analytics的一个bug。更多信息请参见https://code.google.com/p/analytics-issues/issues/detail?id=366
正如报告Bug的人建议的那样,解决方法是在Google Analytics控制台的Admin / Custom Definitions / Custom Dimensions部分中使用您定义的自定义维度。
  1. 点击“新建自定义维度”
  2. 输入名称(我输入了customAppVersion
  3. 选择范围(我选择了Hit
  4. 点击创建
然后,Google会为您提供代码示例,例如...
var dimensionValue = 'SOME_DIMENSION_VALUE';
ga('set', 'dimension1', dimensionValue);

在代码示例中,你需要更改的唯一内容是“dimensionValue”的值。因此,最终代码如下:

ga('create', 'UA-########-#', 'auto');
ga('set', 'checkProtocolTask', null); // Disable file protocol checking (so that GA will work on Android devices)
ga('set', 'dimension1', app.version);
ga('send', 'pageview');

接下来,自定义维度将应用于Google Analytics记录的每个数据点,并且您可以使用该自定义维度在Google Analytics控制台中过滤结果。


4

根据谷歌的规定

由于appName字段必须随所有应用程序数据发送,通常最好使用set命令在跟踪器本身上设置该字段,或者在创建跟踪器时设置。

ga('create', 'UA-XXXXX-Y', 'auto', {
  'appName': 'myAppName'
});

// The `appName` field is now set on the tracker, so
// screenview hits don't need to include it.
ga('send', 'screenview', {appVersion: '1.2'});

// Sending multiple parameters

ga('send', 'screenview', {appName: 'com.company.app', appVersion: '1.2'});

更多信息在这里


谢谢您的回复。不幸的是,我正在尝试设置appVersion,而不是appName。虽然我还没有尝试过,但我找到的错误报告说设置appName也会导致事件跟踪失败。 - SneakyBeagle79
嗨,如果这个回答解决了你的问题,请标记它为正确答案,以便其他人也能受益。非常感谢。 - Chetan Sharma
我按照你的建议在跟踪器创建时尝试设置appVersion,但结果参差不齐。事件跟踪仍然可以工作,但记录的事件并没有预期的appVersion信息。 - SneakyBeagle79
你能否使用这个 GA 调试器测试一下请求是否不是来自客户端?这个工具可以作为 Chrome 的扩展使用。有时候,问题可能出现在报告侧的过滤视图上。https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna?hl=en - Chetan Sharma

2

如果您设置至少"appName",它就能正常工作。在设置"appVersion"之前,最好先设置"appName"和"appId",这是一个良好的实践。

"Original Answer"翻译成"最初的回答"。

ga('set', 'appId', app.id);
ga('set', 'appName', app.id);
ga('set', 'appVersion', app.version);

顺序不重要。 - Serginho
那是真的! - Vinicius Patrinhani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接