本指南會講解如何透過整合 Facebook SDK 及記錄應用程式事件,以將有關事件加入全新或現有的應用程式。
在您整合 Facebook SDK 後,除非您停用事件自動記錄功能,否則系統會為事件管理工具自動記錄並蒐集特定應用程式事件。您可以在應用程式的程式碼中更改此設定,或者前往應用程式管理中心或事件管理工具中,透過應用程式事件下的切換開關更改此設定。請注意,如果 AutoLogAppEventsEnabled
標示與切換開關的值有所衝突,我們會以「Facebook SDK 自動事件記錄」切換開關的值為準。若要進一步了解系統會蒐集哪些資料,以及如何停用事件自動記錄功能,請參閱應用程式事件自動記錄一文。
在應用程式內追蹤事件的方法有 3 種:
在您使用 Facebook SDK 時,除非您停用了事件自動記錄功能,否則系統會為 Facebook 自動記錄並蒐集特定應用程式事件。這些事件與所有使用案例相關,例如目標指定、成效衡量和優化。應用程式事件自動記錄功能會蒐集 3 種關鍵事件:應用程式安裝、應用程式啟動和購買事件。啟用自動記錄功能時,廣告客戶將可停用這些事件,以及登入展示事件等 Facebook 內部事件。但是,如果您已停用自動記錄功能,但仍希望記錄指定事件(例如安裝或購買事件),您也可以在應用程式手動安裝這些事件的記錄功能。
事件 | 詳細資訊 |
---|---|
安裝應用程式 | 新用戶首次啟用應用程式,或者首次在特定裝置上啟用應用程式。 |
應用程式啟動 | 當用戶啟動應用程式時,Facebook SDK 會初始化,並會記錄事件。但是,如果第二次應用程式啟動事件發生在第一次啟動之後的 60 秒內,第二次應用程式啟動事件便不會被記錄。 在 Facebook Android SDK v4.18 版和以下版本中,SDK 初始化是一種手動程序,與下方所述的手動事件記錄程序不同。請升級至最新版本 SDK 或捲動至舊版 SDK 初始化部分,以便手動新增事件。 |
應用程式內購買 | Google Play 處理交易完畢之時。如果您使用其他付款平台,則要手動新增購買事件程式碼。 如果是已安裝或升級至 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)的問題,則在您重新啟動應用程式時,系統將會產生一份 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 美元。
請注意,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 回應。初始化 Facebook Android SDK 後,加入以下程式碼,即可啟用偵錯記錄:
FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.APP_EVENTS);
此功能僅供偵錯之用。公開發佈應用程式前,請停用偵錯記錄。
如需有關應用程式事件的詳細資訊和實用秘訣,請參閱:
為了向您展示如何使用應用程式事件,我們為不同應用程式類型建立了一些範例。每個應用程式範例都為不同的事件及程式碼範例提供獨立的資料細節畫面解說。請特別注意,這些範例只是入門參考,您應該為自己的應用程式自訂相關設定。