如何在 Facebook Analytics SDK 2020 中记录自定义事件 swift 文档已弃用

How to log a custom Event in Facebook Analytics SDK 2020 for swift Documentation is deprecated

更新

问题是 swift 的 facebook 文档已过时,因此要解决此问题,您必须像这样记录您的自定义事件:

func logMyEvent(name : String, value : String) {
    let params : [String: Any] = ["myParamName" : "myParamValue"]
    let eventName: AppEvents.Name = AppEvents.Name(rawValue: "myEventName")
    AppEvents.logEvent(eventName, parameters: params)
}

重要!

请注意,Facebook 会在您调用事件约 20 分钟后在其控制台中记录您的事件。因此,如果数据不存在,请不要紧张,只需等待(我是根据经验谈的哈哈哈)。如果您有任何疑问,请随时与我联系,也许我可以提供帮助 :D


我正在集成 Swift FacebookCore SDK,这样我就可以使用 Facebook 分析了!问题是 facebooks 官方文档不起作用!看来他们还没有更新代码,所以我无法获得真正的代码来记录我自己的自定义事件!

这是 Facebook 给你的代码!

 * For more details, please take a look at:
 * developers.facebook.com/docs/swift/appevents
 */
func logMyEventEvent(name : String, value : String) {
    let params : AppEvent.ParametersDictionary = [
      "name" : name,
      "value" : value
      ]
    let event = AppEvent(name: "myEvent", parameters: params)
    AppEventsLogger.log(event)
}

从这里获取:https://developers.facebook.com/docs/app-events/getting-started-app-events-ios 手动记录事件 部分。

但 AppEvent 已不存在。

上网查了一下才知道是因为 Facebook 改名为 AppEvents

IMAGE WERE I FOUND IT Here is the link to the GitHub poll. https://github.com/facebookarchive/facebook-swift-sdk/issues/433

但这仍然没有解决我的问题,因为我无法记录自定义事件。

有没有人不用上个版本就解决了同样的问题?

非常感谢!

难以置信,但我也找不到任何相关文档。

但是,我通过查看 FBSDKCoreKit 源代码得出了以下代码。我还没有测试过,但我把它贴在这里以防万一我在接下来的几分钟内突然意外死亡。

import FBSDKCoreKit

let name = "myEvent"
let parameters: [String: Any] = [
    "myParameter": "myParameterValue"
]

let event = AppEvents.Name(name)
AppEvents.logEvent(event, parameters: parameters)
import FBSDKCoreKit

AppEvents.logEvent(AppEvents.Name.(*FBSDKAppEventName), parameters: ["*FBEvent": <Any>])

*FBSDKAppEventName 基于 facebook,因此请从以下选项中选择一个: Facebook Standart Events

*FBEvent - 根据选择的 FBSDKAppEventName,可能有也可能没有参数。从参数中选择一个并设置为字符串。

示例:

AppEvents.logEvent(AppEvents.Name.achievedLevel, parameters: [AppEvents.Parameters.achieved: "5"])

没有参数的示例曲目:

AppEvents.logEvent(AppEvents.Name.submitApplication)

试试这个:

1- 全局声明一个包含所有必需事件的 enum

enum FACEBOOK_EVENTS: String {
    case appOpened = "MyApp iOS is opened"
    case appClosed = "MyApp iOS is terminated"
    case checkoutClicked = "Checkout in iOS is clicked"
    case placeOrderClicked = "Place order in iOS is clicked"
}

2- 其次,像这样手动注册事件:

AppEvents.logEvent(AppEvents.Name.init(rawValue: GlobalClass.FACEBOOK_EVENTS.checkoutClicked.rawValue))

AppEvents.logEvent(AppEvents.Name.init(rawValue: GlobalClass.FACEBOOK_EVENTS.appOpened.rawValue))

...

如果你想要默认功能:

import FBSDKCoreKit

  1. AppEvents.shared.logEvent(.订阅)