このガイドでは、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により処理される購入が完了したとき。ほかの支払いプラットフォームを使用している場合、購入イベントコードを手動で追加してください。 v4.39をインストールした、またはv4.39にアップグレードしたアプリでは、アプリ内購入の記録が自動的に有効になります。以前のバージョンで実行するアプリについては、アプリダッシュボードの[基本] > [Androidカードの設定]でアプリ内購入イベントを有効にするか、購入イベントコードを手動で追加します。 Android用SDKは現在、Google Play Billing Library v2とv3に対応しています。Google Play Billing Library v4の場合は、アプリ内購入イベントを手動でログする必要があります。 |
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が報告されます。
注:valueToSum
とparameters
のいずれも、使用は任意です。
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
に警告が記録されます。
標準イベントパラメーターのリファレンスガイドで、標準イベントで一般的に使われるパラメーターを参照してください。これらのパラメーターはガイド目的で提供されていますが、独自のパラメーターを指定することもできます。アプリでは、インサイトの内訳を確認したいパラメーターを記録してください。
パラメーターの名前を「event」にしないでください。「event」という名前のカスタムパラメーターは、記録されません。別の名前を使うか、my_custom_event
のように接頭部または接尾部を名前に追加してください。
アプリ広告ヘルパーを使用すると、アプリのアプリイベントをテストして、アプリがFacebookにイベントを送信していることを確認できます。
デバッグの記録を有効にして、クライアント側のアプリイベント使用状況を確認します。デバッグのログには、詳細なリクエストとJSON応答が記録されます。Android用Facebook SDKを初期化した後で、次のコードを追加してデバッグのログを有効にします。
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
これはデバッグ目的でのみ使用します。デバッグのログは、アプリを公開する前に無効にしてください。
アプリイベントの詳細と役立つヒントについては、以下を参照してください。
さまざまな種類のアプリを例示して、アプリイベントの使い方を紹介しています。アプリの各例では、さまざまなイベントをコードサンプル付きで画面ごとに詳しく説明しています。これらの例はアプリ開発の起点として参考にするものであり、カスタマイズして使ってください。