LoginSignup
0
0

More than 3 years have passed since last update.

[Google広告] サンキューページに合計金額表示なし。でも、コンバージョンでデータを送りたいときはsessionStorageをつかおう

Last updated at Posted at 2019-01-30

確認ページには金額あるのに、サンキューページには金額がない...。

でも、コンバージョンとして値は送りたい。

そんなあなたはsessionStorageを使いましょう。
(localStorageも使えます。が、sessionをまたいで保持する必要はないので)

・確認ページにて

 // DOM要素なんかから合計金額を取得します。
 let $total = document.querySelector('#hoge');
 let priceStr;
 if($total){
   // DOM要素だったら、innerTextなんかで金額取りましょう。
   priceStr = $total.innerText;
   // "¥6,000"が"6000"に
   priceStr = getPriceWOSymbols(priceStr);
 } else {
   // 値が取得できなければ、1
   priceStr = '1';
 }
// 金額のデータを保存 ("6000")
window.sessionStorage.setItem('price', priceStr);

/** 
* 「¥」と「,」なしの金額を返します
*  WO = without
* @param {string}  priceStr
* @return {string}
*/
const getPriceWOSymbols= (priceStr)=>{
  return priceStr.replace(/[^0-9]/g, '');
};

・サンキュページにて

<!--Global site tag (gtag.js) - Google Ads: XXXXXXXX-->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-766862767"><script/>
<script>
  // Google広告のコード。ファーストパーティクッキーの生成
  // リマーケティングタグとしても機能します。
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'AW-XXXXXXXX');
</script>
<script>
// 保存しておいた金額のデータを取得。 ("6000")
let price = window.sessionStorage.getItem('price');

// sessionStorageにはstringでしか値を入れられないので、numberに直しましょう
// "6000" が 6000に
price = price && !isNaN(price) ? parseFloat(price) : 1;

// コンバージョンデータの送信
gtag('event', 'conversion', {
  'send_to': 'AW-XXXXXXXX/XXXXXXXX',
  'value': price, // ここに確認ページからもってきた値(数字の6000)が入ります!
  'currency': 'JPY',
  'transaction_id': someVariableForId // 省略可
});  
</script>

以上です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0