集成

CloudX iOS SDK 的 Meta Audience Network 适配器。支持 Banner、MREC、Interstitial、Rewarded、Native、Native Banner 和 Native MREC。

有关 CloudX 控制台映射和 Meta 侧 ID 设置,请参阅 Meta Audience Network 竞价方指南。本页仅说明 iOS 特定的集成细节。

安装

CocoaPods

Podfile
pod 'CloudXMetaAdapter', '~> 6.22.0.0'
pod install --repo-update

手动安装

  1. Releases 下载 CloudXMetaAdapter.xcframework.zip
  2. 解压并将 CloudXMetaAdapter.xcframework 拖入您的 Xcode 项目
  3. 手动添加 FBAudienceNetwork= 6.22.0)。

Info.plist 配置

SKAdNetwork IDs(iOS 14.5+ 必需)

Meta 进行竞价需要两个 Meta SKAdNetwork ID:

Info.plist
<key>SKAdNetworkItems</key>
<array>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>v9wttpbfk9.skadnetwork</string>
    </dict>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>n38lu8286q.skadnetwork</string>
    </dict>
</array>

应用追踪透明度(iOS 14+)

Info.plist
<key>NSUserTrackingUsageDescription</key>
<string>此标识符将用于向您投放个性化广告。</string>

项目配置

链接器标志: 在 Build Settings 中将 -ObjC 添加到 Other Linker Flags。

Bitcode: Meta SDK 不支持 Bitcode。将 Enable Bitcode 设置为 NO

原生广告

展示跟踪要求

Meta 要求特定素材完成渲染并在屏幕上可见后才会计入展示,具体取决于 Meta placement 格式:

Meta placement 格式必需素材必需视图
Native媒体视图FBMediaView
Native Banner应用图标UIImageView

完整的素材渲染要求请参阅 Meta 的 Native AdsNative Banner Ads 指南。

Meta placement 与 CloudX 广告单元的映射

Meta placement 格式CloudX 广告单元CloudX API必需素材由谁渲染
NativeNativecreateNativeAdLoader(adUnitIdentifier:)您的布局,通过绑定器的媒体容器
NativeMREC(300×250)createMREC(adUnitId:)CloudX 提供的布局
Native BannerBanner(320×50)createBanner(adUnitId:)CloudX 提供的布局

对于独立 Meta Native 广告,请使用视图绑定器的 mediaContentViewTag 绑定可见的媒体容器。CloudX 会将 Meta 的 FBMediaView 附加到该容器。如果 Meta Native Banner 素材可能投放到您的 Native 广告单元,请同时使用 iconImageViewTag 绑定图标 UIImageView —— Meta 会将 Native Banner 展示注册到图标视图上。完整布局和加载流程请参阅原生广告

通过 CLXBannerAdView 投放的 Native Banner 和 MREC 素材使用 CloudX 提供的布局,因此发布商代码不需要原生绑定器。

兼容性

适配器版本广告网络 SDK最低 CloudXCore
6.22.0.0Meta Audience Network 6.22.03.5.0
6.21.1.0Meta Audience Network 6.21.13.5.0
6.21.0.0Meta Audience Network 6.21.03.5.0

当服务端下发的 CloudX 配置包含该广告网络需求时,SDK 会自动发现该适配器。无需手动注册适配器。

已知问题

本节仅列出当前存在的问题。已解决的条目会移入适配器更新日志。

Meta SDK 6.21.0 在使用 SceneDelegate 的应用中崩溃

影响范围: 使用基于场景的生命周期(iOS 13+ SceneDelegate)的应用中的 Meta Audience Network SDK 6.21.0。

症状: 横幅广告展示期间崩溃:

*** -[NSProxy doesNotRecognizeSelector:observeScreenOrientationChanges:] called!

这是一个 Meta SDK 内部 bug:其 FBDisplayAdController 创建的 NSProxy 未正确配置方向观察。

解决方法: 使用旧式的仅 AppDelegate 模式(不使用 SceneDelegate)。这是唯一可靠的修复方案。

  1. 从项目中删除 SceneDelegate.hSceneDelegate.m
  2. Info.plist 中移除整个 UIApplicationSceneManifest 部分。
  3. Info.plist 添加必需的键:
Info.plist
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UILaunchStoryboardName</key>
<string>LaunchScreen</string>
  1. 更新 AppDelegate
// AppDelegate.h
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

// AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.rootViewController = [[YourRootViewController alloc] init];
    [self.window makeKeyAndVisible];
    return YES;
}

移除 SceneDelegate 后,Xcode 会输出 CLIENT OF UIKIT REQUIRES UPDATE: This process does not adopt UIScene lifecycle. 警告。此警告是预期行为,不会影响功能。

支持

如需支持,请联系 support@cloudx.io