最小チュートリアル for Android

本チュートリアルでは以下を扱います。

  1. SDK の導入
  2. プッシュ通知機能の追加
  3. アプリ内メッセージ機能の追加

SDK の導入

LogBase Android SDK を利用するには Android Gradle plugin のバージョンが 2.3.0 以上である必要があります。

1. app/build.gradle の変更

LogBase Android SDK を利用するには app/build.gradle に以下の内容を追加します。

android {
    dataBinding {
        enabled = true
    }
}

repositories {
    maven { url 'https://maven.logbase.jp' }
    maven { url 'https://maven.google.com' } //Android Studio 3.0以降でプロジェクトを生成した場合この行は不要です
    jcenter()
}

dependencies {
    // Android Plugin for Gradle 2.xを利用している場合
    compile('net.p-lucky:logbase-android-sdk:4.0.2@aar') { transitive = true }

    // Android Plugin for Gradle 3.xを利用している場合
    implementation('net.p-lucky:logbase-android-sdk:4.0.2@aar') { transitive = true }
}

最新 LogBase Android SDK

2. logbase.xml をダウンロード

管理画面から logbase.xml をダウンロードし、app/src/main/res/values以下に追加してください。

3. SDK の初期化

アプリを開始して最初に起動されるActivityonCreate()で初期化します。また、onNewIntent()LogPush#onNewIntent()を呼び出します。

import net.p_lucky.logbase.init.LogBaseInitializer;
import net.p_lucky.logbase.init.LogBaseParams;
import net.p_lucky.logbase.init.LogBaseServices;

public class MainActivity extends AppCompatActivity {

  LogBaseServices services;

  @Override
  public void onCreate(Bundle savedInstanceState) {
      // ...

      // 初期化
      services = LogBaseInitializer.initialize(this);

      // ...
  }

  @Override
  protected void onNewIntent(Intent intent) {
      super.onNewIntent(intent);
      services.logPush().onNewIntent(intent);
  }
}

Google Play 開発者サービスの必要性

アプリをインストールしたユーザの端末が下記の場合、LogBase によるプッシュ通知の配信が行えません。

  • Google Play 開発者サービスがインストールされていない
  • インストールされている Google Play 開発者サービスのバージョンが古い

確実にユーザへプッシュ通知を配信したい場合には、Google Play 開発者サービスのインストールないし更新を促すメッセージを端末のユーザに表示しましょう。

Android.Intent.Category.LAUNCHER を指定した<activity>が複数ある場合

通知をタップしたときに起動する Activity は、AndroidManifest.xml で最も上に書かれたものになります。
また、アプリのユーザが AndroidManifest.xml で最も上に書かれたもの以外の android.intent.category.LAUNCHER を指定した<activity>からアプリを起動した際には LogBase のデバイス登録やタグ付けなどが行われない可能性があります。

4. データ送信の確認

  1. SDK を導入したアプリを動作確認デバイスにインストールします。
    なお、シミュレータ環境では正しく SDK の動作確認ができません。
  2. SDK を導入しているアプリを起動させます。
    動作確認デバイスがインターネットに接続できていることを確認してください。
  3. 動作確認デバイスのホームボタンを押してアプリをバックグラウンドへ送ります。
    これにより、SDK からデータが LogBase に送信されます。
  4. LogBase にログインし、ホーム画面で SDK を導入しているアプリを選択します。
  5. 「設定」→「登録デバイス」にて、デバイスが追加登録されていることを確認します。
  6. 「設定」→「登録タグ」にて OS などのタグに最新の値が登録されていることを確認します。
    タグが自動的に登録されるまでには少し時間がかかります。30 分経過しても登録されない場合には、うまく送信できていない可能性が高いです。

プッシュ通知機能の追加

1. Firebase の導入

LogBase でプッシュ通知機能を利用するには Firebase のセットアップを行う必要があります。

プロジェクトの作成

Firebase Console よりプロジェクトを新規で追加します。

サーバーキーの登録

作成したプロジェクトで「プロジェクトの設定」を選択します。

「クラウド メッセージング」タブを選択し、表示されたページからサーバーキーのトークンをコピーしてください。

LogBase 管理画面の「設定」→「プッシュ通知証明書」を選択し、Android プッシュ通知証明書の欄の「編集」ボタンを押します。 開いたモーダルの入力欄に上でコピーしたトークンをペーストし「保存」ボタンを押してください。

なお、サーバーキーが有効になるまで 5 分程度かかることがあるため、エラーが出る場合は時間をおいて再度お試しください。

アプリへの Firebase の導入

プロジェクト画面に行きアンドロイドアイコンをクリックしてください android-push-5
すると、モーダルが出現するので指示に従ってアプリへ Firebase を導入してください android-push-6

Firebase 導入の公式ドキュメント

2. プッシュ通知機能のコードを追加する

AndroidManifest.xml を編集する

次の内容をapp/src/main/AndroidManifest.xmlapplicationタグの子要素として追加します。

<service android:name="net.p_lucky.logpush.LogBaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

3. プッシュ通知機能の確認

  1. 「配信と分析」→「プッシュ通知」→「テスト配信」から配信を行ない、通知が届くことを確認します。
    テスト配信はプッシュ通知環境が「開発」のデバイスにのみ届きます。SDK を導入したアプリをデバッグビルドしてから利用してください。

確認できない場合、アプリケーションのログにエラーが出てないかを確認し、もう一度設定を確認した上で、お問い合わせください。

アプリ内メッセージ機能の追加

1. イベントの登録

アプリ内メッセージを表示させたいタイミングでイベントを登録します。 任意のタイミングで logEvent をイベント名などを指定して呼び出します。

// LogBaseServices インスタンスの logEvent() を呼び出しします。
// MainActivity 以外で LogBaseServices インスタンスを取得したい場合、初期化時と同様に LogBaseInitializer.initialize()を呼ぶことで取得できます。
LogBaseServices logbase = LogBaseInitializer.initialize();

// イベント名だけで設定
logbase.logEvent("event1");

イベント名(上記例の”event1”など)は、SDK を導入したアプリから上記のコードが呼ばれたのち、 自動的に登録され管理画面上で確認できます。 イベント登録の詳細

2. アプリ内メッセージ機能の確認

  1. アプリ内メッセージを表示させたいタイミングでイベントを登録します。

  2. 「設定」→「登録イベント」にて、イベントが登録されていることを確認します。イベントが自動的に登録されるまでには少し時間がかかります。30 分経過しても登録されない場合には、うまく送信できていない可能性が高いです。

  3. 「配信と分析」→「アプリ内メッセージ」→「配信ルールと配信」→「配信ルールをあらたに登録する」より、アプリ内メッセージの新規作成を行います。 頻度を「条件に合う毎に表示」に、ステータスを「稼働」に設定しましょう。

    アプリ内メッセージを表示したいイベントが選択できない場合、SDK から該当するイベントが送信されているかを「設定」→「登録イベント」にて確認してください。

  4. SDK を組み込んだアプリを実行して先ほどのイベントを呼び出し、アプリ内メッセージが表示されることを確認します。 配信ルールの反映までに 15 分程度かかる可能性がありますので、少し待ってからお試しください。

    確認できない場合、アプリケーションのログにエラーが出てないかを確認し、もう一度設定を確認した上で、お問い合わせください。