如何在 JS 中手动将 gclid 参数传递给 Google Analytics

Posted

技术标签:

【中文标题】如何在 JS 中手动将 gclid 参数传递给 Google Analytics【英文标题】:How to pass gclid parameter manually in JS to Google Analytics 【发布时间】:2016-07-02 15:52:52 【问题描述】:

我有一个使用世界上最令人惊叹的框架之一构建的网站。不幸的是,它有一个缺点。它不允许使用查询参数,例如:www.url.com/page/1 可以,但 www.url.com/?page=1 不行。当您输入此 URL 时,它会使用浏览器历史记录,因此 URL 中不会留下任何查询参数。

我在 Google Adwords 中有一个广告系列,可将用户引导至此网站。自动标记已开启。我注意到我的网站有 1 万次点击,但 Google Analytics(分析)并未报告 Adwords 来源的这一数字。

我发现 Adwords 自动标记正在将 gclid 参数添加到目标 URL。比,Analytics 了解有关活动的所有信息,因为 Analytics 和 Adwords 链接在一起,我应该有关于活动及其转化的漂亮分析数据。

但我没有。由于我最伟大的网站框架之一通过其 JS 代码删除了 gclid 参数,因此 Analytics 不会注意到 gclid 并且不会保存用户的来源。

为了检查这是否真的是我的网站框架问题,我已将 utm(umt) 参数添加到我的网站并在 Analytics 中实时检查源。没有报告为我在参数中提供的来源,而是直接访问。

我希望能够在 Google Analytics(分析)中分析 Adwords 的效果。不幸的是,我无法改变我的框架,因为它是世界上最伟大的框架之一。但我注意到,在触发框架的 JS 代码之前,我有一段时间有一个带有参数 gclid 的 URL。

下面几行我有我的谷歌分析跟踪代码。显然它试图从 URL 中获取 gclid。但对他来说已经太晚了。当 Google Analytics 尝试读取 gclid 参数时,它就消失了。

所以我的问题是:既然我有 gclid,有没有 Google Analytics 的方法可以将它传递给他?就像说:

var gclid = getGClidBeforeItsToLate(); // 我已经覆盖了

// 很棒的框架东西

HeyGoogleAnalyticsHereYouGoItsYourGclidTakeCare(gclid);

?

【问题讨论】:

【参考方案1】:

覆盖“location”字段并附加 gclid 参数。

if(gclid) 
  ga('set', 'location', document.location + '?gclid=' + gclid);

ga('send','pageview')

您必须使用位置字段,而不是“页面”字段(获取页面路径),因为即使您在路径中添加参数,后者也不会更改属性。

如果您手动设置了广告系列参数(“utm 参数”),您可以通过campaignMedium/campaignSource/campaignName 字段进行设置,但由于您无法从 gclid 获取各个广告系列值,因此您必须覆盖位置(在点 GA 将关闭它从浏览器的地址栏中收集的内容并使用您传入的值)。

【讨论】:

太棒了。这就是我要找的。我的情况不同,但要求是一样的。我有一个客户正在使用 utm_source(不要问)将活动信息(不是源)发送到另一个跟踪平台,当我们有自动标记时,这完全破坏了 GA 用户旅程,所以我需要覆盖活动信息而不更改网址,活动名称等是不够的。

以上是关于如何在 JS 中手动将 gclid 参数传递给 Google Analytics的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给 React js 中的函数?

如何将命令行参数传递给 Node.js 程序?

如何将命令行参数传递给 Node.js 程序?

如何将命令行参数传递给 Node.js 程序?

如何将命令行参数传递给 Node.js 程序?

如何将命令行参数传递给 Node.js 程序?