Posts

Google Analytics で Google Tag Manager で設定したイベントパラメータを計測および表示を行う方法

  • POST
Google Analytics(GA) で Google Tag Manager(以下 GTM) で設定したイベントパラメータを計測および表示を行う方法を備忘録として残しておく 前提 ソースコードに GTM との連携用のスクリプトが導入済であること ソースコード上に以下のようなカスタムイベント発火のコードが設定されていること pushDataLayer({ event: "watch_video", userID: userId, datetime: `${date} ${time}`, }); 方法 [管理] > [データの収集と修正] > [データ ストリーム]を選択 対象のサイトを選択 測定 ID をコピーして退避しておく [Google マーケティング プラットフォーム] > [タグマネージャー]を選択 GTM での作業 変数の登録 [変数] > [ユーザ定義変数] > [新規]ボタンを押下 変数名に「user_id」と入力 変数のタイプに[データレイヤーの変数]を選択 データレイヤーの変数名に「userId」を入力 [保存]ボタンを押下 「datetime」も同じように登録する トリガーの登録 [トリガー] > [新規]ボタンを押下 名称に「動画再生」と入力 [トリガーの設定]の中央アイコンを押下 [その他] > [カスタムイベント]を選択 イベント名に「watch_video」を入力 [保存]ボタンを押下 タグの登録 [タグ] > [新規]ボタンを押下 名称に「動画再生」と入力 [トリガー]の中央アイコンを押下 トリガーの登録で登録した「動画再生」を選択 [タグの設定]の中央アイコンを押下 [Google アナリティクス] > [Google アナリティクス: GA4 イベント]を選択 測定 ID に事前に退避しておいた測定 ID を入力 イベント名に「watch_video」を入力 イベント パラメータに 「user_id」を入力 値に「{{user_id}}」を入力 イベント パラメータに 「datetime」を入力 値に「{{datetime}}」を入力 [保存]ボタンを押下 [プレビュー]ボタンを押下してカスタムイベントが測定されることを確認 [公開]ボタンを押下 GA での作業 カスタムディメンションの設定 Google Analytics にログイン [管理]>[データの表示]>[カスタム定義]を選択 [カスタム ディメンションを作成]を押下 ディメンション名に「ユーザID」と入力 範囲に「イベント」を選択 説明に任意の値を入力 イベント パラメータに「user_id」を入力 「保存」ボタンを押下 datetime も同じように登録 ※ディメンション名は「イベント実行時間」 動画再生時間収集用の探索の設定 ※探索は前日までのデータしか対象にできないため設定の確認は後日に行うことになる

rails で routes.rb を分割管理する方法

  • POST
プロジェクト自体が大きくなってきた際に routes.rb にまとめて記載すると見づらくて追加しようとした際にわかりずらい課題が発生した そのため、rails で routes.rb を分割管理する方法を備忘録として残しておく 参考 環境 ruby: 3.0.5 rails: 6.1.7 方法 concern を使用して共通の routes を定義する draw を使用して別ファイルに分割する 前提 config |-routes | |-concerns.rb # プロジェクト共通の routes | |-foo_service_provider.rb # Foo サービス用の routes | |-hoge_service_provider.rb # Hoge サービス用の routes | |-service_provider_common.rb # サービス共通の routes |-routes.rb 実際の例 concern :loggable do get "login", to: "sessions#new" post "login", to: "sessions#create" delete "logout", to: "sessions#destroy" end concern :data do namespace :data do get "download" end end namespace :service_provider, path: "services" do concerns :loggable scope :home, as: :home do get "/", to: "home#index" end end draw(:service_provider_common) namespace :service_provider, path: "services" do concerns :data end draw(:service_provider_common) namespace :service_provider, path: "services" do resources :users, only: [:index, :show] end # == Route Map # # Prefix Verb URI Pattern Controller#Action # admin_login GET /admin/login(.:format) admin/sessions#new # POST /admin/login(.:format) admin/sessions#create # admin_logout DELETE /admin/logout(.:format) admin/sessions#destroy # foo_service_provider_login GET /foo/services/login(.:format) foo/service_provider/sessions#new # POST /foo/services/login(.:format) foo/service_provider/sessions#create # foo_service_provider_logout DELETE /foo/services/logout(.:format) foo/service_provider/sessions#destroy # foo_service_provider_home GET /foo/services/home(.:format) foo/service_provider/home#index # foo_service_provider_users GET /foo/services/users(.:format) foo/service_provider/users#index # foo_service_provider_user GET /foo/services/users/:id(.:format) foo/service_provider/users#show # hoge_service_provider_data_download GET /hoge/services/data/download(.:format) hoge/service_provider/data#download # hoge_service_provider_users GET /hoge/services/users(.:format) hoge/service_provider/users#index # hoge_service_provider_user GET /hoge/services/users/:id(.:format) hoge/service_provider/users#show Rails.application.routes.draw do draw(:concerns) namespace :admin do concerns :loggable end namespace :foo do draw(:foo_service_provider) end namespace :hoge do draw(:hoge_service_provider) end end