Amplitudeクイックスタートガイド は、Amplitudeのデータ構造を順を追って解説し、Amplitudeに送信する必要があるデータについて説明しています。 この記事はクイックスタートガイドを補足するもので、Amplitudeを実装する開発者を対象としています。
この記事では、Amplitudeの使用を開始して使いこなすための技術的なベストプラクティスについて説明します。開発者向けのコンテンツについては、開発者センターをご覧ください。
実装のベストプラクティス
詳細に入る前に、Amplitudeを実装する際に推奨されるベストプラクティスについて見ていきましょう。
- 常に実装をテストする: 社内の生産プロジェクトで毎回テストプロジェクトを実施することが推奨されます。 これは、データをAmplitudeに送信する前に実装全体をテストする信頼できる方法です。Amplitudeは履歴データを過去に遡って修正することができないため、実装にエラーが含まれている場合、収集するデータを後で消去することができません。詳しくは、Amplitudeのイベントデータの品質保証に関するこのビデオをご覧ください。
- 少なくとも2つのAmplitudeプロジェクトをセットアップする: 1つは開発またはステージング環境用、もう一つは生産環境用に作成します。これにより、テストデータを生産データを切り分けることができます。
- 正しいキーを送信する: データをHTTP API経由でサーバー側に送信する場合、各イベントに
session_id
とinsert_id
を送信します。これらの重要なキーの詳細は、データと取り込み関するこの記事をご覧ください。
Amplitudeがデータを受け取る方法
データは、Amplitudeのクライアント側、サーバー側またはサードパーティー経由で送信できます:
- Amplitudeには、JavaScript、AndroidおよびiOSに対応したクライアント側のネイティブSDKがあります。これらのネイティブSDKは 、ここに記載されているユーザーのプロパティと各イベントのセッションIDを自動的に追跡します。SDKはオープンソースで、Amplitudeの
に保存されています。また、Unityアプリで使用できるUnityプラグインもあります。 - サーバー側で作業を行う場合は、HTTP APIによりサーバーからAmplitudeエンドポイントに直接データを送信できます。実装を行う前に、HTTP APIドキュメンテーション(上記リンクから閲覧可能)をお読みください。
- 開発者は、Segment、mParticleまたはTealiumなどのサードパーティーからデータを送信できます。
Amplitude API
Amplitudeにはプラットフォームで使用できる多くのAPIがあります
- HTTP API: イベントデータをAmplitudeに送信する
- 識別API: 追加イベントを送信する必要なくユーザープロパティを更新します
- ダッシュボードREST API:Amplitudeチャートに統合するデータをエクスポートします
- エクスポートAPI: すべての生イベントデータをエクスポートします
- 行動コホートAPI: 行動コホートをエクスポートします
Amplitudeスキーマ
Amplitudeのデータ構造には、イベント、イベントのプロパティ、ユーザーのプロパティ、グループタイプなどが含まれます。まだ行っていない場合は、続ける前にデータタクソノミプレイブックをご確認ください。
イベントの命名規則
イベントを実装した後は、そのイベントタイプの名前を生データで変更することはできません。例えば、v1.0のアプリで開発者が次のイベントタイプを実装するとします
Amplitude.getInstance().logEvent('Play song');
その後、v2.0のアプリに次のイベントタイプを実装します:
Amplitude.getInstance().logEvent('play song');
Amplitudeに渡される文字列は大文字と小文字が区別されるため、Amplitudeは上の2つのイベントタイプを完全に異なるイベントとして解釈します。実装中はイベント名が一貫したシンタックスに従っていることを確認してください。詳しくは、データタクソノミプレイブックの次のセクションをご覧ください。
これはイベントプロパティにも適用されます。
ユーザープロパティの実装
ユーザープロパティは個々のユーザー固有のプロパティです。ユーザーのプロパティの例としては、場所、言語、アカウントタイプ、総支払額、プレーヤータイプなどがあります。
注意: どのユーザーのプロパティを追跡するかについての推奨情報は、Amplitudeデータタクソノミプレイブックをください。
Amplitude SDKには、ユーザーのプロパティ値の更新に使用できるいくつかのユーザープロパティ演算子があります:
set
: プロパティ値を設定または上書きしますsetOnce
: 値を設定します。設定後に値を上書きすることはできませんunset
: 値をnull
に設定しますadd
: 数値を指定数単位で増分しますappend
: 値をプロパティアレイに追加しますprepend
: 値をプロパティアレイの先頭に追加します
識別APIを使用して、追加イベントを送信する必要なくユーザーのプロパティの値を更新することもできます。新しい値は、そのユーザーが組織的に送信した次のイベントに適用されます。
グループタイプの実装
注意: グループタイプはアカウントアドオンを購入したグロースとエンタープライズの顧客にのみ使用できます。
Amplitudeのアカウントレベルのレポーティング機能を使用するには、グループタイプを実装する必要があります。アカウントレベルのレポーティングでは、個々のユーザーのプロパティグループ単位でカウントできます。これにより、個々のユーザーレベルの代わりにグループレベルでデータを処理できます。Amplitudeは最大5つのグループタイプを許可しています。サードパーティーのツールを使用してAmplitude(mParticle、Segment、Tealium)を実装する場合、パートナーの制限によりこの最大しきい値が5よりも小さくなる場合があります。
Amplitudeが固有のユーザーとセッションをトラックする方法
Amplitudeは、ユーザーID、デバイスID、Amplitude IDのシステムを通じて固有ユーザーをトラックします。 詳しくは、固有ユーザーのトラッキングのこの記事をご覧ください。
Amplitudeでは、セッションとはユーザーがプロダクト内でアクティブ状態である単一の連続時間を意味します。イベント毎に送信されるセッションIDにより、Amplitudeはイベントをトラックできます。セッションの機能に関する詳細は、Amplitudeのセッションのトラッキングのヘルプセンターの記事をご覧ください。
一般的なSDK構成オプション
このセクションでは、頻繁に修正されるAmplitude SDK構成オプションについて詳しくご説明します。
minTimeBetweenSessions
(iOS/Android): 新規セッションが開始する前にアプリが背景に置かれる最小時間sessionTimeout
(Web): 新規セッションが始まる前に経過したイベント間の最小時間batchEvents
: このオプションはモバイルSDKではデフォルトで有効になっています。Webでは任意です。eventUploadPeriodMillis
: batchEventsが有効の場合、このオプションはイベントバッチのアップロード間の時間を示しますeventUploadThreshold
: batchEventsが有効の場合、このオプションによりバッチ毎の最小イベント数が設定されますoptOut
: このオプションが有効の場合、現在のユーザーをトラッキングから除外しますoffline
: イベントの送信を禁止しますsaveEvents
: このオプションはすべてのSDKでデフォルトで有効になっており、未送信のイベントをSDKがデバイスに保存することを許可します。savedMaxCount
: デバイスに保存される未送信のイベントの最大数。デフォルト値は1000です。
データのバックフィル
次の場合、データのバックフィルを検討できる場合があります:
- Amplitudeの履歴データを分析したい場合。 Amplitudeへのデータのバックフィルに関する詳細な説明は、自動データバックフィルガイドをご覧ください。
- プロダクトに既存のユーザーがいる場合。 Amplitudeでこれらのユーザーが新規だった時点を正確に反映させたい場合。
リソース
以下は実装中に役立つリソースです。
- Amplitudeクイックスタートガイド: 最初のプロジェクトを作成して実行するためのセットアッププロセスについて説明しています。このガイドはイベントタクソノミの構築を開始するために役立つヒントも記載しています。
- データタクソノミプレイブック: プロダクトへの適切なイベントタクソノミの作成に関するベストプラクティスについて説明しています。
- 自動データバックフィルガイド: Amplitudeに履歴データをバックフィルする方法の詳細な手順について説明したガイドです。
- イベントデータの有効化: この記事はAmplitudeへの実装の有効化に関するベストプラクティスについて説明しています。
- HTTP API: AmplitudeのHTTP APIを使用してサーバー側にデータを送信します。
- SDK: AmplitudeのネイティブSDKを使用してクライアント側にデータを送信します。
- 統合: Amplitudeの統合に関するドキュメンテーションを検索します。当社の正規の統合のリストについては、こちらをご覧ください。
ビデオウォークスルー