_googWcmGet回调无法通过GTM使用动态电话号码

mz3*_*mz3 7 javascript google-adwords google-tag-manager conversion-tracking

我正在尝试使用GTM在我的网站上运行Adwords呼叫转换跟踪.所有内容都设置在Adwords端(呼叫分机+来自网站转换的呼叫),但替换功能仍然无效.

<script type="text/javascript">
// the code from adwords, loads the _googWcmGet function
(function(a,e,c,f,g,b,d){var h={ak:"XXXXXXX",cl:"XXXXXXXX"};a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[f]||(a[f]=h.ak);b=e.createElement(g);b.async=1;b.src="//www.gstatic.com/wcm/loader.js";d=e.getElementsByTagName(g)[0];d.parentNode.insertBefore(b,d);a._googWcmGet=function(b,d,e){a[c](2,b,h,d,null,new Date,e)}})(window,document,"_googWcmImpl","_googWcmAk","script");

// my callback to replace the number
var replaceNumber = function (formatted_number, unformatted_number) {
  console.log("replaceNumber() called");
}

var getNumber = function () {
  var links = document.getElementsByTagName("a");
  var oldNumber = null;

  for(var i=0; i<links.length; i++) {
    if( links[i].href.indexOf("tel") > -1 ) {
       var el = links[i];
       var oldNumber = el.innerHTML.split("<")[0];
    }
  }
  // console.log(oldNumber);  -> 123-456-7890
  return oldNumber;

}

window.onload = function() {
  _googWcmGet( replaceNumber, getNumber() );
};

</script>
Run Code Online (Sandbox Code Playgroud)

getNumber()返回要更换的正确电话号码(格式:123-456-7890),但从不调用replaceNumber.这看起来非常类似于示例,除了电话号码是由函数检索而不是静态提供的.

为什么不调用replaceNumber?

mz3*_*mz3 11

事实证明,只有当访问者来自Adwords广告时才会运行回调,这意味着您需要生成付费点击才能进行测试.

从文档中,可以使用呼叫跟踪来跟踪:

"点击广告后,人们会通过您的网站拨打电话..."

这很微妙,但它就在那里.要进行测试,您需要点击自己的Adwords广告.然后,保存URL(带有标签等),以便稍后可以使用相同的URL继续测试,而不会产生更多的点击费用.如果您知道URL是什么,您甚至不需要点击广告.

编辑: @dorian下面的评论是如此有用我在这里包括它的可见性,但请给他一个upvote.

可能有点晚了,但是有一个非常有用的调试模式,您可以通过将#google-wcc-debug附加到已激活呼叫跟踪的页面的URL来激活.不幸的是,这种调试模式似乎无处可见.

  • 可能有点晚了,但是有一个非常有用的调试模式,您可以通过将`#google-wcc-debug`附加到您已激活呼叫跟踪的页面的URL来激活.不幸的是,这种调试模式似乎无处可见. (20认同)