Skip to content

FacebookEvent

概述

宝船 SDK 已经引入 Facebook 的分析跟踪模块,并做了相应封装。通过接入宝船 SDK,你可以轻松实现 Facebook 的功能,在你的应用中跟踪事件及更多数据。

配置项目

1.配置Facebook应用

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 功能。

bricksdkfacebook01

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:@{}];