首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Javascript或jQuery插入Google Adword转换跟踪

使用Javascript或jQuery插入Google Adword转换跟踪
EN

Stack Overflow用户
提问于 2011-02-23 07:06:01
回答 8查看 65.3K关注 0票数 53

我是javascript的新手,这可能就是我的问题所在。我正在尝试跟踪发生在我们网站上的小部件中的AdWords转换。用户填写表单,小部件的结果将在相同的div中发布,而无需刷新页面。我遇到的问题是,当我尝试在谷歌代码(如下所示)中appendChild (或在jQuery中追加)两个脚本元素时,页面会被302重定向到一个空白的谷歌页面(或者至少通过FireBug看起来是这样的)。我可以为表单的结果提供一个回调方法,这就是我尝试插入AdWords跟踪代码的地方。作为参考,以下是Google提供的代码:

代码语言:javascript
复制
<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 (无论是在原始页面加载时还是在回调中)插入此代码时,我都会被重定向,所以可能回调位无关紧要,但这就是为什么我不只是将其粘贴到页面代码中的原因。

我已经尝试了许多不同的方法来做这件事,但这是我目前所做的(请原谅我的草率。现在我正试着解决这个问题!):

代码语言:javascript
复制
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文件,它仍然执行重定向。

如果与之相关,我使用的是Firefox3.6.13,并且已经在jQuery 1.3和1.5中尝试了包含的代码(在意识到我们使用的是1.3版之后)。

我知道我漏掉了什么!有什么建议吗?

EN

回答 8

Stack Overflow用户

发布于 2012-04-25 18:42:01

这个简单的代码适用于我( $.getScript版本不适用)。

代码语言:javascript
复制
var image = new Image(1,1);
image.src = 'http://www.googleadservices.com/pagead/conversion/' + id + '/?label=' + label + ' &guid=ON&script=0';
票数 14
EN

Stack Overflow用户

发布于 2013-02-01 05:54:57

//这将为jQuery解决这个问题。代码可以很容易地改编成其他javascript库:

代码语言:javascript
复制
        function googleTrackingPixel() {
            // set google variables as globals
            window.google_conversion_id = 1117861175
            window.google_conversion_language = "en"
            window.google_conversion_format = "3"
            window.google_conversion_color = "ffffff"
            window.google_conversion_label = "Ll49CJnRpgUQ9-at5QM"
            window.google_conversion_value = 0

            var oldDocWrite = document.write // save old doc write

            document.write = function(node){ // change doc write to be friendlier, temporary
                $("body").append(node)
            }

            $.getScript("http://www.googleadservices.com/pagead/conversion.js", function() {

                setTimeout(function() { // let the above script run, then replace doc.write
                    document.write = oldDocWrite
                }, 100)

            })
        }

//您可以在事件的脚本中调用它,如下所示:

代码语言:javascript
复制
$("button").click( function() {
   googleTrackingPixel()
})
票数 5
EN

Stack Overflow用户

发布于 2015-04-30 02:37:28

在您的Adwords帐户中-如果您将转换跟踪事件更改为"Click“而不是"Page Load”,它将为您提供创建函数的代码。它创建了一个如下代码片段:

代码语言:javascript
复制
<!-- Google Code for Developer Contact Form Conversion Page
In your html page, add the snippet and call
goog_report_conversion when someone clicks on the
chosen link or button. -->
<script type="text/javascript">
  /* <![CDATA[ */
  goog_snippet_vars = function() {
    var w = window;
    w.google_conversion_id = <Your ID Here>;
    w.google_conversion_label = "<Your value here if any>";
    w.google_remarketing_only = false;
  }
  // DO NOT CHANGE THE CODE BELOW.
  goog_report_conversion = function(url) {
    goog_snippet_vars();
    window.google_conversion_format = "3";
    window.google_is_call = true;
    var opt = new Object();
    opt.onload_callback = function() {
    if (typeof(url) != 'undefined') {
      window.location = url;
    }
  }
  var conv_handler = window['google_trackConversion'];
  if (typeof(conv_handler) == 'function') {
  conv_handler(opt);
  }
}
/* ]]> */
</script>
<script type="text/javascript"
  src="//www.googleadservices.com/pagead/conversion_async.js">
</script>

然后在你的代码中,你只需调用:

代码语言:javascript
复制
goog_report_conversion();

或者点击链接或图片:

代码语言:javascript
复制
<a href="" onclick="goog_report_conversion();">click here</a>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5085132

复制
相关文章

相似问题

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