FB 最新版本SDK事件上传

引言

FBSDKAppEvents 是 Facebook SDK for iOS 中的核心组件,旨在帮助开发者记录应用内事件(如用户行为、购买、推送通知互动等),用于分析和广告优化(如动态广告、转化追踪)。该类支持事件批量发送至 Facebook 服务器,开发者可通过设置控制发送时机,适用于 IAA(应用内广告)和 IAP(应用内购买)的高级投放策略。

属性详解

FBSDKAppEvents 提供了以下关键属性,影响事件记录和发送行为:

  • shared:访问 FBSDKAppEvents 的单例实例,确保全局唯一性。
  • flushBehavior:控制事件发送时机,可设置为自动(如每 100 事件或 15 秒)或仅手动调用 flush 时发送。
  • loggingOverrideAppID:允许设置事件记录的替代 App ID,适用于多应用共享登录但需独立日志的场景,建议在 application:didFinishLaunchingWithOptions: 中设置。
  • userID:自定义用户 ID,与所有事件关联,直至通过 nil 清空,适合跨会话用户追踪。
  • anonymousID:生成的应用安装唯一匿名 ID,用于匿名追踪,持久化于当前安装。

方法分类与详细解读

以下按功能分类详细解读每个方法,包含参数、用法示例及高级投放场景的应用。

基本事件记录

这些方法用于记录自定义事件,支持数值汇总和附加参数,适合追踪用户行为:

  • logEvent:eventName
    • 功能:记录单一事件名,无附加数据。
    • 参数:eventName(FBSDKAppEventName 类型,通常为字符串)。
    • 用法示例:[FBSDKAppEvents logEvent:@"level_up"]; 记录用户升级事件。
    • 投放场景:适合记录简单用户动作,如“搜索”或“分享”,用于分析用户参与度。
  • logEvent:eventName valueToSum:
    • 功能:记录事件并提供可汇总的数值(如总时间或总金额)。
    • 参数:eventName(事件名),valueToSum(double 类型数值)。
    • 用法示例:[FBSDKAppEvents logEvent:@"time_spent" valueToSum:60.0]; 记录用户花费 60 秒。
    • 投放场景:用于计算累计指标,如广告曝光总时长,优化 ROAS(广告支出回报率)。
  • logEvent:eventName parameters:
    • 功能:记录事件并附加参数字典,提供事件上下文。
    • 参数:eventName(事件名),parameters(NSDictionary,键为 FBSDKAppEventParameterName,值为 NSString 或 NSNumber)。
    • 用法示例:[FBSDKAppEvents logEvent:@"purchase" parameters:@{@"item_id": @"123", @"price": @9.99}]; 记录购买详情。
    • 投放场景:适合细分用户行为,如按商品类别分析转化率。
  • logEvent:eventName valueToSum:parameters:
    • 功能:结合数值汇总和参数,记录复杂事件。
    • 参数:同上,增加 valueToSum。
    • 用法示例:[FBSDKAppEvents logEvent:@"purchase" valueToSum:9.99 parameters:@{@"item_id": @"123"}];
    • 投放场景:用于多维度分析,如按价格区间优化广告投放。
  • logEvent:eventName valueToSum:parameters:accessToken:
    • 功能:允许指定访问令牌,适合多用户场景。
    • 参数:增加 accessToken(FBSDKAccessToken,可为 nil)。
    • 用法示例:[FBSDKAppEvents logEvent:@"purchase" valueToSum:@9.99 parameters:@{@"item_id": @"123"} accessToken:token];
    • 投放场景:适用于企业应用,记录不同用户的事件。
购买记录

这些方法专为内购设计,适合 IAP 投放优化,触发即时事件刷新:

  • logPurchase:currency:
    • 功能:记录购买事件,金额和货币必填。
    • 参数:purchaseAmount(double,购买金额),currency(NSString,货币代码,如“USD”)。
    • 用法示例:[FBSDKAppEvents logPurchase:9.99 currency:@"USD"];
    • 投放场景:记录内购转化,优化 CPI(每次安装成本)和 LTV(用户终身价值)。
    • 注意:金额会四舍五入至千分位(如 12.34567 变为 12.346),除非 flushBehavior 设置为显式刷新,否则立即触发事件队列刷新。
  • logPurchase:currency:parameters:
    • 功能:增加参数,提供购买详情。
    • 参数:同上,增加 parameters(NSDictionary)。
    • 用法示例:[FBSDKAppEvents logPurchase:9.99 currency:@"USD" parameters:@{@"item_id": @"123"}];
    • 投放场景:按商品分析购买行为,优化动态广告。
  • logPurchase:currency:parameters:accessToken:
    • 功能:支持指定访问令牌。
    • 参数:同上,增加 accessToken。
  • logFailedStoreKit2Purchase: (iOS 15.0+)
    • 功能:记录 StoreKit 2 购买失败,适用于 iOS 15+ 应用。
    • 参数:productID(NSString,产品 ID)。
    • 用法示例:[FBSDKAppEvents logFailedStoreKit2Purchase:@"product_id"];
    • 投放场景:分析购买失败原因,优化用户体验和转化率。
推送通知记录

用于追踪推送通知互动,适合用户再激活策略:

  • logPushNotificationOpen:payload
    • 功能:记录通过推送通知打开应用。
    • 参数:payload(NSDictionary,通知负载)。
    • 用法示例:[FBSDKAppEvents logPushNotificationOpen:notification.userInfo];
    • 投放场景:分析推送通知效果,提升用户回流率。
  • logPushNotificationOpen:payload action:
    • 功能:记录推送通知中的特定动作。
    • 参数:payload(通知负载),action(NSString,动作名称)。
    • 用法示例:[FBSDKAppEvents logPushNotificationOpen:notification.userInfo action:@"accept"];
    • 投放场景:优化推送内容,按动作分析用户行为。
产品目录记录

适合动态广告投放,上传产品信息:

  • logProductItem:availability:condition:description:imageLink:link:title:priceAmount:currency:gtin:mpn:brand:parameters:
    • 功能:上传产品信息,用于广告展示。
    • 参数:itemID(产品 ID),availability(库存状态),condition(产品状态),description(描述),imageLink(图片链接),link(购买链接),title(标题),priceAmount(价格),currency(货币),gtin/mpn/brand(标识符),parameters(附加参数)。
    • 用法示例:复杂,需按产品详情填写,示例见 Dynamic Ads for Conversions
    • 投放场景:优化产品广告,动态展示库存商品,提升转化。
应用激活
  • activateApp
    • 功能:记录应用激活事件,自动处理“激活”和“停用”事件。
    • 用法示例:[FBSDKAppEvents activateApp]; 通常在 applicationDidBecomeActive: 中调用。
    • 投放场景:追踪用户活跃度,优化广告投放时机。
    • 注意:若 FacebookAutoLogAppEventsEnabled 在 Info.plist 设置为 false,需手动调用。
推送通知注册
  • setPushNotificationsDeviceToken:
    • 功能:设置设备令牌,注册推送通知。
    • 参数:deviceToken(NSData,设备令牌)。
  • setPushNotificationsDeviceTokenString:
    • 功能:以字符串形式设置设备令牌。
    • 参数:deviceTokenString(NSString)。
    • 投放场景:确保推送通知关联正确用户,提升再营销效果。
事件刷新
  • flush
    • 功能:显式刷新事件队列,立即发送至服务器。
    • 用法示例:[FBSDKAppEvents flush]; 适合测试或紧急数据上传。
    • 投放场景:控制数据实时性,优化投放决策。
自定义受众
  • requestForCustomAudienceThirdPartyIDWithAccessToken:
    • 功能:获取第三方 ID,用于创建自定义受众。
    • 参数:accessToken(FBSDKAccessToken,可为 nil)。
    • 用法示例:FBSDKGraphRequest *request = [FBSDKAppEvents requestForCustomAudienceThirdPartyIDWithAccessToken:nil];
    • 投放场景:精准广告投放,按用户群体优化 ROAS。
用户数据管理
  • setUserEmail:firstName:lastName:phone:dateOfBirth:gender:city:state:zip:country:
    • 功能:设置用户数据(已加密),用于事件关联。
    • 参数:多个字符串参数,详见代码。
    • 用法示例:[FBSDKAppEvents setUserEmail:@"user@example.com" firstName:@"John" ...];
    • 投放场景:提升用户匹配精度,优化广告效果。
  • getUserData:获取已设置用户数据。
  • clearUserData:清除所有用户数据。
  • setUserData:forType::按类型设置用户数据。
  • clearUserDataForType::按类型清除用户数据。
    • 注意:数据加密处理,需符合隐私法规,获取用户同意。
混合 WebView 支持
  • augmentHybridWebView:
    • 功能:向 WKWebView 注入 JavaScript,支持 Web 内容事件追踪。
    • 参数:webView(WKWebView)。
    • 投放场景:混合应用中追踪 Web 事件,提升整体分析能力。
Unity 集成
  • setIsUnityInitialized:
    • 功能:设置 Unity 是否初始化。
    • 参数:isUnityInitialized(BOOL)。
  • sendEventBindingsToUnity
    • 功能:向 Unity 发送事件绑定。
    • 投放场景:Unity 游戏中整合事件记录,优化广告投放。

用法注意事项

  • 事件命名与参数限制:事件名和参数名长度 2-40 字符,仅支持字母数字、下划线、连字符或空格;应用总计约 1000 唯一事件名,单事件约 25 唯一参数名;参数值长度约 100 字符。
  • 用户隐私:用户数据加密处理,需确保符合 GDPR、CCPA 等法规,获取用户明确同意。
  • 刷新行为:购买事件默认触发即时刷新,除非 flushBehavior 设置为显式刷新。
  • 版本兼容:logFailedStoreKit2Purchase 仅 iOS 15.0+ 可用,需注意设备兼容性。

表格:关键方法与投放场景

方法组 代表方法 投放场景 示例用例
基本事件记录 logEvent:eventName 追踪用户行为,优化参与度 记录“搜索”事件
购买记录 logPurchase:currency: 分析内购转化,优化 CPI 和 LTV 记录 9.99 美元购买
推送通知记录 logPushNotificationOpen: 提升用户回流,优化推送效果 记录通过推送打开应用
产品目录记录 logProductItem:availability: 动态广告展示,优化商品转化 上传库存商品信息
用户数据管理 setUserEmail:firstName: 提升用户匹配,精准广告投放 设置用户邮箱和姓名

结论

FBSDKAppEvents 为 IAA 和 IAP 提供了强大的事件记录工具,通过合理配置可优化广告效果、提升用户参与度和转化率。建议结合动态广告、自定义受众等功能,定期更新创意和受众,监控 CPI、ROAS 等指标,确保投放策略数据驱动。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容