ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-Google AdWords转换服务问题-异步转换代码

2019-10-11 16:30:52  阅读:531  来源: 互联网

标签:javascript php jquery google-adwords


我从未在网站上实施过Google Adwords,因此如果我对“ lingo”不正​​确,请随时进行纠正.

我正在一个拥有其Google AdWord广告系列之一的目标网页的网站上工作.在此页面上,有一个表格,该表格在处理后会带您到另一页,说“谢谢您的请求…”.我已删除它并用PHPJavascript重写了它,以防止页面刷新或重定向.

我的问题是,在“谢谢”页面上,Google代码略有不同,并且在页面加载时执行.我的问题是,如何在不重新加载页面的情况下用不同的变量重新执行转换代码?是否有Google脚本?

会删除脚本标记,然后再次放置它来重新执行脚本吗?

这是我当前拥有的代码(在提交表单之前):

<!-- Google Code for Company Remarketing List Remarketing List -->
<script type="text/javascript">
    /* <![CDATA[ */
    var google_conversion_id = 000000;
    var google_conversion_language = "en";
    var google_conversion_format = "3";
    var google_conversion_color = "ffffff";
    var google_conversion_label = "abcdefg";
    var google_conversion_value = 0;
    /* ]]> */
</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/000000/?label=abcdefg&amp;guid=ON&amp;script=0"/>
    </div>
</noscript>

提交表单后需要更改的内容是:

var google_conversion_id = 111111;
var google_conversion_label = "gfedcba";
"http://www.googleadservices.com/pagead/conversion/gfedcba/?label=111111&amp;guid=ON&amp;script=0

更改变量很容易!困难的部分是让脚本使用新变量重新执行.

任何帮助,不胜感激!

UPDATE

here发布的答案可能解决了这个问题,但是,我想知道如何使用该答案中提到的变量提交其他变量.它们很容易说明,但我不能确定它们是正确的!

此外,有人知道我可以在Google上的实际位置看到相关说明吗?

解决方法:

正如您可能已经注意到的那样,您不能仅仅重新执行该脚本的原因是它使用了document.write,在加载文档后不应调用该脚本.

如您所提到的,一种可能的解决方案是自行触发GIF请求.如果您确实要重新执行脚本,则可以重定向document.write.

这是如何完成此操作的一般思路-该片段将放在将新内容重新加载到页面中的某个位置.假定您使用jQuery,并且已经将新页面内容加载到$newContent中,并使用class =“ ajax-exec”标记了重新加载时需要执行的所有脚本标签.它的作用是直接执行内联脚本,并将jQuery的$.ajax函数与dataType:脚本一起使用.然后等待所有外部脚本执行完毕,然后将重定向的输出追加到隐藏的div中.

这对我们有效,但不提供保修(:

// Execute js from the new content (e.g. AdWords conversions tags).
// We redirect document.write to a string buffer as we're already
// done loading the page at this point.
var buf = '';
var writeMethSave = document.write;
$('div#lazyload-buf').remove();
var done = {};

document.write = function (string) {
        buf += string;
};

$newContent.filter('script.ajax-exec').each(function () {
    var url = $(this).attr('src');
    if (url) {
        // External script.
        done[url] = false;
        $.ajax({
            url: url,
            dataType: "script",
            success: function () {
                done[url] = true;
            }
        });
    } else {
        // Inline script.
        $.globalEval($(this).html());
    }
});

function checkForDone () {
    for (var url in done) {
        if (!done[url]) {
            setTimeout(checkForDone, 25);
            return;
        }
    }
    // All done, restore method and write output to div
    document.write = writeMethSave;
    var $container = $(document.createElement("div"));
    $container.attr('id', 'lazyload-buf');
    $container.hide();
    $(document.body).append($container);  
    $container.html(buf);
};

setTimeout(checkForDone, 25);

标签:javascript,php,jquery,google-adwords
来源: https://codeday.me/bug/20191011/1894145.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有