本指南介绍如何使用 Unity 版 Facebook SDK 为新旧应用添加应用事件。
Unity 版 Facebook SDK 提供的辅助方法 FB.ActivateApp 可用于记录应用启动事件。您需要先使用 FB.Init 初始化此 SDK,才能调用 FB.ActivateApp。
使用 MonoBehavior 的 Awake 函数来记录用户何时启动应用。
void Awake ()
{
if (FB.IsInitialized) {
FB.ActivateApp();
} else {
//Handle FB.Init
FB.Init( () => {
FB.ActivateApp();
});
}
}使用 MonoBehavior 的 OnApplicationPause 函数来记录用户何时重新使用应用。
// Unity will call OnApplicationPause(false) when an app is resumed
// from the background
void OnApplicationPause (bool pauseStatus)
{
// Check the pauseStatus to see if we are in the foreground
// or background
if (!pauseStatus) {
//app resume
if (FB.IsInitialized) {
FB.ActivateApp();
} else {
//Handle FB.Init
FB.Init( () => {
FB.ActivateApp();
});
}
}
}以下代码示例展示如何手动记录事件。
在此示例中,priceCurrency 是字符串,包含代表所用货币的 3 个字母 ISO code;priceAmount 是 float,包含所购买商品的价格;packageName 是字符串,包含所购买商品的 SKU code。
var iapParameters = new Dictionary<string, object>(); iapParameters["mygame_packagename"] = packageName; FB.LogPurchase( priceAmount, priceCurrency, iapParameters );
在第二个示例中,我们追踪用户在游戏中花费的点数数量。numGold 是 float,包含所花费的点数数量;storeItem 是字符串,包含用户所购买商品的名称。
var softPurchaseParameters = new Dictionary<string, object>(); softPurchaseParameters["mygame_purchased_item"] = storeItem; FB.LogAppEvent( Facebook.Unity.AppEventName.SpentCredits, (float)numGold, softPurchaseParameters );
Unity 版 SDK 默认启用自动记录事件功能。如要禁用/启用自动记录事件功能,请前往 Unity IDE 菜单栏中的 Facebook -> 编辑设置,然后选择/取消选择应用事件设置部分下方的自动记录应用事件。
您可以通过将 Fb.Mobile 的 SetAutoLogAppEventsEnabled() 方法设置为 false,从而以编程方式禁用自动记录事件功能。
FB.Mobile.SetAutoLogAppEventsEnabled(false);
在有些情况下,您可能希望在获得终端用户同意后,重新启用自动记录事件功能。您可以通过将 SetAutoLogAppEventsEnabled() 方法设置为 true 来执行此操作。
FB.Mobile.SetAutoLogAppEventsEnabled(true);
Unity 版 SDK 默认启用广告主编号收集功能。如要禁用/启用广告主编号收集功能,请前往 Unity IDE 菜单栏中的 Facebook -> 编辑设置,然后选择/取消选择应用事件设置部分下方的广告主编号收集功能。
您可以通过将 Fb.Mobile 的 SetAdvertiserIDCollectionEnabled () 方法设置为 false,从而以编程方式禁用广告主编号收集功能。
FB.Mobile.SetAdvertiserIDCollectionEnabled (false);
在有些情况下,您可能希望在获得终端用户同意后,重新启用广告主编号收集功能。您可以通过将 SetAdvertiserIDCollectionEnabled() 方法设置为 true 来执行此操作。
FB.Mobile.SetAdvertiserIDCollectionEnabled (true);