【问题标题】:Is there a way to encrypt/decrypt or obfuscate/deobfuscate data passed to Google Tag Manager?有没有办法加密/解密或混淆/去混淆传递给 Google 跟踪代码管理器的数据?
【发布时间】:2018-12-19 14:06:00
【问题描述】:

Google 跟踪代码管理器是否有可能对通过dataLayer 发送的加密信息(或至少混淆/去混淆以使其不可读)进行解密?

我想加密某些信息 - 例如欧元数字或页面 Javascript 中的唯一标识符,然后在将值发送到 Google Analytics 之前在 Google 跟踪代码管理器中解密这些信息。

我正在页面本身寻找类似以下内容:

window.dataLayer.push({
    encryptedValue: encrypt(value, password)      
})

在 Google 跟踪代码管理器中创建加密值(例如使用自定义 JavaScript):

decryptedValue = decryption_function(encryptedValue, password)

【问题讨论】:

  • 问题是,GTM 是 JS,所以你有的任何解密算法也会暴露给客户端,所以有人看你的 GTM 代码就知道了。
  • 是的,这是一个公平的观点。所以“加密”在这里可能不是正确的术语 - 也许混淆描述了我正在寻找的更多内容。

标签: google-analytics google-tag-manager


【解决方案1】:

在这种情况下,您要做的是创建两个变量。 GTM 中的数据层变量和自定义 Javascript 变量。

数据层变量 这将是您的“加密”值的存储位置。在此示例中,我将数据层命名为“myEncVar”,在 GTM 中将其命名为“EncVar”(只是为了让事情变得混乱),您可以通过datalayer.push({myEncVar: [value]}); 将其发送到数据层

自定义 javascript 变量 这个变量将是您存储“解密”算法的地方。本质上,由于您已经通过数据层在 GTM 变量中捕获了加密值,现在您可以在自定义 javascript 中引用它。设置将是这样的:

“decVar”中的值将是您要用于“解密”值的值。

【讨论】:

  • 还注意到您想传递一个“密码”值,如果该密码值对于所有值都是常量/相同,那么您可以将其存储在 GTM 中的自定义 javascript 变量中,否则,您可以创建另一个接受密码的数据层变量。请注意,如果您使用数据层路由,则必须确保在下一次数据层推送之前使用值/密码,否则可能会不匹配/覆盖。
【解决方案2】:

无论您称其为加密还是混淆,有人需要解密或去混淆的所有内容都在 GTM 代码中。所以这可能会阻止某人随便看看,但每个有五分钟空闲时间的人仍然会得到信息。这对你来说可能已经足够了。

如果没有,您可能会改为考虑数据导入。您存储的不是加密值,而是可以与数据导入文件中的相应密钥匹配的匿名密钥字段。请注意,在免费分析版本中,您需要先上传数据,然后才能将命中数据与之匹配,因此如果值快速变化,可能对您不起作用(使用 GA360,您可以导入以便追溯应用导入)。

【讨论】:

  • 我猜Google Analytics,例如,不包含解密任何东西的功能?这将解决解密算法可见的问题。
  • 不方便,不。我几乎可以肯定你可以用高级过滤器和正则表达式解码一个简单的替换密码,但这需要几十个过滤器,当然,替换密码一开始并不安全。
猜你喜欢
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2013-04-29
  • 2014-05-21
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 2019-03-30
相关资源
最近更新 更多