这一篇介绍Alloy。
什么是Alloy
Alloy 是 Adobe Experience Platform Web SDK 的代号,服务端部署有两种方式:
我是将Alloy和Web SDK是理解为两种不同的服务端部署方式。
Alloy代码
基本代码
Adobe已经在CDN上提供了两个版本,URL结构: https://cdn1.adoberesources.net/alloy/%5B版本%5D非缩小版本的/alloy.min.js或alloy.js,具体如:
- 缩小: https://cdn1.adoberesources.net/alloy/2.14.0/alloy.min.js
- 未缩小: https://cdn1.adoberesources.net/alloy/2.14.0/alloy.js
将以下基本代码复制并粘贴到尽可能高的位置 <head>
HTML的标记:
<script> !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS|| []).push(o),n[o]=function(){var u=arguments;return new Promise( function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})} (window,["alloy"]); </script> <script src="https://cdn1.adoberesources.net/alloy/2.14.0/alloy.min.js" async></script>
基础代码创建一个名为的全局函数 alloy
. 使用此函数与SDK进行交互。
如果要将全局函数命名为其他名称,请更改 alloy
名称。
另外需要注意,Alloy是使用Promise进行异步处理,而IE是不支持Promise,需要再基础代码前添加如下代码:
<script src="https://cdn.jsdelivr.net/npm/promise-polyfill@8/dist/polyfill.min.js"></script>
配置SDK
接下来就是配置数据流,表示数据发到哪个边缘服务器:
alloy("configure", { "edgeConfigId": "ebebf826-a01f-4458-8cec-ef61de241c93", "orgId":"ADB3LETTERSANDNUMBERS@AdobeOrg" });
完整跟踪代码
基础代码可以和配置数据流代码结合起来,如:
<script> !function(n,o){o.forEach(function(o){n[o]||((n.__alloyNS=n.__alloyNS|| []).push(o),n[o]=function(){var u=arguments;return new Promise( function(i,l){n[o].q.push([i,l,u])})},n[o].q=[])})} (window,["alloy"]); </script> <script src="https://cdn1.adoberesources.net/alloy/2.14.0/alloy.min.js" async></script> <script> alloy("configure", { "edgeConfigId": "ebebf826-a01f-4458-8cec-ef61de241c93", "orgId":"ADB3LETTERSANDNUMBERS@AdobeOrg" }); </script>
结合起来的就是类似GA4的基础跟踪代码
发送数据
最后就是通过sendEvent
命令发送事件,有两种方式:
- XDM数据:AA里直接有数据
- 非XDM数据:需要通过处理规则去实现数据映射
XDM结构发送PV:
alloy("sendEvent", { "xdm": { "web": { "webPageDetails": { "URL": document.location.href, "isErrorPage": {{Error Page}}, "name": document.title, "server": "ichdata.com" } } } });
不同于GA4,PV是默认跟踪,Alloy是需要主动发送数据才会跟踪PV。
Alloy与Adobe Launch的关系
Alloy是等同于GA4里的gtag,其实就是硬编码部署,和Adobe Launch没有关系。
建议用哪种方式
个人是建议采用Web SDK,也就是采用Adobe Launch的方式。