私はReact JS
スタック上に構築されたSPAを持っています。私はreact-router
を使ってページをナビゲートしています。私はウェブサイトにGoogle AdWords
を実装する必要があります。Google AdWordsスクリプトによるSPAの再読み込みの防止方法を教えてください。
<script type="text/javascript">
/* <![CDATA[ */
goog_snippet_vars = function() {
var w = window;
w.google_conversion_id = 333333;
w.google_conversion_label = "33333";
w.google_remarketing_only = false;
}
// DO NOT CHANGE THE CODE BELOW.
goog_report_conversion = function(url) {
goog_snippet_vars();
window.google_conversion_format = "3";
var opt = new Object();
opt.onload_callback = function() {
if (typeof(url) != 'undefined') {
window.location = url;
}
}
var conv_handler = window['google_trackConversion'];
if (typeof(conv_handler) == 'function') {
conv_handler(opt);
}
}
/* ]]> */
</script>
私は体にこのコードを埋め込むと私は別のページに私をナビゲートし、ボタンをクリックしたときに私はgoog_report_conversion
を実行します。 SPAの望ましくない動作です。
<Link
className="btn btn-primary"
to="/settings"
onClick={() => goog_report_conversion('site.name/settings')}
>Go to settings</Link>
問題が発生すると、私のウェブページは完全にリロードされます。 私は、この行が問題
window.location = url;
を引き起こすことを知っている。しかし、それなしでスクリプトが動作しません。
Googleタグマネージャでこのイベントを作成しようとしましたが、ここに記載されているアドバイスに従います。Google Tag Manager causes full page reload in SPA - Reactしかし、それは私を助けませんでした。
アドワーズ広告をSPAに実装するのと同じ問題に直面したことがありますか?どのように解決しましたか?
In whatそれはうまくいきませんか?オプションのurlパラメータを指定しないと、リダイレクトはありません。 –