如何使用动态值构建amp-analytics json iframeMessage?

时间:2018-02-15 07:42:00

标签: json amp-html adobe-analytics amp-analytics

我正在尝试将adobe分析整合到放大器页面中。但是我希望传递的参数,我想让它们使用ajax调用动态获取。 我正在使用放大器列表获取值。 ajax响应有点像下面这样:

{
  "items": [
    {
      "user_type": "site_user",
      "user_id": "anonymous"
    }
  ]
}

在amp-analytics部分中,我尝试使用花括号语法读取user_type和user_id的动态值。我的代码片段如下所示:

<amp-analytics type="adobeanalytics_nativeConfig">
    <script type="application/json">
    {
        "requests": {
            "base": "${base}",
            "iframeMessage": "${base}/stats.html?user_type={{user_type}}&user_id={{user_id}}"
        },
        "vars": {
            "host": "${host}"
        }
    }
    </script>
</amp-analytics>

但是,不是获取stats.html iframe请求中的值,而是使用花括号本身的相同语法将获取传递作为查询参数中的值。当放大器分析标签在放大器列表块之外定义时,这就是我得到的结果。 当我将整个放大器分析块放在amp-list块中时,我没有看到stats.html调用被触发。在浏览器控制台中,我收到以下错误:

  

未定义请求字符串。不会从此发送Google Analytics数据   页。忽略事件。找不到请求字符串:iframeMessage

basehost都是jstl变量,它们将被替换为正确的值。

任何人都可以帮助传递动态值以构建json iframe吗?

1 个答案:

答案 0 :(得分:0)

对于Adobe Analytics AMP HTML集成,请使用下面的代码片段将<Swiper key={item.length} style={styles.slide1} loadMinimal={true} // only loads the current page + [loadMinimalSize] amount of pages before and after loadMinimalSize={0} loadMinimalLoader={() => ( <View> <Text>Loading</Text> </View> )} // optional loader to show while page loads > {swiperItems} </Swiper> user_id变量传递到user_type页面;

stats.html

插值的<amp-analytics type="adobeanalytics_nativeConfig"> <script type="application/json"> { "requests": { "base": "https://${host}", "iframeMessage": "${base}/stats.html?user_id=${user_id}&user_type=${user_type}" }, "vars": { "host": "analytics.example.com", "user_id": "anonymous", "user_type": "site_user" } } </script> </amp-analytics> 变量将解析为您定义的${base}变量的基数。

host变量必须定义为除用于AMP HTML页面的域名以外的其他域名;这就是您必须托管host页的地方(如摘要中所共享,stats.html位于stats.html分析域名的根目录下。)

您的自定义变量就像您的analytics.example.com变量一样,也需要像上面的host对象下一样进行定义。