この記事は Google Tag Manager Advent Calendar 2018 - Adventar 2日目の記事です
結論
一番最初のgtm.jsイベントのみが対象となる
詳細
例えばOptimizeとGTMとを併用する場合や、GTMを複数埋め込む場合に、データレイヤ中にイベント名が"gtm.js"となる要素が複数存在するようになる。
GTMではデータレイヤの各要素のイベント名を基にトリガーを発火させているため、他のイベントであればイベント名を持つ要素がpushされた回数分だけトリガーが発火する。
しかし、ページビューイベントの場合は初回のイベントのみが対象となる。
GTMのプレビューモードで確認すると、初回以外は"Message"となっていることが確認できる。
そのため、GAの拡張eコマースなど、ページビューイベント時点でdataLayer変数を利用する場合は最初のgtm.jsをpushするスクリプトよりも手前に宣言する必要がある。
同様の理由でSPA等で仮想ページビューを送る際にはイベント名に"gtm.js"を使うことはできない。