On this page

For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.

Ampli for Java SDK

Amplitudeデータは、Java(6以上)で記述されたJREプログラムからのアナリティクスイベントの追跡をサポートしています。

クイックスタート

  1. Amplitude SDKをインストールする

    java
    implementation 'com.amplitude:java-sdk:[1.8.0,2.0)'
    implementation 'org.json:json:20201115'
    
  2. Ampli CLIをインストールする

    shell
    npm install -g @amplitude/ampli
    
  3. Ampliラッパーをプロジェクトに組み込む

    shell
    ampli pull [--path ./src/main/java/com/amplitude/ampli]
    
  4. Ampliラッパーを初期化する

    java
    import com.amplitude.ampli.*;
    Ampli.getInstance().load(new LoadOptions()
      .setClient(new LoadClientOptions().setApiKey(AMPLITUDE_API_KEY))
    );
    
  5. ユーザーを識別し、ユーザープロパティを設定する

    java
    Ampli.getInstance().identify("user-id",
       Identify.builder().userProp("A user property").build()
    );
    
  6. 強力に型付けされたメソッドとクラスを使用してイベントを追跡する

    java
    Ampli.getInstance().songPlayed("user_id",
      SongPlayed.builder().songId("song-1").build()
    );
    Ampli.getInstance().track("user_id",
      SongFavorited.builder().songId("song-2").build()
    );
    
  7. アプリケーション終了前のイベントのフラッシュ

    java
    Ampli.getInstance().flush()
    
  8. CLIを使用して実装ステータスを確認する

    shell
    ampli status [--update]
    

Amplitude SDKをインストールする

まだインストールしていない場合は、コアとなるAmplitude SDKの依存関係をインストールしてください。

<dependencies>内に以下を追加します。

xml
<dependency>
    <groupId>com.amplitude</groupId>
    <artifactId>java-sdk</artifactId>
    <version>[1.8.0,2.0)</version>
</dependency>
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20201115</version>
</dependency>

Ampli CLIをインストールする

HomebrewまたはnpmからAmpli CLIをインストールします。

brew tap amplitude/ampli
brew install ampli

Ampliラッパーをプロジェクトに組み込む

Ampli CLI pullコマンドを実行してAmplitudeデータにログインし、トラッキングプラン用の強く型付けされたAmpliラッパーをダウンロードしてください。プロジェクトのルートディレクトリからAmpli CLIコマンドを実行します。

bash
ampli pull

ロード

コードでAmpliを初期化します。load()メソッドは設定オプション引数を受け入れます。

import com.amplitude.ampli.*;
Ampli.getInstance().load(new LoadOptions()
    .setClient(new LoadClientOptions().setApiKey(AMPLITUDE_API_KEY))
);

Identify

ユーザープロパティを設定するにはidentify()を呼び出します。

Ampli は、イベントとそのプロパティのタイプを作成するのと同じ方法でユーザープロパティのタイプを作成します。

identify()関数はオプションのuserId、オプションのユーザープロパティ、およびオプションのoptionsを受け入れます。

たとえば、トラッキングプランにuserPropというユーザープロパティが含まれているとします。プロパティのタイプは文字列です。

Ampli.getInstance().identify("user-id", Identify.builder()
    .userProp("A user property")
    .build()
);

options引数を使用すると、この呼び出しのAmplitudeフィールドdeviceIdなど)を渡すことができます。

Ampli.getInstance().identify(
    userId,
    Identify.builder().userProp("A trait associated with this user").build(),
    new EventOptions().setDeviceId(deviceId).setUserId("some-user"),
);

グループ

ユーザーをグループ(部署や会社など)に関連付けるには、setGroup()を呼び出します。setGroup()関数は、必須のgroupTypegroupNameを受け入れます。

Ampli.getInstance().setGroup("user-id", "GroupType", "GroupName");

Amplitudeでは、ユーザーをグループに割り当てたり、それらのグループに対して「Count by Distinct(ユニーク数による集計)」などのクエリを実行したりすることができます。グループの少なくとも 1 人のメンバーが特定のイベントを実行した場合、そのグループもカウントに含まれます。

たとえば、ユーザーを組織ごとにグループ化するには、orgIdを使用します。ジョーはorgId10のグループに所属し、スーはorgId15のグループに所属しています。SueとJoeはどちらも特定のイベントを実行します。 イベントセグメンテーションチャートでその組織をクエリできます。

グループを設定する際には、groupTypegroupNameを定義してください。前の例では、orgIdgroupTypeであり、1015groupName の値です。groupTypeのもう1つの例としてはsportがあり、tennisおよびbaseballのような値を持つgroupNameがあります。

グループを設定すると、groupType:groupNameもユーザープロパティとして設定され、そのユーザーのgroupTypeに設定されている既存のgroupNameの値と対応するユーザープロパティ値が上書きされます。groupTypeは文字列であり、groupNameにはユーザーが複数のグループに属していることを示す文字列または文字列の配列のいずれかを指定できます。

たとえば、JoeがorgId 10および20に属する場合、groupName[10, 20]になります。

コードは次のようになります:

Ampli.getInstance().setGroup("user-id", "orgID", ["10", "20"]);

追跡

イベントを追跡するには、そのイベントに対応する関数を呼び出します。 トラッキングプラン内のすべてのイベントは、Ampliラッパー内で独自の関数を持っています。この呼び出しは次の構造を使用します。

Ampli.getInstance().track(String userId, Event event, EventOptions options, MiddlewareExtra extra)

options引数を使用すると、pricequantityおよびrevenueなどのAmplitudeフィールドを渡すことができます。extra引数を使用すると、データをミドルウェアに渡すことができます。

たとえば、次のコードでは、トラッキングプランにsongPlayedというイベントが含まれています。このイベントにはsongIdおよびsongFavoritedという2つの必須プロパティがあります。songIdのプロパティタイプは文字列で、songFavoritedはブール値です。

このイベントはAmplitudeフィールドを1つ定義します:deviceId。このイベントでは、1つのMiddlewareExtraも定義されています:extra。詳細については、ミドルウェアを参照してください。

MiddlewareExtra extra = new MiddlewareExtra();
extra.put("extra-key", "extra-value");
Ampli.getInstance().songPlayed("user-id",
    SongPlayed.builder()
    .songId('songId') // String
    .songFavorited(true) // Boolean
    .build(),
    new EventOptions().setDeviceId(deviceId),
    extra
);

また、Ampli はイベントごとにクラスを生成します。

SongPlayed event = SongPlayed.builder()
    .songId('songId') // String
    .songFavorited(true) // Boolean
    .build()

汎用トラックメソッドを使用してイベントオブジェクトを送信します。

Ampli.getInstance().track("user-id", SongPlayed.builder()
    .songId('songId') // String
    .songFavorited(true) // Boolean
    .build()
);

フラッシュ

Ampliラッパーはイベントをキューに入れ、設定に基づく間隔でイベントを送信します。

保留中のイベントをすぐに送信するには、flush()を呼び出します。

flush()メソッドは、Promiseを返します。このPromiseは、Ampliが処理を続行する前にすべての保留中のイベントを確実に送信するために使用できます。アプリケーションが終了する前にflush()を呼び出します。

AmpliはバッファリングされたイベントがflushQueueSizeまたはflushIntervalに到達すると自動的にフラッシュします。

Ampliはflush()を呼び出さずにイベントを自動的に送信します。アプリケーションが終了する前にイベントを送信する必要がある場合は、flush()を使用します。

Ampli CLI

Pull

pullコマンドはAmpliラッパーコードをプロジェクトにダウンロードします。プロジェクトのルートからpullコマンドを実行します。

bash
ampli pull

Ampliは、ワークスペースにログインしてソースを選択するよう求めます。

bash
 ampli pull
Ampli project is not initialized. No existing `ampli.json` configuration found.
? Create a new Ampli project here? Yes
? Organization: Amplitude
? Workspace: My Workspace
? Source: My Source

ステータス

statusコマンドを使用して、コードがすべてのトラッキングプランイベントを実装していることを確認します。

bash
ampli status [--update]

出力にはステータスと、どのイベントが欠落しているかが示されます。

bash
 ampli status
 Verifying event tracking implementation in source code
 Song Played (1 location)
 Song Stopped Called when a user stops playing a song.
Events Tracked: 1 missed, 2 total

ampli statusの詳細をご覧ください。

Was this helpful?