如何通过传递给函数的转换标签触发Google Adwords转换功能

时间:2016-08-09 18:25:35

标签: ajax google-adwords

我环顾四周,并没有看到有关此事的近期帖子。大多数人都年纪大了(3-6岁)

对于上下文,我是开发者和SEO公司共享转换片段的一堆形式都是ajax。所以我必须在点击时转换转换并将转换标签传递给函数,而不是在不同的页面上使用不同的片段。

现在我正在调用我的函数:

triggerConversion([MYCONVERSIONID], [UNIQUECONVERSIONLABEL]);

然后我有一个功能:

function triggerConversion(conversionID, conversionLabel){
    console.log(conversionLabel);
    goog_snippet_vars = function() {
        var w = window;
        w.google_conversion_id = conversionID;
        w.google_conversion_label = conversionLabel;
        w.google_remarketing_only = false;
    }
    // DO NOT CHANGE THE CODE BELOW.
    goog_report_conversion = function(url) {
        goog_snippet_vars();    
        window.google_conversion_format = "3";
        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);
        }
    }
}

这不按计划进行。 to参数工作正常,但未触发转换。

似乎有两个问题:

  1. 使用Google Tag Assistant(谷歌提供的Chrome扩展程序),似乎这个功能在加载时触发(它不应该是)。 Tag Assistant在页面加载时显示ID错误且标签丢失。两者都只是功能参数,所以当然它在负载上是畸形的。

  2. 只应通过调用该函数来触发。这应该只能以编程方式进行,在这种情况下成功进行ajax调用。

  3. 不确定如何继续。但是在一天结束时,我只想在ajax成功返回时才提交此转换。我还需要将id和label成功传递给函数。

    非常感谢提前。

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试使用Google Adwords转换脚本的异步版本。首先,确保您正在加载正确的脚本(理想情况下在文档的head中):

<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion_async.js" charset="utf-8"></script>

其次,您不需要在窗口对象上设置转换变量。使用异步脚本时,您可以直接使用适当的参数调用google_trackConversion。所以你的功能看起来像这样:

function triggerConversion(conversionID, conversionLabel){
    console.log(conversionLabel);
    var conv_handler = window['google_trackConversion'];
    if (typeof(conv_handler) == 'function') {
        conv_handler({
            google_conversion_id: conversionID,
            google_conversion_label: conversionLabel,
            google_remarketing_only: false
        });
    }
}