0

我需要从一个页面向 google 注册多个转换。在 Chrome 和 Firefox 中,这可以正常工作。在 IE 中,页面/调用似乎被缓存,随后只发送了一次转换。

我尝试添加无缓存元标记,但这不起作用。

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

我还尝试为每次转换调用完全独立的页面,以规避缓存问题。这也没有奏效。

这是调用的转换页面。它被加载到 iframe 中。

<head>

<script type="text/javascript">


    var google_conversion_id = 1070072355;
    var google_conversion_language = "en";
    var google_conversion_format = "3";
    var google_conversion_color = "ffffff";
    var google_conversion_value = 0;
    var google_conversion_label;
    var googleConversionType = 1; //default to 1

    //check if we need to to GCR
    var GCR = QueryStringGet("G");
    if (GCR && GCR != "" && GCR != 0) {
        googleConversionType = GCR;
    }

    /*
    CONVERSION TYPES:
    1- Single Lead: V-v8CMnc_gEQo4Sg_gM
    2- Multiple Leads: oHF7CLHf_gEQo4Sg_gM
    3 - Campaign Single: CmYQCMHd_gEQo4Sg_gM
    4 - Consultation: aSv7CLne_gEQo4Sg_gM
    */
    //set the label per conversion type
    if (googleConversionType == 1) {
        google_conversion_label = "V-v8CMnc_gEQo4Sg_gM";
    }
    else if (googleConversionType == 2) {
        google_conversion_label = "oHF7CLHf_gEQo4Sg_gM";
    }
    else if (googleConversionType == 3) {
        google_conversion_label = "CmYQCMHd_gEQo4Sg_gM";
    }
    else if (googleConversionType == 4) {
        google_conversion_label = "aSv7CLne_gEQo4Sg_gM";
    }

    //retrieves a value from the querystring
    function QueryStringGet(ji) {
        hu = window.location.search.substring(1);
        gy = hu.split("&");
        for (i = 0; i < gy.length; i++) {
            ft = gy[i].split("=");
            if (ft[0] == ji) {
                return ft[1];
            }
        }
    }
    </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/1070072355/?label=V-v8CMnc_gEQo4Sg_gM&amp;guid=ON&amp;script=0"/>
    </div>
    </noscript>

    <title></title>
</head>

这是将页面加载到 iframe 中的代码

function GoogleConversionRegister(pageNum) {

    if (!pageNum || pageNum == 0)
        pageNum = 1;

    var iframe = document.createElement('iframe');
    iframe.style.width = '0px';
    iframe.style.height = '0px';
    document.body.appendChild(iframe);
    iframe.src = 'http://www.nirshamim.co.il/google/conversion_' + pageNum + '.html?G=' + googleConversionType + '&tile=' + (Math.random() * 100000);}

以下是 Fiddler 的结果:
Chrome
IE

4

1 回答 1

0

为了绕过 IE 的缓存机制,我被迫使用所需的 javascript 手动填充 iframe(而不是加载外部页面)。

编码:

var iframe;
if (document.createElement && (iframe = document.createElement('iframe'))) {
    iframe.name = iframe.id = 'conversion_' + pageNum;
    iframe.width = 0;
    iframe.height = 0;
    document.body.appendChild(iframe);
}
if (iframe) {
        var iframeDoc;
        if (iframe.contentDocument) {
            iframeDoc = iframe.contentDocument;
        }
        else if (iframe.contentWindow) {
            iframeDoc = iframe.contentWindow.document;
        }
        else if (window.frames[iframe.name]) {
            iframeDoc = window.frames[iframe.name].document;
        }
        if (iframeDoc) {
            iframeDoc.open();
            iframeDoc.write('<html><body><script language=javascript>var google_conversion_id = XXXXX; var google_conversion_language = "en"; var google_conversion_format = "3"; var google_conversion_color = "ffffff"; var google_conversion_value = 0; var google_conversion_label = "XXXX";</script><script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js"></script></body></html>');
            iframeDoc.close();
        }
    }
于 2011-05-30T08:17:00.673 回答