[英]Google AdWords Conversion Services Issue - Asynchronous Conversion Code
我从未在网站上实施过 Google Adwords,所以如果我对“术语”的理解有误,请随时纠正我。
我在一个网站上工作,该网站有一个 Google AdWord 广告系列的着陆页。 在此页面上有一个表格,处理后会将您带到另一个页面以说“感谢您的请求...”。 我已将其删除并在 PHP 和 Javascript 中重写,以防止页面刷新或重定向。
我遇到的问题是,在“谢谢”页面上,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&guid=ON&script=0"/>
</div>
</noscript>
表单提交后需要更改的东西是:
var google_conversion_id = 111111;
var google_conversion_label = "gfedcba";
"http://www.googleadservices.com/pagead/conversion/gfedcba/?label=111111&guid=ON&script=0
更改变量很容易。 困难的部分是让脚本使用新变量重新执行。
非常感谢任何帮助!
更新
此处发布的答案可能解决了这个问题,但是,我想知道如何使用该答案中提到的变量提交其他变量。 他们很容易解释,但我不能确定他们是对的!
此外,有谁知道我在谷歌上的什么地方可以看到这方面的说明?
您不能重新执行脚本的原因是(您可能已经注意到)是它使用了document.write
,不应在文档加载后调用它。
正如您提到的,一种可能的解决方案是自己触发 GIF 请求。 如果您真的想重新执行脚本,可以重定向document.write
。
以下是如何完成此操作的一般思路 — 该片段将放置在您将新内容重新加载到页面的某个位置。 它假定您使用 jQuery 并且已经将新页面内容加载到$newContent
中,并且已经用class="ajax-exec"
标记了所有需要在重新加载时执行的脚本标签。 它所做的是直接执行内联脚本并使用 jQuery 的$.ajax
function 和dataType: script
。 然后它会等到所有外部脚本都已执行并将重定向的 output 附加到隐藏的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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.