在 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>
希望对您有所帮助!
我正在尝试将 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>
希望对您有所帮助!