我正在尝试将 UTM 参数传递给 Intercom 以跟踪与我们聊天的用户以及他们来自哪里。
Intercom 建议捕获该信息并使用 jQuery cookie 插件进行设置。这是文档。
我正在使用最新版本的 Cookie 并更新了 Intercom 提供的代码。
<script type="text/javascript" src=".../js/js.cookie.js"></script>
<script type="text/javascript">
function getURLParam(name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(window.location.search) || [null, ''])[1].replace(/\+/g, '%20')) || null;
}
jQuery(document).ready(function($) {
if(getURLParam('utm_source') !== null) {
Cookies.set('utm_source', getURLParam('utm_source'), {
expires: 365,
path: '/',
domain: window.location.hostname,
secure: true
});
}
if(getURLParam('utm_campaign') !== null) {
Cookies.set('utm_campaign', getURLParam('utm_campaign'), {
expires: 365,
path: '/',
domain: window.location.hostname,
secure: true
});
}
if(getURLParam('utm_medium') !== null) {
Cookies.set('utm_medium', getURLParam('utm_medium'), {
expires: 365,
path: '/',
domain: window.location.hostname,
secure: true
});
}
});
</script>
我知道这可以正常工作,因为使用 Chrome 开发人员工具中的 Javascript 控制台,我可以调用
Cookies.get('utm_source')
如果 URL 包含特定的 UTM 参数,则获取实际值。
但由于某种原因,这并没有传递给对讲机,用于传递该信息的代码(位于页脚中)如下所示:
<script>
window.intercomSettings = {
app_id: "zto7cy6x",
"utm_source": Cookies.get('utm_source'),
"utm_medium": Cookies.get('utm_medium'),
"utm_campaign": Cookies.get('utm_campaign')
};
</script>
我究竟做错了什么?