在 FBSDK 的设置 Class 中找不到 setAdvertiserTrackingEnabled?

setAdvertiserTrackingEnabled is not found in Settings Class of FBSDK?

我正在尝试将 setAdvertiserTrackingEnabled 设置为 true,如 Facebook 广告商跟踪启用中所述 像这样

// Set AdvertiserTrackingEnabled to true if a device provides consent
Settings.setAdvertiserTrackingEnabled(true)

但是我在 FBSDKSettings 中找不到这个方法 class。

错误 Xcode

{类型 'Settings' 没有成员 'setAdvertiserTrackingEnabled'}

Facebook 文档 Link https://developers.facebook.com/docs/app-events/guides/advertising-tracking-enabled/

Facebook 文档尚未更新以匹配版本 11 中的新更改(您可以注意到 iOS App Event setup 中的第二张图片包含版本 5.10.0 的屏幕截图)

如果您在 Xcode 中使用 cocoapods 安装了 FBAudienceNetwork,您可以检查并推断 Settings class 已重命名为 FBAdSettings。要验证这一点,您可以在以下目录中找到您提到的方法:Pods > Pods > FBAudienceNetwork > FBAdSettings.h > +setAdvertiserTrackingEnabled

因此,您应该将代码更改为以下内容:

FBAdSettings.setAdvertiserTrackingEnabled(true)

现在,Facebook(Meta) 广告的 class 在 Facebook 的新更新版本中从 Settings class 更改为 FBAdSettings class( Meta) 并且还为其定义了一个新库 FBAudienceNetwork。 所以要解决这个问题,请先安装 FBAudienceNetwork 然后写:-

FBAdSettings.setAdvertiserTrackingEnabled(true)

如果有人在使用 Facebook(Meta) 更新的 SDK 代码时遇到问题,所以我在这里列出的一些更改,请检查这些:-

1).实例成员 'logEvent' 不能用于类型 'AppEvents';您是要改用这种类型的值吗?

解决方案:- 而不是使用 AppEvents.logEvent 使用 AppEvents.shared.logEvent.

2).无法将类型 'String' 的值转换为预期的字典键类型 'AppEvents.ParameterName'

解决方案:- 使用 AppEvents.ParameterName.registrationMethod 而不是使用 AppEvents.ParameterName.registrationMethod.rawValue 作为参数键。意思是从Facebook提供的参数的参数键中去掉“rawValue”。

此外,如果您收到错误 Cannot convert '[String : Any]' to expected argument type '[AppEvents.ParameterName : Any]',请从为您要与 Facebook(Meta) SDK AppEvent 共享的参数声明的字典的每个键中删除 .rawValue

3).实例成员 'activateApp' 不能用于类型 'AppEvents';您是要改用这种类型的值吗?

解决方案:- 只需在“activateApp()”之前添加“Shared”。喜欢,

AppEvents.shared.activateApp()

4).实例成员 'logPurchase' 不能用于类型 'AppEvents';您是要改用这种类型的值吗?

解决方案:- 日志购买事件发生了变化,AppEvents class 现在是 Facebook(Meta) SDK 中的单例 class 所以我们必须为我们的每个功能添加“共享”想从 Facebook(Meta) SDK class 调用,因此,日志购买方法将被调用为:-

AppEvents.shared.logPurchase(amount: amount, currency: “GBP”)

注意:- 从 Facebook(Meta) SDK 版本 13.0 开始,必须使用 appId 和 AppName 在 info.plist 中添加 client_token,因为所有调用都需要它图表 API.

//info.plist

的代码
<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>

希望对您有所帮助!