オルタナティブ・ブログ > 秋山大志のそれとりあえず作ってみようか。 >

あれこれ考えるよりも作ってしまった方が早いんじゃね?と思う、ギークなサラリーマンのアジャイルな日々。

GTMの優先順位とタグシーケンスの違い|開始順序と完了保証を正しく使い分ける|未経験から100日後にGTMのプロになる話【Day 48】

»

「Google広告のコンバージョンタグがGA4より先に動いてほしくない」「このスクリプトは他のタグの後に実行したい」――複数タグが絡む場面では、発火順の制御が必要になります。ただし、GTMの発火順制御には2つの異なる仕組みがあり、これを混同すると期待通りに動きません。

「優先順位」は開始順序しか保証しない

タグの詳細設定にある「優先順位」は、数値が大きいほど先に発火します。ただし同じ優先順位のタグ同士は、発火順序が保証されません(「同時に発火する」というより「順序が不定」というのが正確な理解です)。

さらに重要な注意点があります。優先順位が保証するのは「発火が開始される順序」だけで、「処理が完了する順序」ではありません。多くのタグは非同期でスクリプトを読み込むため、優先順位の高いタグが先に発火を"開始"しても、実際の処理が先に"完了する"とは限りません。「優先順位を設定したのに、思った順番で動いていない」というときは、この開始順序と完了順序の違いを疑ってください。

本当に順序を保証したいなら「タグシーケンス」

処理の完了を待ってから次のタグを動かしたい場合は、優先順位ではなく「タグシーケンス」を使います。これは各タグの詳細設定にある、次の2つの仕組みです。

  • セットアップタグ:「このタグの発火前にセットアップタグを発火」にチェックを入れ、先に完了させたいタグを指定します。「セットアップタグが失敗した場合はこのタグを発火しない」も選べます。
  • クリーンアップタグ:「このタグの発火完了後にクリーンアップタグを発火」にチェックを入れ、後処理として動かしたいタグを指定します。
  • タグの詳細設定でセットアップタグ・クリーンアップタグを両方指定した画面

例えば、GA4のイベントタグをセットアップタグとして指定し、Google広告のコンバージョンタグ側で「セットアップタグが失敗したら発火しない」を有効にしておけば、GA4側の処理が確実に完了してからコンバージョンタグが動くようになります。以前はカスタムHTMLタグにsetTimeout()を仕込んで無理やり遅延させるようなやり方も見られましたが、今はこの標準機能を使うべきです。待ち時間が環境によって前後するsetTimeoutの力技より、確実性の高い方法です。

優先順位とシーケンスは併用できる

この2つは競合するものではなく、組み合わせて使うものです。例えば、コンバージョン系のタグ全体の優先順位を高めに設定しつつ、その中でも特に順序を厳密に守りたいタグ間だけセットアップ/クリーンアップタグで明示的に縛る、という設計が現実的です。

今日のまとめ

「優先順位」は開始順序の目安、「タグシーケンス」は完了を待つ強い保証、という役割の違いを理解してください。厳密な順序が必要な場面では、優先順位だけに頼らずセットアップ/クリーンアップタグを使うのが正解です。次回は、エラーと例外ハンドリングを扱います。

INDEX

Comment(0)