本指南說明如何將應用程式事件加入全新或既有的應用程式,方法是先整合 Facebook SDK,然後記錄這些事件。
整合 Facebook SDK 後,除非停用自動應用程式事件記錄功能,否則系統會自動記錄並蒐集某些應用程式事件,以供事件管理工具使用。您可以在應用程式的程式碼中進行變更,也可以透過應用程式主控板或事件管理工具中的應用程式事件下的切換來進行變更。請注意,如果 AutoLogAppEventsEnabled 標記和切換之間的值發生衝突,我們將遵循「Facebook SDK 的自動事件記錄功能」切換中的值。如需深入瞭解系統會蒐集哪些資訊,以及如何停用自動應用程式事件記錄功能,請參閱自動應用程式事件記錄功能。
有三種方法可以追蹤應用程式中的事件:
使用 Facebook SDK 時,除非停用自動事件記錄功能,否則應用程式中的某些事件會自動記錄並蒐集,以供 Facebook 使用。這些事件與目標設定、成效衡量和最佳化等所有使用案例相關。採用「自動記錄應用程式事件」方法時,系統會蒐集三種主要事件:「應用程式安裝」、「應用程式啟動」和「購買」。啟用自動記錄功能後,廣告商就可以停用這些事件和其他 Facebook 內部事件,例如登入瀏覽事件。不過,如果您已停用自動記錄功能,但仍想記錄安裝或購買事件等特定事件,則可手動在應用程式中記錄這些事件。
| 事件 | 詳細資訊 |
|---|---|
應用程式安裝 | 新用戶第一次啟用應用程式,或第一次在特定裝置上啟動應用程式時。 |
應用程式啟動 | 當用戶啟動您的應用程式時,會初始化 Facebook SDK 並記錄該事件。但是,如果在第一個應用程式啟動事件的 60 秒內發生第二個應用程式啟動事件,則不會記錄第二個應用程式啟動事件。 若使用 Facebook Android SDK v4.18 及較早版本,SDK 初始化是一個手動過程,不同於本文件中描述的手動事件記錄過程。請升級到最新的 SDK 版本或捲動到舊版 SDK 初始化部分,以手動方式新增事件。 |
應用程式內購買 | Google Play 處理的購買交易完成後自動記錄。如果您使用其他付款平台,則需要手動新增購買事件程式碼。 若要驗證系統是否自動記錄應用程式內購買事件,請導覽至應用程式主控板中的基本 > 設定 Android 卡。 Android SDK 目前支援 Google Play 帳單資料庫第 2 版至第 7 版。 注意:如果您想要使用應用程式內購買來衡量動態廣告轉換,請在 Apple App Store 或 Google Play 商店中設定商品編號,使其等同於相關動態廣告中使用的商品編號。 |
應用程式內訂閱和開始試用 | Google Play 處理的訂閱(或開始試用事件)被購買後自動記錄。Google Play 帳單資料庫第 5 版至第 7 版支援自動應用程式內訂閱/開始試用記錄。若要啟用此功能,您必須啟用應用程式內購買(如上),並遵循這些指示。 |
Facebook SDK 當機報告 (僅供 Facebook 使用。) | 如果您的應用程式因 Facebook SDK 而當機,則會產生一份當機報告,並在您的應用程式重新啟動時傳送到 Facebook。此報告不包含用戶資料,有助於 Facebook 確保 SDK 的品質和穩定性。要退出記錄此事件,請停用自動記錄的事件。 |
Facebook SDK ANR 報告 (僅供 Facebook 使用。) | 如果您的應用程式因 Facebook SDK 而有 ANR(應用程式未反應),則會產生一份 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 卡,然後切換開關至否。
要停用自動 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 參數設定為相關動態廣告中使用的商品編號值。
不要使用「事件」作為參數的名稱。將不會記錄名稱為「事件」的自訂參數。請使用其他名稱,或在名稱加上字首或字尾,例如 my_custom_event。
應用程式廣告幫手可用來測試應用程式中的應用程式事件,確保應用程式將事件傳送到 Facebook。
啟用偵錯記錄以從客戶端驗證應用程式事件使用情況。偵錯記錄包含詳細的要求與 JSON 回應。在初始化 Facebook Android SDK 後,透過新增下列代碼來啟用偵錯記錄:
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
這僅供偵錯使用。公開部署應用程式之前,請停用呼叫偵錯記錄。
有關應用程式事件更多資訊和有用提示,請查看:
我們已為不同應用程式類型製作一些範例,向您展示如何使用應用程式事件。每個範例應用程式都透過程式碼範例,提供不同事件逐一畫面解析。請務必注意,這些範例是您應用程式的起點,應由您自訂。