FBSDKAppEvents 是 FB SDK 中用来处理和上报应用内事件的类。它支持多种预定义的事件,也支持自定义事件。通过这些事件,你可以收集用户行为数据,并向 FB 报告这些数据,用于广告优化、转化跟踪、受众分析等。
FBSDKAppEvents 类
该类是 FB SDK 提供的用于记录应用内事件的核心类。它允许你跟踪应用中的用户行为(如购买、登录等),并且将这些行为数据发送给 FB 服务器,用于分析和广告优化。
@interface FBSDKAppEvents : NSObject <
FBSDKEventLogging, // 事件日志记录协议
FBSDKAppEventsConfiguring, // 配置事件的协议
FBSDKApplicationActivating, // 应用激活协议
FBSDKApplicationLifecycleObserving, // 观察应用生命周期的协议
FBSDKApplicationStateSetting, // 设置应用状态协议
FBSDKSourceApplicationTracking, // 追踪来源应用协议
FBSDKUserIDProviding // 提供用户 ID 协议
>
属性
shared- 获取共享实例
@property (class, nonatomic, readonly, strong) FBSDKAppEvents *shared;
该属性是 FBSDKAppEvents 类的共享实例,用于获取唯一的全局实例。在大多数情况下,你会通过 AppEvents.shared 或 FBSDKAppEvents.shared 来访问这个实例。
flushBehavior- 控制事件刷新行为
@property (nonatomic) FBSDKAppEventsFlushBehavior flushBehavior;
该属性用于设置事件的刷新行为(即什么时候将缓存的事件数据发送到 FB 服务器)。可以设置为不同的刷新策略,如立即刷新、批量刷新或延时刷新。
loggingOverrideAppID- 用于设置覆盖的 App ID,用于区分登录与应用事件日志记录。
@property (nullable, nonatomic, copy) NSString *loggingOverrideAppID;
说明:
- 功能:此属性用于设置“覆盖”的 FB 应用 ID,专门用于应用事件(App Event)日志记录。在某些情况下,应用程序可能希望使用一个 FB 应用 ID 进行登录和社交互动,而使用另一个 FB 应用 ID 来记录应用事件。例如,如果同一公司有多个应用程序共享一个登录用的 App ID,但希望为每个应用程序分别记录不同的事件数据时,就可以使用该属性。
- 默认行为:该属性默认为 nil,即默认情况下,SDK 会使用
FBSDKAppEventsOverrideAppIDBundleKeyplist 中的值。如果 plist 中没有设置该值,则使用Settings.shared.appID。 - 使用时机:此属性应该在任何
AppEvents调用之前进行设置,通常在应用的application(_:didFinishLaunchingWithOptions:)方法中设置。 适用场景: - 多应用共享 App ID 登录:当多个应用程序共享一个 FB 应用 ID 用于用户登录,但希望分别记录每个应用程序的事件数据时,可以使用
loggingOverrideAppID来指定不同的 App ID。 - 需要区分日志记录的场景:如果开发者需要区分不同应用的事件日志,但这些应用使用相同的登录 App ID,可以通过此属性设置独立的事件记录 ID。
userID- 用于设置与应用事件关联的自定义用户 ID。
@property (nullable, nonatomic, copy) NSString *userID;
说明:
- 功能:该属性用于设置一个自定义的用户 ID,并将该 ID 与所有的应用事件关联。这个用户 ID 会被用来标识应用事件中的用户,并且在事件日志中将持续关联该 ID,直到通过将 nil 赋值来清除它。
- 持久化:该用户 ID 会在应用中持久化存储,直到开发者显式地将其清除。 适用场景:
- 自定义用户标识:如果你有一个自定义的用户标识符(比如用户在你系统中的 ID),你可以通过这个属性将它与应用事件关联起来。
- 用户 ID 持久化:如果你希望记录用户的跨会话行为,可以使用该属性来持久化用户的 ID,以便于在后续的应用事件中持续使用相同的 ID。
anonymousID- 是由 SDK 自动生成的匿名 ID,用于设备级别的用户标识和行为追踪。
@property (nonatomic, readonly) NSString *anonymousID;
说明:
- 功能:该属性返回一个由 SDK 生成的匿名 ID,它与应用当前的安装实例相关联。每个用户的设备在安装应用时会生成一个唯一的匿名 ID。
- 持久化:这个匿名 ID 会随着应用的安装而被持久化存储。如果用户卸载并重新安装应用,匿名 ID 将会被重新生成。 适用场景:
- 匿名用户跟踪:当应用尚未要求用户登录时,你可以使用这个匿名 ID 来跟踪用户的行为。它帮助开发者识别每个设备上的唯一用户(即使没有登录)。
- 跨会话跟踪:匿名 ID 可以在用户没有登录的情况下,追踪用户的行为,尤其适用于那些只通过匿名方式使用应用的用户。
方法
logEvent:- 记录事件
- (void)logEvent:(NSString *)eventName;
该方法用于记录一个简单的事件。eventName 是事件的名称,最大长度为 40 个字符。你可以用它来记录应用中的行为事件(如用户登录、购买等)。
参数说明:
eventName: 要记录的事件名称(例如 "Purchase", "LevelUp" 等)。
logEvent:valueToSum:- 记录带数值的事件
- (void)logEvent:(NSString *)eventName valueToSum:(double)valueToSum;
该方法用于记录带数值的事件。valueToSum 通常用于聚合数值型事件,如购买金额或得分等。
参数说明:
eventName: 要记录的事件名称(例如 "Purchase", "LevelUp" 等)。valueToSum: 事件的数值,例如购买金额、得分等。
logEvent:parameters:- 记录带参数的事件
- (void)logEvent:(NSString *)eventName parameters:(NSDictionary<NSString *, id> *)parameters;
该方法用于记录带有额外参数的事件,允许你传递一些键值对来描述事件的具体内容(例如用户的级别、购买的物品等)。
参数说明:
eventName: 要记录的事件名称(例如 "Purchase", "LevelUp" 等)。parameters: 事件的附加参数,使用字典传递键值对。例如 {@"level": @"5", @"userType": @"premium"}。
logEvent:valueToSum:parameters:- 记录事件名称、数值和参数字典
- (void)logEvent:(FBSDKAppEventName)eventName
valueToSum:(double)valueToSum
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters;
// 记录一个包含金额和额外信息的事件
NSDictionary *parameters = @{@"productID": @"12345", @"category": @"electronics"};
[self logEvent:@"Purchase" valueToSum:100.0 parameters:parameters];
该方法用于记录一个事件,除了事件名称外,还可以附带一个数值(进行聚合)和一个参数字典(提供更多的上下文)。这是一个组合型的方法,适用于需要同时记录数值和额外数据的事件。
参数说明:
eventName: 要记录的事件名称(例如 "Purchase", "LevelUp" 等)。valueToSum: 数值型参数,表示与其他相同事件名称的事件进行聚合的数值。parameters: 事件的附加参数,使用字典传递键值对,可以为空。。例如 {@"level": @"5", @"userType": @"premium"}。
logEvent:valueToSum:parameters:accessToken:- 记录事件名称、数值、参数字典,并指定访问令牌
- (void)logEvent:(FBSDKAppEventName)eventName
valueToSum:(nullable NSNumber *)valueToSum
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters
accessToken:(nullable FBSDKAccessToken *)accessToken;
// 记录一个事件,并将其与特定用户的访问令牌关联
NSDictionary *parameters = @{@"productID": @"12345"};
FBSDKAccessToken *accessToken = [FBSDKAccessToken currentAccessToken];
[self logEvent:@"Purchase" valueToSum:@100.0 parameters:parameters accessToken:accessToken];
该方法用于记录一个事件,包含事件名称、数值、附加参数以及一个可选的访问令牌。访问令牌允许你将该事件与特定用户关联,并在用户授权下进行日志记录。
参数说明:
eventName: 要记录的事件名称(例如 "Purchase", "LevelUp" 等)。valueToSum: 数值型参数,表示与其他相同事件名称的事件进行聚合的数值(可以为空)。parameters: 事件的附加参数,使用字典传递键值对,可以为空。。例如 {@"level": @"5", @"userType": @"premium"}。accessToken: 一个可选的FBSDKAccessToken,用于将事件与特定用户的 FB 账户关联。如果提供访问令牌,事件将作为该用户的事件进行记录。
logPurchase:currency:- 记录指定金额和货币的购买事件
- (void)logPurchase:(double)purchaseAmount currency:(NSString *)currency
NS_SWIFT_NAME(logPurchase(amount:currency:));
[self logPurchase:100.0 currency:@"USD"];
记录一次购买事件,包含购买金额和货币类型。这个方法不会附加额外的参数。
参数说明:
purchaseAmount: 购买的金额(double类型)。这个值会四舍五入到小数点后三位(例如:12.34567 会变成 12.346)。currency: 购买使用的货币,类型为字符串(例如:"USD"、"EUR"、"GBP" 等)。使用符合 ISO-4217 标准的货币代码。
logPurchase:currency:parameters:- 记录购买金额、货币以及附加参数
- (void)logPurchase:(double)purchaseAmount
currency:(NSString *)currency
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters
NS_SWIFT_NAME(logPurchase(amount:currency:parameters:));
// 记录购买事件,并添加额外的参数(例如产品ID、类别等),提供更详细的事件数据。
NSDictionary *parameters = @{@"productID": @"12345", @"category": @"electronics"};
[self logPurchase:100.0 currency:@"USD" parameters:parameters];
记录一次购买事件,包含购买金额、货币类型和附加的参数信息。这些附加参数可以是购买的额外特征(例如商品类别、数量等)。
参数说明:
purchaseAmount: 购买的金额(double类型)。这个值会四舍五入到小数点后三位(例如:12.34567 会变成 12.346)。currency: 购买使用的货币,类型为字符串(例如:"USD"、"EUR"、"GBP" 等)。使用符合 ISO-4217 标准的货币代码。parameters: 一个字典,包含购买事件的额外信息(如商品ID、产品类型等)。字典的键是NSString类型,值可以是NSString或NSNumber类型。
logPurchase:currency:parameters:accessToken:- 记录购买金额、货币、附加参数,并指定访问令牌
- (void)logPurchase:(double)purchaseAmount
currency:(NSString *)currency
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters
accessToken:(nullable FBSDKAccessToken *)accessToken
NS_SWIFT_NAME(logPurchase(amount:currency:parameters:accessToken:));
// 记录购买事件,并将该事件与指定的用户(通过 accessToken)关联,适用于需要用户身份信息的场景。
NSDictionary *parameters = @{@"productID": @"12345", @"category": @"electronics"};
FBSDKAccessToken *accessToken = [FBSDKAccessToken currentAccessToken];
[self logPurchase:100.0 currency:@"USD" parameters:parameters accessToken:accessToken];
记录一次购买事件,包含购买金额、货币类型和附加的参数信息。这些附加参数可以是购买的额外特征(例如商品类别、数量等)。
参数说明:
purchaseAmount: 购买的金额(double类型)。这个值会四舍五入到小数点后三位(例如:12.34567 会变成 12.346)。currency: 购买使用的货币,类型为字符串(例如:"USD"、"EUR"、"GBP" 等)。使用符合 ISO-4217 标准的货币代码。parameters: 一个字典,包含购买事件的额外信息(如商品ID、产品类型等)。字典的键是NSString类型,值可以是NSString或NSNumber类型。accessToken: 一个可选的FBSDKAccessToken,用于将事件与特定用户账户关联。若传入,事件将记录为该用户的事件。
说明:
- 四舍五入处理:所有的购买金额都会在传递给方法之前进行四舍五入,保留到小数点后三位。这是为了确保金额数据的精确性。
- 货币类型:currency 字符串必须符合 ISO-4217 标准,用于表示不同的货币类型(例如 USD、EUR、GBP)。这对于全球化应用非常重要,确保事件数据的一致性和准确性。
- 附加参数:parameters 是一个字典,允许你在记录购买事件时添加更多详细信息,如产品ID、购买类别等。这些数据可以帮助你分析和优化广告投放、购买行为等。
- 访问令牌:accessToken 是可选的,它可以将购买事件与特定用户的 FB 账户关联,这在个性化广告和分析中非常有用。
logPushNotificationOpen:- 记录推送通知打开事件
- (void)logPushNotificationOpen:(NSDictionary<NSString *, id> *)payload
NS_SWIFT_NAME(logPushNotificationOpen(payload:));
// 记录一个事件,表示应用通过推送通知被打开。
NSDictionary *payload = ...; // 推送通知的载荷
[self logPushNotificationOpen:payload];
这个方法用于记录当应用通过推送通知被打开时的事件。
参数说明:
payload: 通过UIApplicationDelegate接收到的通知载荷,它包含了推送通知的详细信息。
logPushNotificationOpen:action:- 这个方法除了记录应用打开外,还记录了用户从推送通知中采取的特定操作。
- (void)logPushNotificationOpen:(NSDictionary<NSString *, id> *)payload action:(NSString *)action
NS_SWIFT_NAME(logPushNotificationOpen(payload:action:));
// 记录一个事件,表示应用通过推送通知被打开并且执行了一个自定义操作。
NSDictionary *payload = ...; // 推送通知的载荷
NSString *action = @"view"; // 例如,“查看”操作
[self logPushNotificationOpen:payload action:action];
这个方法用于记录当应用通过推送通知被打开时的事件。还记录了用户从推送通知中采取的特定操作。
参数说明:
payload: 通过UIApplicationDelegate接收到的通知载荷,它包含了推送通知的详细信息。action: 用户采取的操作名称(例如“查看”、“购买”等)。
logProductItem: availability:- 记录产品项事件
- (void)logProductItem:(NSString *)itemID
availability:(FBSDKProductAvailability)availability
condition:(FBSDKProductCondition)condition
description:(NSString *)description
imageLink:(NSString *)imageLink
link:(NSString *)link
title:(NSString *)title
priceAmount:(double)priceAmount
currency:(NSString *)currency
gtin:(nullable NSString *)gtin
mpn:(nullable NSString *)mpn
brand:(nullable NSString *)brand
parameters:(nullable NSDictionary<NSString *, id> *)parameters
NS_SWIFT_NAME(logProductItem(id:availability:condition:description:imageLink:link:title:priceAmount:currency:gtin:mpn:brand:parameters:));
// 记录一个事件,上传产品项的详细信息,包括库存、描述、价格等。
[self logProductItem:@"12345"
availability:FBSDKProductAvailabilityInStock
condition:FBSDKProductConditionNew
description:@"一款很棒的产品"
imageLink:@"http://example.com/product.jpg"
link:@"http://example.com/product"
title:@"产品标题"
priceAmount:99.99
currency:@"USD"
gtin:@"123456789012"
mpn:@"MPN12345"
brand:@"品牌名"
parameters:nil];
这个方法用于记录产品项的详细信息,并上传到应用事件系统。
参数说明:
itemID: 产品的唯一标识符。availability: 产品的库存状态(如“有货”、“缺货”、“预售”等)。condition: 产品的状态(如“全新”、“翻新”、“二手”)。description: 产品的简短描述。imageLink: 产品的图片链接。link: 购买该产品的网站链接。title: 产品的标题。priceAmount: 产品的价格。currency: 产品价格的货币类型(如USD、EUR)。gtin, mpn, brand: 可选参数,涉及产品的全球贸易项目编号(GTIN)、制造商产品编号(MPN)和品牌名称。parameters: 可选的深度链接参数。
activateApp- 记录应用激活事件
- (void)activateApp;
// 记录一个事件,表示应用已经被激活,跟踪首次启动和会话信息。
[self activateApp];
这个方法用于记录当应用通过推送通知被打开时的事件。
描述:
- 这个方法用于记录一个“应用激活”事件,表示应用已经被启动。
- 自动行为: 默认情况下,当应用变为活跃状态时(通过
FBSDKApplicationDelegate的applicationDidBecomeActive方法),会自动记录此事件,除非在应用的plist文件中将FacebookAutoLogAppEventsEnabled设置为false。 - 自定义行为: 如果设置了
FacebookAutoLogAppEventsEnabled为false,可以在应用代理的applicationDidBecomeActive方法中手动调用此方法。 - 其他功能:
- 该事件也会跟踪应用是否是第一次启动(有助于用户获取跟踪)。
- 在应用从后台重新激活时,会记录会话时长、中断等指标。
setPushNotificationsDeviceToken:- 设置推送通知设备令牌
- (void)setPushNotificationsDeviceToken:(nullable NSData *)deviceToken;
// 设置并发送设备令牌,以注册应用的推送通知功能。
该方法用于注册应用程序接收推送通知。传入一个设备令牌(deviceToken),它是从 UIApplicationDelegate 中通过 didRegisterForRemoteNotificationsWithDeviceToken 方法获取的设备令牌数据。
参数说明:
deviceToken: 推送通知的设备令牌,以NSData格式传入。
setPushNotificationsDeviceTokenString:- 设置推送通知设备令牌字符串
- (void)setPushNotificationsDeviceTokenString:(nullable NSString *)deviceTokenString;
// 设置并发送设备令牌字符串,以注册应用的推送通知功能。
该方法用于接收推送通知的设备令牌,传入的是一个字符串形式的设备令牌。
参数说明:
deviceTokenString: 设备令牌的字符串表示。
flush- 刷新事件到 FB
- (void)flush;
// 强制将应用内的所有事件立即推送到 FB 服务器。
- 该方法用于强制将所有事件数据刷新到 FB 服务器。这是一个异步方法,但会立即启动。
- 如果发生服务器故障,结果会通过通知
FBSDKAppEventsLoggingResultNotification发送。
requestForCustomAudienceThirdPartyIDWithAccessToken:- 请求 FB 自定义受众的第三方 ID
- (nullable FBSDKGraphRequest *)requestForCustomAudienceThirdPartyIDWithAccessToken:(nullable FBSDKAccessToken *)accessToken;
// 创建请求以获取 FB 用户的自定义受众第三方 ID,用于 FB 广告定向。
- 创建一个请求,调用 FB Graph API 获取指定 FB 用户的自定义受众 "第三方 ID"。
- 该 ID 是 FB 用户的 ID 和调用应用 ID 的加密表示,用于 FB 自定义受众广告的创建。
参数说明:
accessToken: 指定的访问令牌,用于确定用户身份。如果为 nil,则使用AccessToken.current。
setUserEmail:- 设置用户自定义数据
- (void)setUserEmail:(nullable NSString *)email
firstName:(nullable NSString *)firstName
lastName:(nullable NSString *)lastName
phone:(nullable NSString *)phone
dateOfBirth:(nullable NSString *)dateOfBirth
gender:(nullable NSString *)gender
city:(nullable NSString *)city
state:(nullable NSString *)state
zip:(nullable NSString *)zip
country:(nullable NSString *)country;
// 设置自定义用户数据(如电子邮件、电话、出生日期等),以便与应用事件关联。
- 该方法用于设置与应用事件相关的自定义用户数据。这些数据将在 FB 上加密并用于匹配用户。
- 用户数据将持久化,跨应用实例保持一致。
参数说明:
email: 用户的电子邮件。firstName: 用户的名字。lastName: 用户的姓氏。phone: 用户的电话号码。dateOfBirth: 用户的出生日期。gender: 用户的性别。city: 用户所在的城市。state: 用户所在的州(如果适用)。zip: 用户所在的邮政编码。country: 用户所在的国家。
getUserData- 获取用户数据
- (nullable NSString *)getUserData;
// 获取已设置的用户数据。
- 该方法用于获取已设置的用户数据。如果没有设置数据,则返回 nil。
clearUserData- 清除用户数据
- (void)clearUserData;
// 清除已存储的用户数据。
- 该方法用于清除当前存储的所有用户数据。
setUserData:forType:- 设置特定类型的用户数据
- (void)setUserData:(nullable NSString *)data
forType:(FBSDKAppEventUserDataType)type;
// 设置特定类型的用户数据(如电子邮件、电话号码等)用于 FB 匹配。
- 该方法用于为特定类型的用户数据设置值。数据会被加密并用于 FB 匹配用户。
参数说明:
data: 用户数据。type: 数据类型,例如FBSDKAppEventEmail或FBSDKAppEventPhone等,表示数据的具体类型。
clearUserDataForType:- 清除特定类型的用户数据
- (void)clearUserDataForType:(FBSDKAppEventUserDataType)type;
// 清除指定类型的用户数据。
- 该方法用于清除特定类型的用户数据,例如清除电子邮件或电话号码数据。
参数说明:
type: 数据类型,例如FBSDKAppEventEmail或FBSDKAppEventPhone等,表示数据的具体类型。
augmentHybridWebView:- 增强 WebView 支持
- (void)augmentHybridWebView:(WKWebView *)webView;
// 向 WebView 注入 JavaScript 对象,支持 FB Pixel 事件的传递。
- 该方法用于增强混合 Web 应用的 WebView,向其中注入 JavaScript 对象。如果 WebView 内部使用了 FB Pixel,且引用了该应用的 App ID,FB 会自动检测该 JavaScript 对象并通过 AppEvents 框架将 Pixel 事件记录到 FB。
参数说明:
webView: 要增强的WKWebView实例。
setIsUnityInitialized:- Unity 辅助功能
- (void)setIsUnityInitialized:(BOOL)isUnityInitialized;
// 设置 Unity 是否已经初始化。
- 该方法用于设置 Unity 是否已经初始化。
参数说明:
isUnityInitialized: 是否已初始化 Unity,传入布尔值。
sendEventBindingsToUnity:- 将事件绑定发送到 Unity
- (void)sendEventBindingsToUnity;
// 将事件绑定发送到 Unity。
- 该方法用于将事件绑定发送到 Unity,确保 Unity 中的事件可以正确处理。
logInternalEvent:parameters:isImplicitlyLogged:- SDK 内部的事件跟踪,开发者不应直接调用它
- (void)logInternalEvent:(FBSDKAppEventName)eventName
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters
isImplicitlyLogged:(BOOL)isImplicitlyLogged;
// 内部使用,禁止外部调用。
// 此 API 可能会更改或删除,不要使用。
- 这是一个内部方法,用于记录应用内的事件。该方法主要用于 SDK 内部的事件跟踪,开发者不应直接调用它。
- 它可以通过
eventName来指定事件名称,parameters用来附加额外的参数,isImplicitlyLogged用来指示该事件是否是隐式记录的。
参数说明:
eventName: 事件名称,类型为FBSDKAppEventName。parameters: 事件的附加参数,使用字典 (NSDictionary) 格式,键值对用于传递事件相关信息。isImplicitlyLogged: 布尔值,指示事件是否是隐式记录的。
logInternalEvent:parameters:isImplicitlyLogged:accessToken:- 另一个用于记录事件的内部方法,开发者不应直接调用它
- (void)logInternalEvent:(FBSDKAppEventName)eventName
parameters:(nullable NSDictionary<FBSDKAppEventParameterName, id> *)parameters
isImplicitlyLogged:(BOOL)isImplicitlyLogged
accessToken:(nullable FBSDKAccessToken *)accessToken;
// 内部使用,禁止外部调用。
// 此 API 可能会更改或删除,不要使用。
- 这是另一个用于记录事件的内部方法。与上一个方法类似,但这个方法还支持传入 accessToken,用于标识特定 FB 用户(如果需要)。
- 用法与第一个方法类似,但它允许提供一个额外的参数 accessToken,用于指定用户身份。
参数说明:
eventName: 事件名称,类型为FBSDKAppEventName。parameters: 事件的附加参数,使用字典 (NSDictionary) 格式,键值对用于传递事件相关信息。isImplicitlyLogged: 布尔值,指示事件是否是隐式记录的。accessToken: 指定的FBSDKAccessToken,如果提供,事件将与该 FB 用户相关联。
flushForReason:- 刷新或强制推送所有待处理的事件到 FB 服务器,开发者不应直接调用它
- (void)flushForReason:(FBSDKAppEventsFlushReason)flushReason;
- 该方法用于刷新或强制推送所有待处理的事件到 FB 服务器。通常,在某些情况下(例如,完成一组事件记录后),应用会需要手动刷新数据以确保事件被及时处理。
- 通过
flushReason可以指定刷新事件的原因,例如应用进入后台或某些特定事件触发时。
参数说明:
flushReason: 指定刷新事件的原因,类型为FBSDKAppEventsFlushReason,它是一个枚举类型,定义了不同的刷新原因(例如后台、事件处理完成等)。
#枚举解读
FBSDKAppEvents 是 FB SDK 中的一个类,负责记录和管理应用程序的事件,帮助开发者分析用户行为、优化广告投放等功能。该类继承自 NSObject,并遵循多个协议。下面是各个协议的详细解释:
类定义:
NS_SWIFT_NAME(AppEvents)
@interface FBSDKAppEvents : NSObject <
FBSDKEventLogging,
FBSDKAppEventsConfiguring,
FBSDKApplicationActivating,
FBSDKApplicationLifecycleObserving,
FBSDKApplicationStateSetting,
FBSDKSourceApplicationTracking,
FBSDKUserIDProviding
>
各个协议的作用:
- FBSDKEventLogging
- 作用:提供事件记录功能。允许开发者记录自定义的应用事件和标准事件,这些事件可以用于分析用户的行为,帮助提升用户体验或广告优化。例如,记录用户的购买行为、应用内活动等。
- FBSDKAppEventsConfiguring
- 作用:用于配置和管理
FBSDKAppEvents的设置。例如,配置是否启用数据收集、是否启用广告相关事件等。
- FBSDKApplicationActivating
- 作用:该协议提供处理应用激活的功能。当应用启动或从后台进入前台时,会触发与应用激活相关的事件。可以用来统计应用的活跃度,或者进行激活相关的日志记录。
- FBSDKApplicationLifecycleObserving
- 作用:用于观察应用的生命周期事件,如应用启动、进入后台、退出等。这些事件可以帮助开发者理解应用的运行状态,以及用户的活跃情况。
- FBSDKApplicationStateSetting
- 作用:该协议允许设置和管理应用的当前状态,例如应用是否处于活动状态,是否处于后台等。这些状态可以与事件记录一起使用,以便准确追踪事件发生的上下文。
- FBSDKSourceApplicationTracking
- 作用:用于跟踪应用的来源信息。这可以帮助开发者了解用户是如何进入应用的,比如通过点击广告、社交媒体链接、搜索等。这对于分析营销渠道效果很有帮助。
- FBSDKUserIDProviding
- 作用:提供当前用户的唯一标识符(User ID)。这个协议帮助开发者获取到与用户相关的 ID,以便将应用事件与用户的行为数据关联起来。
主要功能总结:
FBSDKAppEvents 类通过这些协议提供了多个功能,使得开发者能够灵活地处理应用事件、生命周期、来源等信息,进而进行精准的分析、优化和广告投放。
通过实现 FBSDKAppEvents,开发者可以:
- 跟踪并记录用户行为事件(如购买、登录等)。
- 配置和定制事件的行为记录。
- 获取应用的生命周期状态(如应用启动、进入后台等)。
- 追踪来源应用,分析流量的来源。
- 获取与用户相关的唯一标识符。
这些功能使得 FBSDKAppEvents 成为 FB SDK 中一个重要的工具,帮助开发者提升应用性能和用户体验。
以下是每个 FB SDK 应用事件参数键(FBSDKAppEventParameterName)的中文注解,逐一说明它们的用法:
- FBSDKAppEventParameterNameContent
- 描述:此参数用于记录有关某个内容的事件信息。例如,可能是某个特定的产品、媒体或服务等。
- FBSDKAppEventParameterNameContentID
- 描述:用于指定某个具体内容的唯一标识符。比如,产品的 ID(如 EAN),文章的标识符,或者根据应用类型可能是其他的 ID。
- FBSDKAppEventParameterNameContentType
- 描述:用于指定与事件相关的内容类型。举例来说,可能是“音乐”、“照片”或“视频”,具体取决于应用的类型和内容。
- FBSDKAppEventParameterNameCurrency
- 描述:用于指定事件中的货币类型。例如,“USD”代表美元,“EUR”代表欧元,“GBP”代表英镑。它遵循 ISO 4217 货币代码标准。
- FBSDKAppEventParameterNameDescription
- 描述:用于指定与事件相关的描述信息。例如,可能描述用户在事件
FBAppEventNameAchievementUnlocked中解锁的成就名称。
- FBSDKAppEventParameterNameLevel
- 描述:用于指定在某些事件中用户达到的级别。例如,在
FBAppEventNameAchievedLevel事件中,可以使用此参数记录玩家的级别或进度。
- FBSDKAppEventParameterNameMaxRatingValue
- 描述:用于指定评分系统的最大值。通常用于事件如
FBAppEventNameRate中,例如可能是“5”表示五星评分,或“10”表示10分制评分。
- FBSDKAppEventParameterNameNumItems
- 描述:用于指定事件中涉及的物品数量。比如,在
FBAppEventNameInitiatedCheckout或FBAppEventNamePurchased事件中,表示用户结账或购买的商品数量。
- FBSDKAppEventParameterNamePaymentInfoAvailable
- 描述:用于指定在
FBAppEventNameInitiatedCheckout事件中,是否已经提供了支付信息。常见的值有FBSDKAppEventParameterValueYes和FBSDKAppEventParameterValueNo,表示是否有支付信息。
- FBSDKAppEventParameterNameRegistrationMethod
- 描述:用于指定用户注册应用的方式。可能的值包括“FB”、 “email”(电子邮件)、 “Twitter”等,帮助跟踪用户通过哪种方式注册应用。
- FBSDKAppEventParameterNameSearchString
- 描述:用于指定用户在应用内进行搜索时输入的搜索词。这有助于了解用户正在寻找什么内容或信息。
- FBSDKAppEventParameterNameSuccess
- 描述:用于表示记录的活动是否成功。通常与
FBSDKAppEventParameterValueYes(成功)和FBSDKAppEventParameterValueNo(失败)一起使用,用来标记事件是否完成或是否成功。
- FBSDKAppEventParameterNameAdType
- 描述:用于指定在
FBSDKAppEventNameAdImpression或FBSDKAppEventNameAdClick事件中广告的类型。例如,可以是“banner”(横幅广告)、“interstitial”(插屏广告)、“rewarded_video”(奖励视频广告)、“native”(原生广告)等。
- FBSDKAppEventParameterNameOrderID
- 描述:用于指定在订阅事件(如
FBSDKAppEventNameSubscribe或FBSDKAppEventNameStartTrial)中,订单的唯一标识符。它用于追踪每个订阅或试用事件。
- FBSDKAppEventParameterNameEventName
- 描述:用于指定事件的名称。每个事件记录时会使用该参数来标识具体的事件类型,例如
FBAppEventNamePurchased表示购买事件。
- FBSDKAppEventParameterNameLogTime
- 描述:用于指定事件的记录时间。此参数帮助在数据分析时标记事件发生的准确时间。
以下是详细解读每个 FB SDK 中的事件枚举 FBSDKAppEventName,并附上相应的注释,帮助理解每个事件的作用及其应用场景。
General Purpose - 通用目的
- FBSDKAppEventNameAdClick
- 事件:用户点击广告时记录此事件。
- 用途:此事件用于记录用户与广告的互动,通常用于广告效果分析。
- 参数:可附带广告相关的额外参数(如广告来源、点击时间等)。
- FBSDKAppEventNameAdImpression
- 事件:用户查看广告时记录此事件。
- 用途:此事件用于记录广告的展示次数(即用户是否看到了广告),通常用于分析广告展示量。
- 参数:可以附带广告展示的详细信息。
- FBSDKAppEventNameCompletedRegistration
- 事件:用户完成注册时记录此事件。
- 用途:该事件在用户完成应用注册流程时触发,用于分析用户注册情况。
- 参数:可以附带用户的注册详情,或应用注册的特定步骤。
- FBSDKAppEventNameCompletedTutorial
- 事件:用户完成应用内教程时记录此事件。
- 用途:该事件通常用于游戏或应用中的教程,记录用户是否完成了引导步骤。
- 参数:可以附带教程的类型或步骤信息。
- FBSDKAppEventNameContact
- 事件:记录用户与业务的联系(如电话、短信、电子邮件、聊天等)。
- 用途:该事件适用于用户与品牌或商家进行沟通的情境。
- 参数:可附带联系的方式、时长等信息。
- FBSDKAppEventNameCustomizeProduct
- 事件:用户在应用中自定义产品时记录此事件。
- 用途:用于记录用户通过定制工具或其他自定义功能调整产品的行为。
- 参数:可以附带定制的产品详情(如颜色、尺寸等)。
- FBSDKAppEventNameDonate
- 事件:用户向组织或慈善捐款时记录此事件。
- 用途:用于记录用户捐款行为,适用于慈善、公益相关应用。
- 参数:可附带捐款金额、捐赠对象等信息。
- FBSDKAppEventNameFindLocation
- 事件:用户通过应用找到某个位置时记录此事件(例如寻找附近商店)。
- 用途:用于记录用户通过应用搜索商店、地点等信息的行为。
- 参数:可附带定位信息、地点名称等。
- FBSDKAppEventNameRated
- 事件:用户对应用内项目进行评分时记录此事件。
- 用途:适用于记录用户评分行为,通常在评分页面中触发。
- 参数:评分值作为
valueToSum参数传递。
- FBSDKAppEventNameSchedule
- 事件:用户预约访问某个地点时记录此事件。
- 用途:适用于记录用户预约、安排某种服务或访问的情境。
- 参数:可附带预约时间、地点等信息。
- FBSDKAppEventNameSearched
- 事件:用户在应用内进行搜索时记录此事件。
- 用途:用于记录用户在应用中执行搜索操作的行为。
- 参数:可附带搜索关键词或搜索结果相关信息。
- FBSDKAppEventNameStartTrial
- 事件:用户开始试用产品或服务时记录此事件。
- 用途:适用于记录用户开始试用某个付费服务或产品(例如,试用订阅)。
- 参数:可附带试用的产品或服务信息。
- FBSDKAppEventNameSubmitApplication
- 事件:用户提交申请时记录此事件(例如,申请信用卡或教育项目)。
- 用途:用于记录用户在应用中提交申请表单的行为。
- 参数:可附带申请的内容、类型等信息。
- FBSDKAppEventNameSubscribe
- 事件:用户开始付费订阅时记录此事件。
- 用途:记录用户订阅服务(如应用订阅、会员订阅)的行为。
- 参数:可附带订阅计划、订阅费用等信息。
- FBSDKAppEventNameViewedContent
- 事件:用户查看某种内容时记录此事件。
- 用途:用于记录用户查看特定内容的行为,例如视频、文章、产品页面等。
- 参数:可以附带内容的标识符、类型等信息。
E-Commerce - 电子商务
- FBSDKAppEventNameAddedPaymentInfo
- 事件:用户添加支付信息时记录此事件。
- 用途:用于记录用户在应用中添加信用卡或支付方式的行为。
- 参数:可附带支付方式的类型、支付信息的细节。
- FBSDKAppEventNameAddedToCart
- 事件:用户将商品添加到购物车时记录此事件。
- 用途:适用于电商应用,记录用户将商品加入购物车的行为。
- 参数:商品的价格作为
valueToSum参数传递。
- FBSDKAppEventNameAddedToWishlist
- 事件:用户将商品添加到愿望清单时记录此事件。
- 用途:适用于电商应用,记录用户对商品感兴趣并添加到愿望清单的行为。
- 参数:商品的价格作为
valueToSum参数传递。
- FBSDKAppEventNameInitiatedCheckout
- 事件:用户开始结账流程时记录此事件。
- 用途:适用于记录用户进入结账环节的行为。
- 参数:购物车总价作为
valueToSum参数传递。
- FBSDKAppEventNamePurchased
- 事件:用户完成交易时记录此事件。
- 用途:记录用户实际完成支付购买商品的行为。
- 参数:交易的总价作为
valueToSum参数传递。
Gaming - 游戏
- FBSDKAppEventNameAchievedLevel
- 事件:用户在游戏中达到新关卡时记录此事件。
- 用途:用于游戏中的等级成就,记录用户达成新关卡的行为。
- 参数:可以附带关卡编号或等级等信息。
- FBSDKAppEventNameUnlockedAchievement
- 事件:用户解锁某个成就时记录此事件。
- 用途:适用于记录用户在游戏中解锁的成就(如特殊任务、奖项等)。
- 参数:可以附带成就的名称或类型。
- FBSDKAppEventNameSpentCredits
- 事件:用户在游戏中消耗积分或虚拟货币时记录此事件。
- 用途:用于记录玩家在游戏中花费虚拟货币或积分的行为。
- 参数:花费的积分数量作为
valueToSum参数传递。