Обратный вызов _googWcmGet не работает через GTM с динамическим номером телефона

Я пытаюсь настроить отслеживание конверсий звонков Adwords на своем сайте с помощью GTM. На стороне 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>

getNumber() возвращает правильный номер телефона для замены (формат: 123-456-7890), но replaceNumber никогда не вызывается. Это выглядит почти так же, как в примере, за исключением того, что номер телефона извлекается функцией, а не предоставляется статически.

Почему не вызывается replaceNumber?


person mz3    schedule 22.12.2014    source источник
comment
Одной из проблем может быть обработчик события onload — на самом деле он вам не нужен, так как вы можете указать GTM запускать скрипт при загрузке страницы.   -  person Eike Pierstorff    schedule 22.12.2014
comment
Это была и моя первоначальная мысль. Однако _googWcmGet( replaceNumber, getNumber() ); определенно срабатывает, потому что все, что я помещаю в getNumber, выполняется. Это то, что ты имеешь в виду?   -  person mz3    schedule 22.12.2014


Ответы (1)


Как оказалось, обратный вызов запускается только в том случае, если посетитель пришел с объявления Adwords, а это означает, что вам нужно сгенерировать платный клик, чтобы протестировать.

Из документации коллтрекинг можно использовать для отслеживания:

"звонки, которые люди совершают с вашего веб-сайта после нажатия на ваше объявление..."

Он тонкий, но он есть. Чтобы протестировать, вам нужно нажать на собственное объявление Adwords. Затем сохраните URL-адрес (с тегами и т. д.), чтобы вы могли использовать тот же URL-адрес позже для продолжения тестирования без дополнительных сборов за клики. Возможно, вам даже не нужно нажимать на объявление, если вы знаете, что такое URL.

РЕДАКТИРОВАТЬ: Комментарий ниже от @dorian настолько полезен, что я включаю его сюда для наглядности, но, пожалуйста, также проголосуйте за него.

Вероятно, немного поздно, но есть чрезвычайно полезный режим отладки, который вы можете активировать, добавив #google-wcc-debug к URL-адресу страницы, на которой вы активировали отслеживание вызовов. К сожалению, этот режим отладки нигде не задокументирован.

person mz3    schedule 07.01.2015
comment
Вероятно, немного поздно, но есть чрезвычайно полезный режим отладки, который вы можете активировать, добавив #google-wcc-debug к URL-адресу страницы, на которой вы активировали отслеживание вызовов. К сожалению, этот режим отладки нигде не задокументирован. - person dorian; 28.01.2016
comment
Это очень полезно. Как вам удалось наткнуться на это? - person mz3; 29.01.2016
comment
У нас также были некоторые проблемы с реализацией отслеживания вызовов. Когда больше ничего не помогло, я исследовал скрипт, который загружается фрагментом. Если вы посмотрите на http://www.gstatic.com/wcm/impl-1_22.js, вы найдете его. - person dorian; 31.01.2016
comment
@dorian ты мой герой! - person Maxamilian Demian; 16.05.2016
comment
@dorian Никогда не поздно. Вы облегчили мне жизнь этим комментарием, и это почти год спустя. #google-wcc-debug-навсегда - person armadadrive; 21.01.2017
comment
@dorian Спасибо. Прошло много времени с тех пор, как этот вопрос / ответ был обновлен, но ваши комментарии были очень полезны. В основном я пытался выяснить, почему URL-адрес https://www.gstatic.com/wcm/impl-1_22.js всегда дает ошибку 404 на веб-сайте, и именно так я попал на эту страницу. Кажется, теперь URL-адрес этого скрипта изменился на https://www.gstatic.com/wcm/impl-1_31.js, но все остальное (включая метод отладки с добавлением #google-wcc-debug) остается прежним. - person Prayag Verma; 27.03.2019