2

Google Adwords をサイトに実装したことがないので、「専門用語」が間違っている場合は、お気軽に訂正してください。

Google AdWord キャンペーンの 1 つのランディング ページを持つサイトで作業しています。このページにはフォームがあり、処理されると別のページに移動して「リクエストありがとうございます...」と伝えます。これを削除し、PHP と Javascript で書き直して、ページが更新またはリダイレクトされないようにしました。

私が抱えている問題は、「ありがとう」ページでは、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

変数の変更は簡単です!難しいのは、スクリプトを新しい変数で再実行することです。

どんな助けでも大歓迎です!

アップデート

ここに投稿された回答はおそらくこの質問を解決しますが、この回答で言及された変数を使用して他の変数を送信する方法を知りたいです。彼らはかなり自明ですが、私は彼らが正しいかどうか確信が持てません!

さらに、Google で実際にこの手順を確認できる場所を知っている人はいますか?

4

1 に答える 1

1

お気づきかもしれませんが、スクリプトを再実行できない理由はdocument.write、ドキュメントが既に読み込まれた後に呼び出されるべきではない を使用しているためです。

あなたが言及したように、考えられる解決策の1つは、GIFリクエストを自分で起動することです。本当にスクリプトを再実行したい場合は、リダイレクトする可能性がありdocument.writeます。

これを行う方法の一般的な考え方は次のとおりです。このフラグメントは、新しいコンテンツをページにリロードする場所に配置されます。jQuery を使用していて、新しいページ コンテンツを にすでにロードしており$newContent、リロード時に実行する必要があるすべてのスクリプト タグを でマークしていることを前提としていますclass="ajax-exec"。インライン スクリプトを直接実行し、jQuery の$.ajax関数を で使用しdataType: scriptます。次に、すべての外部スクリプトが実行されるまで待機し、リダイレクトされた出力を hidden に追加します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);
于 2012-07-24T14:27:36.543 に答える