_googWcmGet回调无法通过GTM使用动态电话号码 [英] _googWcmGet callback not working via GTM with dynamic phone number

查看:163
本文介绍了_googWcmGet回调无法通过GTM使用动态电话号码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

 < script type =text / javascript> 
//来自adwords的代码,加载_googWcmGet函数
(函数(a,e,c,f,g,b,d){var h = {ak:XXXXXXX,cl: XXXXXXXX};一个并[c] = A [C] ||函数(){(一个并[c] .Q =α[C] .Q || [])推(参数)};一个并[f] | |(一个并[f] = h.ak); b = e.createElement(克); 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)}})(窗口,文件, _ googWcmImpl, _ googWcmAk, 脚本);

//我的回调替换数字
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
返回oldNumber;

}

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

< / script>

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



为什么不调用replaceNumber?

解决方案

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



点击广告后,人们会通过您的网站发出电话...


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



编辑: @dorian下面的评论是非常有帮助我将它包括在这里以获得可见性,但也请给他一个upvote。


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



I'm trying to get Adwords Call Conversion tracking working on my site, using GTM. Everything is set up on the Adwords side (call extensions + call from website conversion) but the replace function still isn't working.

<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>

getNumber() is returning the correct phone number to replace (format: 123-456-7890), but replaceNumber is never being called. This looks pretty much exactly like the example, except that the phone number is retrieved by a function instead of provided statically.

Why isn't replaceNumber being called?

解决方案

As it turns out, the callback only runs if the visitor came from an Adwords ad, meaning you need to generate a paid click in order to test.

From the documentation, call tracking can be used to track:

"calls people make from your website after clicking your ad ..."

It's subtle, but it's there. In order to test, you need to click on your own Adwords ad. Then, save the URL (with the tags and such) so that you can use the same URL later to continue testing without generating more click fees. Possibly you don't even need to click an ad if you know what the URL is.

EDIT: The comment below from @dorian is so helpful I'm including it here for visibility, but please give him an upvote as well.

Probably a bit late, but there's an extremely helpful debugging mode which you can activate by appending #google-wcc-debug to the URL of the page where you have activated call tracking. Unfortunately this debug mode seems to be documented nowhere.

这篇关于_googWcmGet回调无法通过GTM使用动态电话号码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆