Вставка отслеживания конверсий Google Adwords с помощью Javascript или jQuery - PullRequest
52 голосов
/ 23 февраля 2011

Я довольно новичок в javascript, и в этом, вероятно, кроется моя проблема.Я пытаюсь отслеживать конверсии AdWords, которые происходят внутри виджета на нашем сайте.Пользователь заполняет форму, и результат из виджета публикуется в том же разделе без обновления страницы.У меня возникает проблема, когда я пытаюсь добавить Child (или добавить в jQuery) оба элемента скрипта в коде Google (показано ниже), страница 302 перенаправляется на пустую страницу Google (или, по крайней мере, так выглядит через FireBug),Я могу предоставить метод обратного вызова для результатов формы, и именно здесь я пытаюсь вставить код отслеживания AdWords.Для справки, это код, предоставленный Google:

<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 993834405;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "bSpUCOP9iAIQpevy2QM";
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/993834405/?label=bSpUCOP9iAIQpevy2QM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>

Довольно стандартный материал.Итак, что я пытаюсь сделать, это вставить это на страницу результатов, используя метод обратного вызова (который предоставляется).Честно говоря, меня перенаправляют независимо от того, когда я пытаюсь вставить этот код, используя js или jQuery (либо при загрузке исходной страницы, либо при обратном вызове), поэтому, возможно, бит обратного вызова не имеет значения, но именно поэтому я не просто вставляю его вкод страницы.

Я пробовал несколько разных способов сделать это, но вот что у меня сейчас есть (извините за разгильдяйство. Просто пытаюсь взломать мой путь через это в данный момент!):

function matchResultsCallback(data){

    var scriptTag = document.createElement('script');
    scriptTag.type = "text/javascript";
    scriptTag.text = scriptTag.text + "/* <![CDATA[ */\n";
    scriptTag.text = scriptTag.text + "var google_conversion_id \= 993834405\;\n";  
    scriptTag.text = scriptTag.text + "var google_conversion_language \= \"en\"\;\n";   
    scriptTag.text = scriptTag.text + "var google_conversion_format \= \"3\"\;\n";
    scriptTag.text = scriptTag.text + "var google_conversion_color \= \"ffffff\"\;\n";
    scriptTag.text = scriptTag.text + "var google_conversion_label \= \"bSpUCOP9iAIQpevy2QM\"\;\n";
    scriptTag.text = scriptTag.text + "/* ]]> */\n";
    $('body').append(scriptTag);

    $('body').append("<script type\=\"text\/javascript\" src\=\"http://www.googleadservices.com/pagead/conversion.js\" />");
    //I have also tried this bit above using the same method as 'scriptTag' with no luck, this is just the most recent iteration.

    var scriptTag2 = document.createElement('noscript');
    var imgTag = document.createElement('img');
    imgTag.height = 1;
    imgTag.width = 1;
    imgTag.border = 0;
    imgTag.src = "http://www.googleadservices.com/pagead/conversion/993834405/?label=bSpUCOP9iAIQpevy2QM&amp;guid=ON&amp;script=0";

    $('body').append(scriptTag2);
    $('noscript').append(imgTag);
}

Действительно странно то, что когда я вставляю только один из тегов скрипта (не имеет значения, какой), он не перенаправляется.Он только перенаправляет, когда я пытаюсь вставить их оба.

Я также попытался вставить первый тег сценария в исходный код страницы (поскольку он нигде не делает никаких вызовов, он просто устанавливает переменные) и просто вставляетфайл conversions.js, и он все еще выполняет перенаправление.

Если это уместно, я использую Firefox 3.6.13 и пробовал включенный код как с jQuery 1.3, так и с 1.5 (после того, как понял, что мы использовали v1.3).

Я знаю, что что-то упустил!Какие-либо предложения?

Ответы [ 12 ]

0 голосов
/ 25 ноября 2015

Для тех, кто все еще ищет хорошее решение для этого, Google теперь поддерживает нативные преобразования AJAX через API Google Analytics.

Вы можете сделать это, сделав вызов API событий в GoogleАналитика.Вы настраиваете событие Google Analytics, привязываете его к цели и затем импортируете эту цель в AdWords в качестве конверсии.Это немного длительный процесс, но это чистое решение.

Проверьте Эта страница для учебника

0 голосов
/ 12 января 2013

Все, что я делаю, это возвращаю код (или, в нашем случае, изображение) вместе с сообщением «об успехе» в обратном вызове.

Когда отправляется контактная форма или заполняется регистрационная форма иотправлено, мы публикуем скрипт php с помощью jQuery, затем выводим сообщение "Спасибо" в div:

"$first_name, Спасибо за запрос дополнительной информации. Представительсвяжемся с вами в ближайшее время. "

... и 1x1 gif, предоставляемый Google.

Вот jQuery:

$.post('script.php',{'first_name':first_name,'last_name':last_name,'email':email,'phone1':phone1,'password':password,},function(data){
var result=data.split("|");
if(result[0] ==='success'){
$('#return').html(result[1] + $result[2]);

И php...

echo 'success|'.$first_name.', Thanks for requesting more information.
A representative will contact you shortly.|<img height="1" width="1" alt="" src="http://www.googleadservices.com/pagead/conversion/xxxxxxxx/imp.gif?value=0&amp;label=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&amp;script=0"/>';

Возможно, вам понадобится добавить "document.location.reload();", если он не обнаружен Google

...