Search code examples
iosswiftfacebookfacebook-ios-sdk

Use of unresolved identifier FBSDKAppEventNamePurchased


I'm trying to log some events in my iOS application using the Facebook Analytics SDK.

First, I logged an event and this works well:

FBSDKAppEvents.logEvent(FBSDKAppEventNameInitiatedCheckout, valueToSum: price, parameters: parameters)

Then I tried to log the next one:

FBSDKAppEvents.logEvent(FBSDKAppEventNamePurchased, valueToSum: price, parameters: parameters)

And Xcode says that there is no such identifier named FBSDKAppEventNamePurchased.

I dived into the Facebook documentation and recognized that it exists:

enter image description here

So, I really have not idea what hell is going on. Does anybody had the same issue?


Solution

  • Okay, finally I found the reason of the problem and it's solution.

    The FBSDKAppEventNamePurchased event constant is a private constant of Facebook SDK, so we can't use it in our code directly.

    We should use:

    FBSDKAppEvents.logPurchase(price, currency: currencyCode, parameters: parameters)

    instead of:

    FBSDKAppEvents.logEvent(FBSDKAppEventNamePurchased, valueToSum: price, parameters: parameters).

    I really don't know why Facebook still have the FBSDKAppEventNamePurchased event on their documentation pages, but this way is the way to go.