4

我正在开发一个单页应用程序,每次页面加载可能会触发超过 1 次转换。

我需要触发谷歌转换片段,所以我假设我可以在运行时将其放入。该片段看起来像这样:

<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 中,当添加第二个 script 标签时,整个 body 标签的内容将替换为 google iFrame。事实上,整个 dom 都是核弹。头部的内容也被清除了。

那个谷歌脚本到底发生了什么,我如何插入它而不让一切都爆炸?!?

更新:

看起来出于某种原因,safari 不喜欢我添加脚本的方式。为了解决这个问题,我bucket.innerHTML = ''在该行下方添加了debugger它,它在 Safari 中运行良好。不幸的是,这导致 FF 3.6 做 safari 之前所做的事情并核对 DOM。

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

我目前的方法是使用 htaccess 和一个小字符串解析来生成一个页面,其中只有转换片段,然后 iFrame 将其放入。我将对此进行报告。

4

1 回答 1

3

也许通过 iFrame 插入 Google Ads 可能更容易?

比如像这样:

<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>

Google 仍会知道并跟踪父页面。

于 2011-06-17T01:42:17.100 回答