gtm_railsというgemを作った

Google Tag Manager のスニペットタグ (というかそれに含んだ GTM のコンテナ ID) の出し分けということをしたくなったので、それように作ったもの。近いものとして、google-tag-manager-rails があるが、グローバルにひとつの GTM のコンテナ ID (GTM-XXXX といったもの) を持つ仕組みだったので今回の用途には向かなかった。

ということで作ったのは、複数の GTM のコンテナ ID を設定できる YAML をベースに、ラベル名と Rails.env の値をもとに Google Tag Manager のスニペットタグを出力するというシンプルなもの。

github.com

使い方

Rails アプリケーションの config/google_tag_manager.yml を配置する。例としてはこんな感じになる。

staging:
  foo: GTM-YourGtmId1
  bar: GTM-YourGtmId2
  baz: GTM-YourGtmId3
production:
  foo: GTM-YourGtmId4
  bar: GTM-YourGtmId5
  baz: GTM-YourGtmId6

foo, bar, baz は任意のラベル名を付ける。

ビューには google_tag_manager_script_tag というヘルパーメソッドと、google_tag_manager_noscript_tag というヘルパーメソッドの2つが追加される。引数には config/google_tag_manager.yml で指定したラベル名を指定する。

  1. <%= google_tag_manager_script_tag(:foo) %> は Web ページの <head> タグの上の方で呼んでおくヘルパーメソッドとなる
  2. <%= google_tag_manager_noscript_tag(:foo) %> は Web ページの <body> タグの上の方で呼んでおくヘルパーメソッドとなる

それぞれ戻り値として、環境変数 RAILS_ENV に応じた Google Tag Manager のスニペットタグが返る。一致するものがない場合は空文字が返る。

設置場所については、公式ガイド に書かれているとおりなので、そちらも参照すると良いと思う。

設定ファイルのジェネレータがあった方がいいだろうとか、テストが足りていなかったりなど、手が届いていないところがあるので、しばらくちょくちょく手を入れると思う。

最新情報は README.md に記している。

2017.01.27: gtm_rails バージョン 0.3.0 に合わせて内容を改訂した