在Safari浏览器中,Google AdWords转化跟踪的动态插入增加了。

4

我正在开发一个单页面应用程序,可能会在每个页面加载时触发多个转化。

我需要触发google转化片段,因此我假设可以在运行时将其添加。该片段大致如下:

<script type="text/javascript">
        /* <![CDATA[ */
        var google_conversion_id = XXXXXXXX;
        var google_conversion_language = "en";
        var google_conversion_format = "2";
        var google_conversion_color = "ffffff";
        var google_conversion_label = "XXXXXXXXXXXXXXX";
        var google_conversion_value = 25.00;
        /* ]]> */
        </script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
        </script>

我一直在使用JavaScript插入片段,当转化发生时。我是这样做的:

function(id,url,content){
        // add script
        var script   = document.createElement("script");
        script.type  = "text/javascript";
        if(url) script.src   = url;
        if(content) script.text = content;
        var bucket = document.getElementById(id);
        bucket.appendChild(script);

        debugger;

    }

我已经在所有我尝试过的浏览器中测试过,但在Safari中无法正常工作。

在Safari中,当添加第二个脚本标签时,整个body标签的内容都被Google iFrame替换了。实际上,整个DOM都被摧毁了。head的内容也被清空了。

到底是什么原因导致Google脚本出现这种情况?如何避免一切都崩溃?

更新:

看起来Safari不喜欢我添加脚本的方式。为了解决这个问题,在debugger行下面添加了bucket.innerHTML = '',这样就可以在Safari中正常工作了。不幸的是,这会导致Firefox 3.6出现之前Safari出现的问题,即摧毁DOM。

更复杂的是,似乎AdWords拒绝了这些转化或其他什么东西,当它们注入到页面时,在报告端不会显示。

我的当前方法是使用htaccess和一些字符串解析生成一个只包含转化片段的页面,并将其嵌入到iFrame中。我会在后续报告。


1
请问您能否更新一个可行的解决方案?您最终修复了吗? 谢谢。 - user1179383
1个回答

3
也许通过iFrame插入Google广告会更容易一些?
像这样:
<iframe src="/documents/adsense.htm" width="728px" height="90px" frameborder="0" marginwidth ="0px" marginheight="0px" scrolling="no"></iframe>

iFrame 包含:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Google Adsense</title>
<base target="_parent">
</head>
<body>
<!--insert Google Adsense Code Here-->
</body>
</html>

谷歌仍然会知道并跟踪父页面。

虽然这并没有真正解决问题,但它接近我最终使用的解决方案。我仍在努力解决它,但我已经更新了我的答案和过程。 - Jesse
请注意,这样做绝对违反了您在注册AdSense时同意的服务条款。https://support.google.com/adsense/answer/48182?utm_source=aso&utm_medium=link&utm_campaign=ww-ww-et-asfe_ - Kevin B

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接