如何解码谷歌gclids

时间:2008-12-13 22:50:28

标签: google-analytics statistics analytics protocol-buffers google-adwords

现在,我意识到对此的初步回应可能是“你不能”或“使用分析”,但我会继续希望有人有更多的洞察力。

带有“自动标记”的Google adwords将“gclid”(可能是“google click id”)附加到链接,将您发送到广告网站。它出现在Web日志中,因为它是一个查询参数,分析将其用于将该访问与广告/广告系列相关联。

我想要做的是从gclid中提取任何有用的信息,以便对我们的流量进行自己的分析。原因是:

  • 统计数据并不完美,但如果我们正在整理它们,我们确切地知道我们做了什么假设,以及它们是如何计算的。
  • 我们可以将数据与其余数据相关联,并根据转化率生成更准确的统计数据。
  • 我们不必依赖javascript进行转化。

现在很明显,gclid是base64编码的(或者是一些接近的变体),并且它的某些部分比其他部分的变化更大。除此之外,我还无法确定它与之相关的内容。

有没有人能够深入了解我如何对此进行解码,或者是否有人已经将gclids与相关甚至帐户相关联?

我曾在谷歌与几个人交谈,尽管他们的“不是邪恶”的座右铭,他们完全不愿意讨论泄露这些信息的可能性,即使是在NDA下也是如此。他们似乎喜欢他们对我们网络统计数据的垄断。

11 个答案:

答案 0 :(得分:23)

到目前为止,最简单的解决方案是使用Google Analytics广告系列跟踪参数(utm_source,utm_campaign,utm_medium等)手动标记您的链接,然后提取该数据。

gclid不仅仅依赖于adwords帐号/广告系列/等。如果您点击相同的adwords广告两次,它可以为您提供不同的gclids,因为还有与该特定点击相关联的各种会话和费用数据。

Gclid可能不是100%随机,是的,但我会非常惊讶并担心是否可以从该数字中提取所有Adwords数据。这将是一个巨大的安全漏洞(即任意用户可以查看您的Adwords数据)。更有可能的是,每次展示都会生成伪随机gclid,如果点击该广告,则会在Adwords中记录gclid(否则会将其丢弃)。然后,Google Analytics会根据事实使用该号码将数据与Adwords进行协调。除此之外,gclid数字本身没有内在价值。

关于您的最后一点,Google Analytics和Google Adwords服务条款中明确禁止尝试破解或反向设计此类信息,这是永久禁止的理由。此外,您在注册这些服务时同意的服务条款表明,您不希望以任何方式使用您的数据。 Google正在提供免费服务,因此附带了字符串。如果您不喜欢无法完全控制数据,那么还有很多其他解决方案。但是,您将为这种控制支付额外费用。

谷歌通过销售广告几乎赚到了所有的钱。 Adwords是他们最赚钱的产品。他们不会向您提供有关其工作原理的机密信息。他们不知道你是谁,或者你将如何处理这些信息。如果您签署保密协议并且他们有法律手段起诉您并不重要;如果你把这些信息告诉竞争对手,你的生命就不足以偿还你将失去的钱。

很抱歉打破它,但“不要做恶”,谷歌是一个企业,而不是一个慈善机构。他们没有成为世界上最成功的公司之一,他们将搜索算法提供给第一个要求它的人。

答案 1 :(得分:17)

gclid参数在Protocol Buffers中编码,然后在Base64的变体中编码。

请参阅此guide to decoding the gclid并解释它,包括您可以使用的(Apache许可的)PHP函数。

其中基本上编码了3个参数,其中一个是时间戳。另外两个尚不清楚。

至于理解这些其他参数的含义 - 将它与ei参数进行比较可能会有所帮助,ei参数是encoded in an extremely similar way(基本上是协议缓冲区,其中键被剥离)。 {{1}}参数还有一个时间戳,看似微秒,还有2个其他整数。

答案 2 :(得分:8)

仅供参考,我刚刚在this post上发布了对我网站上某些glcid数据的快速分析。 gclid肯定有一些结构,但很难解读。

答案 3 :(得分:4)

我也一直在公司处理这个问题。我们希望能够更好地了解我们的AdWords正在做什么,但我们对Google Analytics的限制感到沮丧。

我们当前的解决方案是使用正则表达式查看Apache访问日志中的GET请求:

.*[?&]gclid=([^$&]*)

如果存在,那么我们查看referer字符串以获取关键字:

.*[?&]q=([^$&]*).*

另一种选择是更改您的Apache Web日志以开始记录google设置的__utmz cookie,该cookie应该在utmctr中包含关键字。谷歌__utmz cookie,你应该能够找到大量的信息。

引用字符串的准确度如何?不是100%。防火墙和安全设备将剥离它。但是,自己解析它确实比Google Analytics提供了更多的灵活性。将gclid发送给AdWords并获取数据将是一个很棒的功能,但该功能看起来并不像它可用。

编辑:自从我写这篇文章以来,我们还创建了自己的标记,这些标记作为请求参数附加到每个目标网址。每个标记只是文本,广告组和广告系列名称的md5哈希值。我们使用访问日志中的正则表达式来获取它,然后在SQL数据库中查找它。

答案 4 :(得分:4)

我认为你可以通过google的adword api获得与gclid相关的所有好东西。具体来说,您可以查询点击效果报告。

https://developers.google.com/adwords/api/docs/appendix/reports#click

答案 5 :(得分:1)

嗯,这不是答案,但这种方法类似于解决任何加密问题的方法。

可能性1:他们只是随机的,在这种情况下,你被搞砸了。这类似于一次性垫。

可能性2:他们“意味着”某事。在这种情况下,您必须控制环境。

  1. 获取一个很好的数据库。查找您网站和其他网站的gclids。记录所有点击发生的所有时间以及任何其他可能有用的数据
  2. 开裂!正如您已经开始的那样,开始根据已知的数据回归收集的数据,看看您是否能找到使用解密技术的模式
  3. 开始抓取随机gclid,然后看看他们带你去哪里。
  4. 虽然我不希望这成功,但我祝你好运!

答案 6 :(得分:0)

另一种方法是简单地查看引荐数据,该数据至少会提供被搜索的关键字。

答案 7 :(得分:0)

这是一个想法:gclid是否有可能只是一个密码哈希,一点点或其他一些URL缩短器?

在这种情况下,散列文本的内容将写入数据库,并替换为唯一ID。

毕竟,gclid正在缩短一堆长篇文章。

采用这个例子: www.example.com?utm_source=google&utm_medium=cpc

转换为: www.example.com?gclid=XDF

就像一个URL缩短器。

需要替换密码才能对加密哈希进行逆向工程......这不是一件容易的事:https://crypto.stackexchange.com/questions/300/reverse-engineering-a-hash

也许深入挖掘日志,寻找模式等......

答案 8 :(得分:0)

看起来我的代表很弱,所以我只是发布另一个答案而不是评论。

这显然不是一个答案。只是表达一些想法。

在Adwords中启用自动标记时,gclid参数不会添加到目标网址中。而是由Google点击跟踪服务器在运行时将它们附加到目标网址。所以,发生了两件事之一:

  1. 点击服务器正在存储gclid以及Adwords实体标识符,以便Google Analytics稍后可以查找它们。

  2. gclid具有以某种方式编码的实体标识符,以便Google Analytics可以对其进行解码。

  3. 从性能角度来看,谷歌似乎不太可能实施类似选项1的任何内容。强制分析将gclid“加入”Adwords ID似乎效率极低。

答案 9 :(得分:0)

这是解码GCLID参数的非编程方式。您可能只是想弄清楚推动点击和转化的广告系列,广告组,关键字,展示位置和广告。为此,您可以将GCLID作为单独的转化类型上传到AdWords,然后按转化类型进行细分,以深入查看触发转化的条件。这些步骤:

  1. 在AdWords用户界面中,转到工具 - >转化 - >使用来源添加转化"从点击中导入"
  2. 访问有关导入转化次数https://support.google.com/adwords/answer/7014069的AdWords帮助主题,并使用您的GCLID值创建批量加载文件,为您转换新的转化次数"从点击次数导入"转换类型
  3. 在工具中将转化上传到AdWords - >转化 - >左侧导航中的转换操作(上传)
  4. 转到广告系列标签,细分 - >转化 - >转化名称
  5. 在细分列表中找到您的新转化名称,这是转化的来源。在广告组和关键字标签上继续执行相同的过程,直到您知道GCLID原始标准

答案 10 :(得分:-1)

我同意奥菲尔和克里斯的观点。我的感觉是它纯粹是一个序列号/唯一的点击ID,只有当Google Analytics和Adwords系统在幕后互相交流时才会揭开它的秘密。

了解这一点,我建议您查看引荐网址并尽可能多地从中提取,以便在后端点击跟踪设置中使用。

例如,我住在新西兰,正在使用Firefox。这是从Firefox Google工具栏搜索“堆栈溢出”: http://www.google.co.nz/search?q=stack+overflow&ie=utf-8&oe=utf-8&aq=t&client=firefox-a&rlz=1R1GGLL_en-GB

你可以看到:a)即时通讯使用.NZ域名,b)我的关键字“stack + overflow”,c)我正在运行firefox。

最后,如果你还隐藏了完整的目标网页网址,你可以存储GCLID,它会告诉你访问者来自付费,而如果它没有GCLID,那么用户必须来自自然搜索(如果当然启用了URL标记)。

理论上,这可以让您在广告系列中搜索关键字,并确定它们来自哪个广告组。但是,知道广告可能是不可能的,除非您分割测试着陆网址或以某种方式标记它们。