最小チュートリアル for Android
本チュートリアルでは以下を扱います。
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 }
}
2. logbase.xml をダウンロード
管理画面から logbase.xml をダウンロードし、app/src/main/res/values
以下に追加してください。
3. SDK の初期化
アプリを開始して最初に起動されるActivity
のonCreate()
で初期化します。また、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. データ送信の確認
- SDK を導入したアプリを動作確認デバイスにインストールします。
なお、シミュレータ環境では正しく SDK の動作確認ができません。 - SDK を導入しているアプリを起動させます。
動作確認デバイスがインターネットに接続できていることを確認してください。 - 動作確認デバイスのホームボタンを押してアプリをバックグラウンドへ送ります。
これにより、SDK からデータが LogBase に送信されます。 - LogBase にログインし、ホーム画面で SDK を導入しているアプリを選択します。
- 「設定」→「登録デバイス」にて、デバイスが追加登録されていることを確認します。
- 「設定」→「登録タグ」にて OS などのタグに最新の値が登録されていることを確認します。
タグが自動的に登録されるまでには少し時間がかかります。30 分経過しても登録されない場合には、うまく送信できていない可能性が高いです。
プッシュ通知機能の追加
1. Firebase の導入
LogBase でプッシュ通知機能を利用するには Firebase のセットアップを行う必要があります。
プロジェクトの作成
Firebase Console よりプロジェクトを新規で追加します。
サーバーキーの登録
作成したプロジェクトで「プロジェクトの設定」を選択します。
「クラウド メッセージング」タブを選択し、表示されたページからサーバーキーのトークンをコピーしてください。
LogBase 管理画面の「設定」→「プッシュ通知証明書」を選択し、Android プッシュ通知証明書の欄の「編集」ボタンを押します。 開いたモーダルの入力欄に上でコピーしたトークンをペーストし「保存」ボタンを押してください。
なお、サーバーキーが有効になるまで 5 分程度かかることがあるため、エラーが出る場合は時間をおいて再度お試しください。
アプリへの Firebase の導入
2. プッシュ通知機能のコードを追加する
AndroidManifest.xml を編集する
次の内容をapp/src/main/AndroidManifest.xml
のapplication
タグの子要素として追加します。
<service android:name="net.p_lucky.logpush.LogBaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
3. プッシュ通知機能の確認
- 「配信と分析」→「プッシュ通知」→「テスト配信」から配信を行ない、通知が届くことを確認します。
テスト配信はプッシュ通知環境が「開発」のデバイスにのみ届きます。SDK を導入したアプリをデバッグビルドしてから利用してください。
確認できない場合、アプリケーションのログにエラーが出てないかを確認し、もう一度設定を確認した上で、お問い合わせください。
アプリ内メッセージ機能の追加
1. イベントの登録
アプリ内メッセージを表示させたいタイミングでイベントを登録します。 任意のタイミングで logEvent をイベント名などを指定して呼び出します。
- java
// LogBaseServices インスタンスの logEvent() を呼び出しします。
// MainActivity 以外で LogBaseServices インスタンスを取得したい場合、初期化時と同様に LogBaseInitializer.initialize()を呼ぶことで取得できます。
LogBaseServices logbase = LogBaseInitializer.initialize();
// イベント名だけで設定
logbase.logEvent("event1");
イベント名(上記例の”event1”など)は、SDK を導入したアプリから上記のコードが呼ばれたのち、 自動的に登録され管理画面上で確認できます。 イベント登録の詳細
2. アプリ内メッセージ機能の確認
-
アプリ内メッセージを表示させたいタイミングでイベントを登録します。
-
「設定」→「登録イベント」にて、イベントが登録されていることを確認します。イベントが自動的に登録されるまでには少し時間がかかります。30 分経過しても登録されない場合には、うまく送信できていない可能性が高いです。
-
「配信と分析」→「アプリ内メッセージ」→「配信ルールと配信」→「配信ルールをあらたに登録する」より、アプリ内メッセージの新規作成を行います。 頻度を「条件に合う毎に表示」に、ステータスを「稼働」に設定しましょう。
アプリ内メッセージを表示したいイベントが選択できない場合、SDK から該当するイベントが送信されているかを「設定」→「登録イベント」にて確認してください。
-
SDK を組み込んだアプリを実行して先ほどのイベントを呼び出し、アプリ内メッセージが表示されることを確認します。 配信ルールの反映までに 15 分程度かかる可能性がありますので、少し待ってからお試しください。
確認できない場合、アプリケーションのログにエラーが出てないかを確認し、もう一度設定を確認した上で、お問い合わせください。