首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将UTM参数传递给内部通信

将UTM参数传递给内部通信
EN

Stack Overflow用户
提问于 2017-08-15 06:57:16
回答 1查看 1.6K关注 0票数 1

我正在尝试将UTM参数传递给对讲机,以跟踪与我们聊天的用户以及他们来自哪里。

Intercom建议捕获该信息并使用jQuery cookies插件对其进行设置。Here is the documentation

我使用的是Cookie的最新版本,并更新了内部通信提供的代码。

代码语言:javascript
复制
<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控制台,我可以调用

代码语言:javascript
复制
Cookies.get('utm_source')

如果URL包含该特定的UTM参数,则获取实际值。

但由于某些原因,这不会传递到内部通信,用于传递该信息的代码(位于页脚)如下所示:

代码语言:javascript
复制
<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>

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2017-08-30 06:29:18

您是否有遵循设置的内部通信脚本?仅仅定义window.intercomSettings变量是不够的。您还必须具有将这些设置发送到内部通信的内部通信脚本。

代码语言:javascript
复制
<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>
<script>(function(){var w=window;var ic=w.Intercom;if(typeof ic==="function"){ic('reattach_activator');ic('update',intercomSettings);}else{var d=document;var i=function(){i.c(arguments)};i.q=[];i.c=function(args){i.q.push(args)};w.Intercom=i;function l(){var s=d.createElement('script');s.type='text/javascript';s.async=true;s.src='https://widget.intercom.io/widget/wprz7ktj';var x=d.getElementsByTagName('script')[0];x.parentNode.insertBefore(s,x);}if(w.attachEvent){w.attachEvent('onload',l);}else{w.addEventListener('load',l,false);}}})()</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45684216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档