Shopify テーマ、Liquid、ロゴ、その他の類似トピック
こんにちは。閲覧ありがとうございます。
はじめてディスカッションに投稿いたします。
▼サイト構成
A:www.example.com (自社サイト:製品紹介)
B:example.myshopify.com(Shopify:決済)
製品詳細は A で見せて、決済は B(Shopify)という構成にしています。
A では Buy button を埋め込んでおり、コードとしては以下のスクリプトタグを使っています。
▼やりたいこと
A で Buy Button を押されたことを、
Googleアナリティクスの「イベントトラッキング」で取得したいと考えています。
「イベントトラッキング」は、通常以下のようなタグで設定しますが、
<a href=”xxxxxxxx.pdf” onclick="gtag('event', 'download', {'event_category': 'pdf','event_label': 'xxx','value': '1'});“>
Shopify の Buy button は <a> ではないため、どうしたらよいのかわからず…投稿させていただきました。
自分なりに英語圏も含めて調べてみたのですが、読解力の問題もあるのか解決できず…
何時間もかかってしまっており、限界を感じてしまいました。
もしご存じの方がいらっしゃいましたら、コメントいただけましたら幸いです。
どうぞよろしくお願いいたします。
解決済! ベストソリューションを見る。
成功
なるほど、buy buttonの出力ソースを確認してみました。
対象のボタンはiframe内に出力されている状態でしょうか。その場合、iframe内にアクセスする必要があるので上記のコードでは動作しません。(すみません!)
参考URLの
<div id='product-component-2dd3c8704e6'></div>
がbuy buttonだったとして、
<script>
var buyButton = document.querySelector('#product-component-2dd3c8704e6')
if (buyButton) {
buyButton.addEventListner('click', function() {
gtag('event', 'download', {'event_category': 'pdf','event_label': 'xxx','value': '1'});
})
}
</script>
こんな感じでどうでしょうか
Nishishisさま
コメントありがとうございます!
さっそくいただいたコードを参考にidの値を変えて試してみたのですが、残念ながら計測されませんでした。。
var buyButton…の末尾に「;」がないためかな?と思って書き足してみましたが、変わらずでした。
ちなみに、普通に <a> の書き方をテストすると計測されました。
JSについてくわしくないため、もしかしたら…くらいの感覚なのですが、
以下ページの一番下に記載のある、
https://shopify.github.io/buy-button-js/customization/
以下のようなコードをうまく使えば可能性があるでしょうか?
var product = { DOMEvents: { 'click .button': function (event) { myAnalyticsLibrary.track() } } }
的はずれな内容でしたら恐縮です。
すみません、構文ミスです。
私の書いたコードのaddEventListnerをaddEventListenerに変更してください。
下記を参考にして頂くと良いと思います。
https://developers.google.com/analytics/devguides/collection/gtagjs/sending-data?hl=ja
> 以下のようなコードをうまく使えば可能性があるでしょうか?
うまく使えばできるかもしれませんが、デフォルトの機能を失うようなのでご注意ください。
(このライブラリの知識はないです、すみません)
https://github.com/Shopify/buy-button-js/issues/801
https://github.com/Shopify/js-buy-sdk/issues/590
追記:
buy button自体にイベントを登録できなかった場合、buy buttonを囲む要素にイベントを追加してやると良いと思います。
下記は例(jsのalert()部分(クリックされましたのほう)をgtagイベントに置き換えてください)
ご返信、さっそくありがとうございます。
重ねてのフォローに大変感謝しております。
>addEventListnerをaddEventListenerに変更
こちらを試してみましたが、やはりイベント発生せずでした。
追記でいただいた内容もありがとうございます。
わざわざODEPENに記載してくださり、恐縮です。
追記いただいた内容もテストしてみたのですが、やはりだめでした…。
<div class="buy-button-wrap">購入ボタン</div>
<div class="buy-button-wrap"><div id="product-component-2dd3c8704e6">購入ボタン</div></div>
<script>
var buyButtonWrap = document.querySelector('.buy-button-wrap')
if (buyButtonWrap) {
buyButtonWrap.addEventListener('click', function() {
// gtagのイベント
alert('クリックされました!')
})
}
</script>
上記を試したみたところ、
以下については「クリックされました!」が表示されますが、
<div class="buy-button-wrap">購入ボタン</div>
以下については 「クリックされました!」が表示されませんでした。
<div class="buy-button-wrap"><div id="product-component-2dd3c8704e6">購入ボタン</div></div>
やはり #product-component-2dd3c8704e6 に対応している Shopify の Buy button のコードが何らか影響しているのかもしれません。
成功
なるほど、buy buttonの出力ソースを確認してみました。
対象のボタンはiframe内に出力されている状態でしょうか。その場合、iframe内にアクセスする必要があるので上記のコードでは動作しません。(すみません!)
ご確認とご返信、ありがとうございます!
確認してみましたが、おっしゃる通り、ボタンはiframe内に出力されていました。
それで動作しなかったのですね…。
解決には至らなかったものの、理解できました。
ご丁寧かつ迅速にコメントをくださいまして、ありがとうございました!
以前に類似の質問に回答していますので以下を参照されると良いかもしれません。
記載されているDOMEventsでできるのではと思いますが、実現不可でしたら上記で書いています "optionsのcartで iframe: false にしてiframeを使わない表示形式" にすれば計測可能です。
ただしCSSを整える作業が必須になるため、その部分で手間がかかるとは思います。
オンラインストアを運営する中で、商品の返品や交換は重要なプロセスとなります。Shopify管理画面を通して簡単に返品や交換が行えることをご存知でしょうか?希望する場合は、お客...
By Mirai Sep 15, 2024Shopifyの請求書の支払いが失敗したという通知を受け取って驚いたことはありますか。初めての支払いでエラーが発生したり、これまで何の問題もなく支払いできていたのに突然失敗し...
By Minami_ Sep 8, 20242023年2月、Shopifyはcheckout.liquidを廃止し、Checkout Extensibilityに移行することを発表いたしました。この新しいチェックアウト...
By JasonH Aug 15, 2024