” [ご対応をお願いします] 2025年8月28日までにサンキューページをアップグレードしてください”の対処策について

“[ご対応をお願いします] 2025年8月28日までにサンキューページをアップグレードしてください”

という内容でShopifyからメールがあり、対処策を模索しておりますが解決に至っておらず、

コミュニティに挙げさせていただきました。

■対処が必要な内容

内容としては、
・追加スクリプト
の設定ができなくなり、
・設定>お客様のイベント>アプリまたはカスタムイベント

で対処が必要ということで、

コンバージョンタグなど直接Javascriptを埋め込み・動作していたものが使えなくなってしまうため、問題です。

■具体例

例えば、MicroSoftのClarityを注文完了ページに埋め込む場合、

今までは、追加スクリプトとしてClarityのJavascriptタグを設置することで対処できておりました。

ただ今後は、アプリで実装できるものがなさそうなため、

・お客様のイベント>カスタムイベント

で実装するしかないと思っております(方法として下記2つのアプローチがあり、検証しました)。

▼方法①:GTM経由で、Clarityのタグが配信できるか?

Shopify Help Center | Googleタグマネージャーのカスタムピクセル

の手順で、GTMにShopify独自のカスタムイベントがトリガーできることは確認できました。

これにより、GAにカスタムイベントを配信することは可能でした。

ただ、GTMで、

・Shopifyのcheckout_completed カスタムイベントとするトリガーを作成して、

・ClarityのタグをGTMで配信する

方法を試みましたが、Shopify側でクロスドメインのブロックが働いているようで、

Clarity側にデータ送信ができませんでした。

▼方法②:ClarityのタグをShopifyのカスタムピクセルで埋め込む?

上記のクロスドメインの制約があることを前提にすると、カスタムピクセルで埋め込む必要があると考えます。

上記のGTMの記述に習うと、下記のような記述になるでしょうか。

// Define dataLayer and the gtag function.
window.dataLayer = window.dataLayer || [];

(function(c,l,a,r,i,t,y){
        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
    })(window, document, "clarity", "script", "★★★★★★★");

analytics.subscribe("page_viewed", (event) => {
  window.dataLayer.push({
    event: "page_viewed",
    timestamp: event.timestamp,
    id: event.id,
    client_id: event.clientId,
    url: event.context.document.location.href,
    page_title: event.context.document.title,
  });
});

fetch('https://www.clarity.ms/tag/', {
    method: 'POST',
    body: JSON.stringify(payload),
    keepalive: true,
});

page_viewedを指定することで、チェックアウト画面でも

・clarity.jsのタグが読み込みされることは確認できました。

・ただ、clarity側にデータを送信するには、

必要な各種データをカスタムイベントで定義して送信が必要と思います。

■現状の結論

長くなりましたが、上記より、店舗・制作会社側で、

Clarityなど複雑な情報を送信するJavascriptタグを再現するカスタムイベントを実装するのは、

かなり困難(ほぼ不可能)であると考えます(どのような仕様かサービス提供者側でないとわからないため)。

そのため、各Clarityなどのサービス提供者側で
・設定>お客様のイベント>アプリ を準備する
・設定>お客様のイベント>カスタムイベント の記述例を作成する

を準備してもらうしかないと考えます。

■ご質問

Shopifyをご利用の各店舗様・制作会社で

この問題に対処策を見出せている方がいらっしゃれば、

ぜひ参考にさせていただきたいと思っております。

・同様の問題を抱えている

・このサービスのコンバージョンタグはこうやればうまくいった

などがあれば、お伺いしたいです。

追記:▼方法②:ClarityのタグをShopifyのカスタムピクセルで埋め込む

について、下記の記述でもチェックアウト画面含めて、clarity.jsが配信できることは確認できました。

analytics.subscribe("page_viewed", (event) => {
(function(c,l,a,r,i,t,y){
c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
})(window, document, "clarity", "script", "★★★★★★★");
});

ただ、Clarity側にヒートマップの描画がされないため、

サイト内の動作などがうまく送信されていないようです。

@takahiron

ヒートマップを生成するには、

計測対象となるページのDOM情報にアクセスできる必要があるように思いまして、

Webカスタムピクセルの都合上、計測タグが展開されるのがiframe内であるため、

ClarityがDOMの情報を得られず、ヒートマップが正常に描画できないのではないかと思います。

私どもも、Clarityについて、質問者様と同様の問題があるのですが、

私たちの場合は対応を諦めました。

この問題は、本来、Clarity側、もしくは、Shopify側が対応すべきだと思いまして、

とは言っても、Shopifyのサポートに問い合わせても色良い返事は得られないでしょうから、

Clarity側にお問い合わせいただくのが良いかもしれません。

情報共有まで。

(キュー田辺)

ご回答ありがとうございます。

MicroSoftにお問い合わせしたところ、

問題と認識しておりShopifyに確認されているようです。

やはり、Clarityに限らず、各種ツール提供会社様で、

・設定>お客様のイベント>アプリ を準備する
・設定>お客様のイベント>カスタムイベント の記述例を作成いただく

しかないということですね。

Yahoo広告のコンバージョンタグなども、

カスタムイベントで設置すれば、計測できるのかもしれませんが、

>計測タグが展開されるのがiframe内であるため

の部分でうまくいかないかかもしれませんね。