LoginSignup
3
3

More than 3 years have passed since last update.

ExpoアプリにAmplitudeを導入する+GAも試してみる

Last updated at Posted at 2019-12-24

Expoで開発しているアプリにアナリティクス系のサービスを導入しようとすると、選択肢は概ねAmplitudeに限られるようなので、簡単に導入までやってみます。

Amplitude

アカウント・プロジェクト作成

Amplitude
https://amplitude.com/

Amplitude___Product_Analytics_for_Web_and_Mobile.jpg

アカウントを未登録の場合は「Explore demo now」からデモを開始します。
メールアドレスや名前などを入力したら下のようなデモ画面が表示されるはずです。

Amplitude_Demo__Music_Streaming_App_-_Amplitude.jpg

メールが届いているはずなので、認証してから、上部に表示されている「Set up the Free Plan」からひとまずフリープランにアップグレードします。

アカウントを作成すると、チームスペースが表示されます。

左メニューの「Manage Data」→「Create Project」で新規プロジェクトを作成し、「API Key」を取得しておきます。

Expoプロジェクトで初期化

Expoから使用するためのパッケージをインストールします。

$ npm install --save expo-analytics-amplitude

JS側での設定はこれだけです。

App.js
import * as Amplitude from "expo-analytics-amplitude";

Amplitude.initialize("API Key"); // API Keyを指定

ログを送信

ユーザーの情報やイベントを送信することができます。

Amplitude.setUserId("xxxx"); // アプリケーションで使っているユーザーIDを入れる

Amplitude.setUserProperties({ // ユーザーの情報を適宜入れる
  plan: "free",
  gender: "f",
  organization: "XX Inc."
});

Amplitude.logEvent("Init"); // イベントを送信

// 任意のプロパティを渡してイベントを送信
Amplitude.logEventWithProperties("Send", { title, message });

// こんな感じでユーザーをgroupingできる(フリープランだと活用できなさそうだけど)
Amplitude.setGroup("interests", ["sports", "science", "art"]);

Expoの公式ドキュメントに詳しく載っていますが、アプリケーション側でできることはシンプルにこれだけです。

プロジェクト詳細からイベントがうまく拾えているのが確認できます。

Events_-_Amplitude.jpg

左メニューの「User Look-Up」から個々のユーザーの情報が閲覧できます。
User__xxxx_-_Amplitude.jpg

[補足]Google Analyticsも使ってみる

Amplitudeを使ったリポジトリを探しているうちにexpo-analyticsというExpoでGoogle Analyticsを使うためのライブラリを見つけたので、これも試してみます。
そもそもモバイルアプリ用のGAはFirebaseAnalyticsに統合される(されている)ようなのでその場凌ぎのような感じになってしまいますが。。。

内部的には単純に、Google AnalyticsのAPI(https://www.google-analytics.com/collect)を直接叩いているようです。

$ npm install --save expo-analytics
App.js
import { Analytics, Event, PageHit } from 'expo-analytics';

const analytics = new Analytics('UA-XXXXXXXX-X');
analytics.hit(new PageHit('Init'))
  .then(() => console.log("hit success"))
  .catch(e => console.log(e.message));
analytics.event(new Event('Video', 'play', 'Fall Campaign', 42))
  .then(() => console.log("event success"))
  .catch(e => console.log(e.message));

これで見たところ問題なくヒットやイベントが送信できました。ただし、ここにもある通り現在ベータ版のG-から始まるトラッキングIDをもつWeb+App版のプロパティでは使用できず、現在は通常のプロパティのみ使用できるようです。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3