Appearance
FacebookEvent
概述
宝船 SDK 已经引入 Facebook 的分析跟踪模块,并做了相应封装。通过接入宝船 SDK,你可以轻松实现 Facebook 的功能,在你的应用中跟踪事件及更多数据。
配置项目
1.配置Facebook应用
TIP
参考Facebook网站进行配置应用(https://developers.facebook.com/docs/app-events/getting-started-app-events-ios?locale=zh_CN)
2.右键点击 Info.plist,然后选择 Open As(打开方式)▸ Source Code(源代码)。将下列 XML 代码片段复制并粘贴到文件正文中 ()。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fbAPP-ID</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>APP-ID</string>
<key>FacebookClientToken</key>
<string>CLIENT-TOKEN</string>
<key>FacebookDisplayName</key>
<string>APP-NAME</string>
3.在 [CFBundleURLSchemes] 键内的 array > string 中,将 APP-ID 替换为您的应用编号。在 FacebookAppID 键内的 string 中,将 APP-ID 替换为您的应用编号。在 FacebookClientToken 键内的 string 中,将 CLIENT-TOKEN 替换为您在应用面板设置 > 高级 > 客户端口令中找到的值。在 FacebookDisplayName 键内的 string 中,将 APP-NAME 替换为您的应用名称。如要使用任何 Facebook 对话框(如登录、分享、应用邀请等),实现将应用切换至 Facebook 应用的功能,则应用程序的 Info.plist 还需包含以下代码:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
</array>
TIP
说明:您可以在 Info.plist 中添加 FacebookAutoLogAppEventsEnabled 作为一个键,以直接将应用事件自动收集功能设为“true”或“false”。
4.您需为项目添加 Keychain Sharing 功能,才能使登录功能在 Mac Catalyst 应用程序中正常运作。
配置应用目标时,选择 Signing & Capabilities(签名和功能)选项卡中的 + Capability(添加功能)按钮。 找到并选择 Keychain Sharing 功能。
5.关联应用委托和场景委托
// AppDelegate.swift
import UIKit
import FacebookCore
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
ApplicationDelegate.shared.application(
application,
didFinishLaunchingWithOptions: launchOptions
)
return true
}
func application(
_ app: UIApplication,
open url: URL,
options: [UIApplication.OpenURLOptionsKey : Any] = [:]
) -> Bool {
ApplicationDelegate.shared.application(
app,
open: url,
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
annotation: options[UIApplication.OpenURLOptionsKey.annotation]
)
}
}
iOS 13 将打开网址的功能移到了 SceneDelegate 中。如果您使用的是 iOS 13,请将以下方法添加到 SceneDelegate 中,以便相关操作(如登录或分享等功能)可按照预期运作:
// SceneDelegate.swift
import FacebookCore
...
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
guard let url = URLContexts.first?.url else {
return
}
ApplicationDelegate.shared.application(
UIApplication.shared,
open: url,
sourceApplication: nil,
annotation: [UIApplication.OpenURLOptionsKey.annotation]
)
}
6.应用内购买自动记录的事件
<key>SKIncludeConsumableInAppPurchaseHistory</key>
<true/>
7.要禁用自动记录事件功能,请在 Xcode 中将应用程序的 Info.plist 作为代码打开,然后在属性目录中添加以下 XML:
<key>FacebookAutoLogAppEventsEnabled</key>
<false/>
8.要禁用 advertiser-id 收集功能,请在 Xcode 中以代码的形式打开应用程序的 .plist,然后在属性目录中添加以下 XML:
<key>FacebookAdvertiserIDCollectionEnabled</key>
<false/>
应用接入
1.在AppDelegate类中初始化SDK。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[BrickManager initBrickWith:@"cdshf8dfbshdf8sdfc" appSecret:@"sdjncvs889347r983274cvhsd" bindId:@"com.xxx.name"];//宝船出海SDK应用创建后,平台生成的key
//宝船出海SDK应用创建后,平台生成的秘钥
[BrickManager wechatRegisterAppWith:@"wxd326eceb36c332323" universalLink:@"https://weixin.com/"];
//微信开发者ID
//微信开发者Universal Link
return YES;
}
Facebook 事件上报分析
1.根据事件名称上报
[BrickManager brickFBLogEvent:@"eventName"];//eventName是Facebook定义好的字段
2.根据事件名称以及事件金额上报
[BrickManager brickFBLogEvent:@"eventName" valueToSum:[NSNumber numberWithInt:100]];
3.根据事件名和参数上报
[BrickManager brickFBLogEvent:@"eventName" parameters:@{}];
4.根据事件名、事件金额和参数上报
[BrickManager brickFBLogEvent:@"eventName" valueToSum:[NSNumber numberWithInt:100] parameters:@{}];
5.根据事件名、事件金额、参数和accessToken上报
[BrickManager brickFBLogEvent:@"eventName" valueToSum:[NSNumber numberWithInt:100] parameters:@{} accessToken:@"accessToken"];
6.以指定货币记录指定金额的购买
[BrickManager brickFBLogPurchase:100 currency:@"USD"];
7.指定货币记录指定金额的购买,提供参数
[BrickManager brickFBLogPurchase:100 currency:@"USD" parameters:@{}];
8.指定货币记录指定金额的购买,提供参数和accessToken
[BrickManager brickFBLogPurchase:100 currency:@"USD" parameters:@{} accessToken:@"accessToken"];
9.在Store Kit 2上的In-App购买失败时进行日志记录
[BrickManager brickFBLogFailedStoreKit2Purchase:@"productID"];
10.记录通知是否打开
[BrickManager brickFBLogPushNotificationOpen:@{@"payload":@"payload"}];
11.提供参数记录通知是否打开
[BrickManager brickFBLogPushNotificationOpen:@{@"payload":@"payload"} action:@"action"];
12.将产品目录产品项作为应用程序事件上传
[BrickManager brickFBLogProductItem:@"itemID" availability:FBSDKProductAvailabilityInStock condition:FBSDKProductConditionNew description:@"descption" imageLink:@"imageLink" link:@"link" title:@"title" priceAmount:100 currency:@"USD" gtin:@"gtin" mpn:@"mpn" brand:@"brand" parameters:@{}];