ランサーズ等のサービスを開発・運用する中で得た知識やノウハウを紹介しています。

thumbnail

Labels:  DevOps 投稿者:mori-dev

React.js/redux アプリでの Google Analytics のイベントトラッキングの設定

です。

React.js/redux アプリでの Google Analytics のイベントトラッキング用の設定を紹介します。

ライブラリ

以下のライブラリを用います。

他に開発用に Google Analytics Debugger を導入するとよいかもしれません。

実装

パターン1: 直接タグの属性として設定する

eventTracker のオプション attributePrefix を index.html で以下のように指定しています。こうすることで、接頭辞を ga- から data- に変更しています。ga- だと React.js が Warning: Unknown prop といったワーニングを出すからです。

ga(‘require’, ‘eventTracker’, {
attributePrefix: ‘data-‘,
});

もっともよくある設定の例です。

<NFloatingButton
className={className}
onClick={redirectToOrderPage}
data-on=”click”
data-event-category=”Request”
data-event-action=”Request”
data-event-label=””
>

onTouchTap をつけたタグの場合は、data-on=”click” ではなく data-on=”touchstart” と指定することで、動作します。

<NPrimaryButtonHalfWidth
styleName=”button”
onTouchTap={HogeAction}
label=”ほげほげ”
data-on=”touchstart”
data-event-category=”C1″
data-event-action=”A1″
data-event-label=”L1″
/>

touchstart に対応させるため、eventTracker のオプションを追加しています。

ga(‘require’, ‘eventTracker’, {
attributePrefix: ‘data-‘,
events: [‘click’, ‘touchstart’],
});

パターン2: アクションに対して設定する

一つの UI、たとえばボタンが、複数の用途で使われることがあります。その場合、その UI のタグに、直接 GA の属性を指定するわけにはゆきません。redux-beacon を使うことで、React.js のアクションに、GA の指定を対応づけることができます。

GA_FOO というアクションに対し、GA のカテゴリ C1、GA のアクション A1、GA のラベル L1 を対応づけてみましょう。

まずはアクションを定義します。

import * as ActionTypes from ‘./action_types’;
import { createAction } from ‘redux-actions’;

export const gaFoo = createAction(ActionTypes.GA_FOO);

ミドルウェアを書きます。

あとは、他のミドルウェアと同様に、この googleAnalytics ミドルウェアを applyMiddleware() して createStore() します。

結果の閲覧

Google アナリティクス の Web サイトの以下のページから、結果を閲覧できます。

  • リアルタイムデータ: リアルタイム > イベント
  • 過去データ: 行動 > イベント

ランサーズではサービスを成長させてくれるエンジニア、デザイナーを募集しています!
ご興味がある方は、以下URLよりご応募ください。


【中途採用】
フロントエンドエンジニア
サーバーサイドエンジニア
コーポレートエンジニア
SREエンジニア

【新卒採用・その他】
21・22新卒
その他採用情報

関連記事

開発環境のDocker化 その後

インフラエンジニアの金澤です。 開発環境をDocker化してから1年経ちましたので、その後のアップデートについて書きたいと思います。 前提 ランサーズでは、Dockerを開発を以下の目的で導入しました PCリソース(HDD、メモリ)を削減 コンテナ単位でサーバ …

ハイパフォーマンスな開発合宿をする3つの秘訣

  おはこんにちばんは!ランサーズエンジニアの satoshi です。 今回は開発合宿のすすめ的記事を共有させていただきます。 はじめに ランサーズ開発チームでは年に一度、日頃の業務から身を置き、技術やサービスに向き合うために、都会の喧騒から離れ、自 …

thumbnail
Subversionで413レスポンスが返却された場合の対処

ご無沙汰しております。keiです。 Subversionで、大容量ファイルをコミットする際に遭遇した エラーの対処方法について、共有の意味で記事化させて頂きます。 事象 開発が完了したプロジェクトのソースをまとめてコミットしようとした際に、 ステータスコード4 …