2012-04-05 6 views
2

私は「専門用語」と間違っていますので、もし、私を修正すること自由に感じなさい、サイトにGoogleアドワーズ広告を実施したことがありません。GoogleのAdWordsのコンバージョンサービス問題 - 非同期変換コード

私は自分のGoogleアドワーズキャンペーンの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 

変数を変更

このは(フォーム送信前に)私は現在持っているコードです。は簡単だ!難しい部分は、新しい変数でスクリプトを再実行するようになっています。

すべてのヘルプははるかに高く評価します! hereを投稿

答えは、おそらくこの質問を解決

UPDATEは、しかし、私はこの回答で言及された変数と他の変数を提出することができますどのように知っていただきたいと思います。彼らはかなり自明ですが、私は彼らが正しいと確信することはできません!また

私は実際にこのための手順を参照できる場所Googleで、誰もが知っているのですか?

答えて

1

スクリプトを再実行できないのは、お気づきのように、document.writeが使用されていることです。これは、ドキュメントが既に読み込まれた後では呼び出さないでください。

可能な解決策の1つは、前述したようにGIFリクエストを自分で開始することです。実際にスクリプトを再実行したい場合は、document.writeをリダイレクトする可能性があります。

ここでは、あなたのページに新しいコンテンツをリロードところ、この行われ、これをすることができフラグメントはどこかに配置される方法の一般的な考えです。ここでは、jQueryを使用し、すでに新しいページのコンテンツを$newContentにロードし、リロード時に実行する必要のあるすべてのスクリプトタグをclass="ajax-exec"とマークしているものとします。インラインスクリプトを直接実行し、jQueryの$.ajax関数をdataType: scriptと組み合わせて使用​​します。次に、すべての外部スクリプトが実行され、リダイレクトされた出力が隠しファイル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);