Google analytics 如何使用Google Analytics为第三方网站创建跟踪像素?

Google analytics 如何使用Google Analytics为第三方网站创建跟踪像素?,google-analytics,google-analytics-api,universal-analytics,Google Analytics,Google Analytics Api,Universal Analytics,我们需要跟踪在第三方网站上发生的转换。我们唯一能放在那个网站上的东西就是一个图像像素,也许还有一些JS逻辑,用于何时启动它 我知道可以使用测量协议触发转换: 理想情况下,我会给第三方一个IMG url,就是这样。问题在于CID(唯一客户端id) 我可以尝试通过URL参数将CID从我们的站点传递给第三方。然而,在许多情况下,它不可用(例如,IMG pixcel将在电子邮件中,目标URL在印刷文献上),或者第三方不愿意经历这些麻烦。以这种方式通过此CID是最佳做法吗 我可以尝试生成一个CID,但我找

我们需要跟踪在第三方网站上发生的转换。我们唯一能放在那个网站上的东西就是一个图像像素,也许还有一些JS逻辑,用于何时启动它

我知道可以使用测量协议触发转换:

理想情况下,我会给第三方一个IMG url,就是这样。问题在于CID(唯一客户端id)

我可以尝试通过URL参数将CID从我们的站点传递给第三方。然而,在许多情况下,它不可用(例如,IMG pixcel将在电子邮件中,目标URL在印刷文献上),或者第三方不愿意经历这些麻烦。以这种方式通过此CID是最佳做法吗

我可以尝试生成一个CID,但我找不到一个非常简单的方法,例如var CID=generateCID()。第三方网站在页面上有自己的GA。我可以把他们的谷歌分析CID用在图像像素URL中吗


最好的方法是什么?谢谢大家!

如果第三方网站已经运行analytics.js,那么使用该客户端ID可能是最好的选择。您可以通过执行以下操作来获得它:

var cid;
ga(function(tracker) {
  cid = tracker.get('clientId'));
});
如果analytics.js未运行,或者由于某种原因无法访问
ga
变量,则可以随机生成客户端ID。这大概就是谷歌所做的。它是一个随机的31位整数,附加了当前日期字符串:

var cid = Math.floor(Math.random() * 0x7FFFFFFF) + "." +
          Math.floor(Date.now() / 1000);

Google Analytics期望随机UUID(版本4)作为客户端ID,这只是为了补充@Philip Walton的优秀答案

客户端ID 所有命中类型都需要。

这将匿名标识特定用户、设备或浏览器 例如。对于web,这通常存储为第一方 过期两年的饼干。对于移动应用程序,这是随机的 为应用程序安装的每个特定实例生成。这个 此字段的值应为所述的随机UUID(版本4) 在

@broofa提供了一种在JavaScript中生成符合RFC4122的UUID的简单方法。为了完整起见,在此引用:

“xxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxx”。替换(/[xy]/g,函数(c){
var r=Math.random()*16 | 0,v=c='x'?r:(r&0x3 | 0x8);
返回v.toString(16);
});

虽然谷歌建议客户端id采用UUID格式,但实际上您可以使用任何字符串或数字。建议使用UUID,因为它可以避免冲突,如果您需要转换的绝对数量而不需要单独的用户,那么您可以简单地对所有像素使用相同的数量(或者每次转换一个)。否则在JS中生成一个随机数并使用它。如果我使用静态跟踪像素,这将如何影响目标、事件和用户的跟踪?GA会认为这些都是同一个人开的枪吗?目标和事件是否会根据需要多次触发?当你说“绝对转换次数”时,你指的是什么指标/报告?谢谢,Philip。那么我可能会使用现有的CID。但是如果我确实需要生成一个CID,Philippe Sawicki在他的回答中提供的那个看起来更完整。要通过tracker.get('clientId')获取CID,我需要创建一个setInterval循环,以等待GA准备就绪。这让我觉得使用第三方的CID没有任何好处,因为该id对于另一个GA实例来说毫无意义。我想最好生成一个新的CID.FWIW,您不必使用
setInterval
。如果将
ga()
函数作为参数传递给一个函数,它将在库准备好后立即执行(如我在回答中所示)。如果ga()还没有退出呢?我相信我最初试图在DOM ready上启动它,但出现了一个错误。这就是我添加setInterval的原因。这就是代码段的作用。它初始化了
ga()
函数。谢谢你引用这句话,并澄清谷歌官方的要求。你知道对所有像素点击使用静态CID的后果吗?好奇这是否可取,甚至是一个选项。通过对所有点击使用静态CID,分析将假定所有页面视图、事件、维度、度量等都来自同一设备/浏览器。如果您只关心事件/页面浏览量的“数量”,这将无关紧要,但您不会记录会话/用户/回访访客等的数据,那么您将需要为每个访客提供UUID。此外,您可能会被限制为每个会话持续时间只有一次,如果共享客户端ID,则可能会丢失转换。这个答案完全有效,可以说是生成客户端ID的更好方法。但是,我想指出,不使用UUID v4决不会导致您的代码中断或您的点击被Google Analytics拒绝。我们的建议是尽量减少重复的风险,而不是为了符合要求。当然,@PhilipWalton的回答完全正确:)