このガイドでは、Facebook SDKを統合して、それからこれらのイベントを記録することによって、新規または既存のアプリのアプリイベントを追加する方法について説明します。
Facebook SDKを統合すると、特定のアプリイベントは、アプリイベントの自動記録を無効にしない限り、イベントマネージャのために自動的に記録、収集されます。これは、アプリコードで変更できます。また、アプリダッシュボードかイベントマネージャの[アプリイベント]の下のトグルで切り替えることもできます。AutoLogAppEventsEnabledのフラグとトグルとの間で値が競合している場合、「Facebook SDKの自動イベント記録」のトグル値が優先されることに注意してください。収集される情報やアプリイベントの自動記録を無効にする方法については、アプリイベントの自動記録をご覧ください。
アプリでイベントをトラッキングする方法は3とおりあります。
Facebook SDKを使用すると、イベントの自動記録を無効にしない限り、アプリの特定のイベントは自動的に記録、収集されます。これらのイベントは、ターゲット設定、効果測定、最適化などあらゆるユースケースに関係するものです。具体的には、アプリのインストール、アプリの起動、購入という3つの主要イベントが自動で記録されます。自動記録が有効である場合、広告主はこれらのイベントや、ログインインプレッションイベントなどほかのFacebook内部イベントを無効化できます。一方、自動記録を無効にした場合に、インストールや購入などの特定のイベントを記録するには、アプリのそれらのイベントの記録を手動で実装します。
| イベント | 詳細 |
|---|---|
アプリインストール | 新しい利用者がアプリを初めてアクティベートしたとき、または特定のデバイスでアプリが初めて起動されたとき。 |
アプリの起動 | 利用者がアプリを起動し、Facebook SDKが初期化されてイベントがログに記録されたとき。ただし、最初のアプリの起動イベントから60秒以内に2回目のアプリの起動イベントが発生した場合、2回目のイベントは記録されません。 Android用Facebook SDKバージョン4.18以前では、SDKを手動で初期化する必要があり、本ドキュメントの手動によるイベント記録プロセスとは異なる処理になります。SDKを最新バージョンにアップグレードするか、従来のSDKの初期化のセクションまでスクロールして手動でイベントを追加してください。 |
アプリ内購入 | Google Playで処理された購入が完了した際に自動でログを記録します。ほかの支払いプラットフォームを使用している場合、購入イベントコードを手動で追加してください。 アプリ内購入イベントが自動的に記録されていることを確認するには、アプリダッシュボードの[Basic (基本設定)] > [Settings Android card (Androidカードの設定)]に移動します。 Android用SDKは現在、Google Play Billingライブラリのv2〜v7に対応しています。 注: アプリ内購入を使用してダイナミック広告のコンバージョンを測定したい場合は、Apple App StoreまたはGoogle Playストアの製品IDを、関連するダイナミック広告で使用する製品IDと同じものに設定してください。 |
アプリ内サブスクリプションとトライアル開始 | Google Playで処理されたサブスクリプション(またはトライアル開始)が購入された際に自動でログを記録します。Google Play Billingライブラリのv5からv7では、アプリ内サブスクリプション/トライアル開始の自動記録がサポートされています。この機能を有効にするには、(上記の)アプリ内購入を有効にし、こちらの手順に従ってください。 |
Facebook SDKクラッシュレポート (Facebookでの使用限定。) | Facebook SDKが原因でアプリがクラッシュした場合、クラッシュレポートが生成されて、アプリの再起動時にFacebookに送られます。このレポートは、ユーザーデータを含んでおらず、FacebookがSDKの品質と安定性を確認する上で役立ちます。このイベントの記録をオプトアウトするには、自動で記録されるイベントを無効にしてください。 |
Facebook SDK ANRレポート (Facebookでの使用限定。) | Facebook SDKが原因でアプリにANR (Application Not Responding)が発生した場合、ANRレポートが生成されて、アプリの再起動時にFacebookに送られます。このレポートは、ユーザーデータを含んでおらず、FacebookがSDKの品質と安定性を確認する上で役立ちます。このイベントの記録をオプトアウトするには、自動で記録されるイベントを無効にしてください。 |
自動で記録されるイベントを無効にするには、AndroidManifest.xmlファイルに以下を追加します。
<application> ... <meta-data android:name="com.facebook.sdk.AutoLogAppEventsEnabled" android:value="false"/> ... </application>
ユーザーの同意を得たり法的な義務を履行したりする場合など、状況によっては、自動的に記録されるイベントの収集を無効にするのではなく、単に遅らせたいことがあります。その場合、エンドユーザーの同意を得た後で、FacebookSDKクラスのsetAutoLogAppEventsEnabled()メソッドを呼び出してtrueに設定し、イベントの記録を再度有効化します。
setAutoLogAppEventsEnabled(true);
何らかの理由で記録を再度中断するには、setAutoLogAppEventsEnabled()メソッドをfalseに設定します。
setAutoLogAppEventsEnabled(false);
アプリ内購入イベントの自動イベント記録は、アプリダッシュボードを使って無効にすることもできます。[基本] >[設定]の下の[Androidカード]に移動してスイッチを[No]に切り替えます。
SDKの自動初期化を無効にするには、AndroidManifest.xmlファイルに以下を追加します。
<application> ... <meta-data android:name="com.facebook.sdk.AutoInitEnabled" android:value="false"/> ... </application>
ユーザーの同意を得たり法的な義務を履行したりする場合など、状況によっては、SDKの初期化を無効にするのではなく、単に遅らせたいことがあります。その場合、エンドユーザーの同意を得た後で、setAutoInitEnabledクラスメソッドを呼び出してtrueに設定し、手動でSDKを初期化します。
FacebookSdk.setAutoInitEnabled(true) FacebookSdk.fullyInitialize()
advertiser-idの収集を無効にするには、AndroidManifest.xmlファイルに以下を追加します。
<application> ... <meta-data android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled" android:value="false"/> ... </application>
ユーザーの同意を得たり法的な義務を履行したりする場合など、状況によっては、advertiser_idの収集を無効にするのではなく、単に遅らせたいことがあります。その場合、エンドユーザーの同意を得た後で、FacebookSDKクラスのsetAdvertiserIDCollectionEnabled()メソッドを呼び出してtrueに設定し、advertiser_idの収集を再度有効化します。
setAdvertiserIDCollectionEnabled(true);
何らかの理由で収集を中断するには、setAdvertiserIDCollectionEnabled()メソッドをfalseに設定します。
setAdvertiserIDCollectionEnabled(false);
ヘルパーメソッドを使ってAppEventsLoggerオブジェクトを作成し、イベントを記録します。ここで、thisはメソッドが指定されているActivityです。
AppEventsLogger logger = AppEventsLogger.newLogger(this);
そうすると、イベントをloggerに記録できます。ここで、AppEventConstants.EVENT_NAME_Xは標準イベントの表に示されている定数のいずれか、またはコードジェネレーターで生成されたコードになります。
logger.logEvent(AppEventsConstants.EVENT_NAME_X);
また、一連のパラメーターをBundleとvalueToSumプロパティに指定することもできます。後者は、何らかの値を表す任意の数になります(価格や数量など)。レポート作成時には、すべてのvalueToSumプロパティが合計されます。例えば、10人がそれぞれ10ドルのアイテムを購入する(値がvalueToSumに渡される)と、価格が合計されて100ドルとしてレポートされます。
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT, "[{\"id\": \"1234\", \"quantity\": 2}, {\"id\": \"5678\", \"quantity\": 1}]");
logger.logEvent(AppEventsConstants.EVENT_NAME_PURCHASE,
54.23,
params);
Bundle params = new Bundle();
params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "USD");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_TYPE, "product");
params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, "HDFU-8452");
logger.logEvent(AppEventsConstants.EVENT_NAME_ADDED_TO_CART,
54.23,
params);カスタムイベントを記録するには、イベントの名前を文字列として渡すだけです。この機能は、ロガーがAppEventsLoggerのインスタンスであり、AppEventsLogger.newLogger()呼び出しを使って作成されていることを想定しています。
public void logBattleTheMonsterEvent () {
logger.logEvent("BattleTheMonster");
}各イベントはvalueToSumと一連のパラメーター(最大25個)とともに記録できます。これらのパラメーターはBundle経由で渡されます。ここで、キーにはパラメーター名、値にはStringとintのいずれかが入ります。これら以外の、booleanのような互換性のない値を指定すると、SDKによってLogginBehavior.APP_EVENTに警告が記録されます。
標準イベントパラメーターのリファレンスガイドで、標準イベントで一般的に使われるパラメーターを参照してください。これらのパラメーターはガイド目的で提供されています。独自のパラメーターを指定することもできます。
アプリイベントを使ってダイナミック広告のコンバージョンを測定する場合は、fb_content_idパラメーターを関連するダイナミック広告で使う製品IDの値に設定してください。
パラメーターの名前を「event」にしないでください。「event」という名前のカスタムパラメーターは、記録されません。別の名前を使うか、my_custom_eventのように接頭部または接尾部を名前に追加してください。
アプリ広告ヘルパーを使用すると、アプリのアプリイベントをテストして、アプリがFacebookにイベントを送信していることを確認できます。
デバッグの記録を有効にして、クライアント側のアプリイベント使用状況を確認します。デバッグのログには、詳細なリクエストとJSON応答が記録されます。Android用Facebook SDKを初期化した後で、次のコードを追加してデバッグのログを有効にします。
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
これはデバッグ目的でのみ使用します。デバッグのログは、アプリを公開する前に無効にしてください。
アプリイベントの詳細と役立つヒントについては、以下を参照してください。
さまざまな種類のアプリを例示して、アプリイベントの使い方を紹介しています。アプリの各例では、さまざまなイベントをコードサンプル付きで画面ごとに詳しく説明しています。これらの例はアプリ開発の起点として参考にするものであり、カスタマイズして使ってください。