我正在尝试将Audience Network整合到我的应用中。当我在XCode上部署时,广告在模拟器和设备上正常工作。
我想在TestFlight上分发构建版,以确保它在发布模式下有效。当我尝试在发布模式下从XCode直接部署到我的设备时,Facebook会为广告返回“无填充”。广告也不会出现在TestFlight构建中。
有关于在TestFlight内容中显示设备广告的想法吗?
答案 0 :(得分:6)
这可能有两个主要原因。首先,用户或测试人员无法登录设备上的本机Facebook应用程序。这可能会导致Error 1001 - No Fill Rate
。
1001 - 没有填充
这是测试时看到的一个常见错误,与" No Fill" 响应;最常见的原因是用户未登录 到测试设备上的原生Facebook应用程序。
服务器响应SDK文档代码= 1001“无填充”错误1001 - 否 填。可能是由于以下一个或多个原因:
- 用户未登录移动设备上的原生Facebook应用
- 启用了限制广告跟踪功能(iOS)
- 当前用户没有广告资源
- 您的测试设备必须安装本机Facebook应用程序。
- 您的申请应该尝试制作另一个 30秒后请求。
这是documentation告诉您的1001错误。
其次,您可能仍处于调试模式,因此您无法在发布模式下看到广告。要修复此错误,请从Apple开发人员中心下载最新的配置文件,并在发布时切换Facebook App。您可以登录Facebook Developer控制台并选择您的应用程序。然后在左侧,您应该有此列,您可以在其中选择状态&审查即可。 然后,切换"您要将此应用公开吗?"切换到YES。 这会让您的应用可供所有人使用,这意味着广告会弹出所有测试人员。
根据我的经验,我的两分钱是你没有公开应用或没有将用户添加为beta测试者。因此,facebook无法投放任何广告,导致1001错误。这应该是一个快速解决方法,通过使应用程序公开,让您的测试人员通过Facebook应用程序登录。我在Facebook SDK的另一部分遇到了类似的问题,该问题已由公开发布版修复。
希望有帮助,朱利安
答案 1 :(得分:1)
如果您的广告位于很多地方,您可以将此代码放入AppDelegate
Swift 3
import FBAudienceNetwork
private func facebookAdsControl() {
#if RELEASE
self.clearTestDevicesForFacebookAds()
#else
self.addTestDevicesForFacebookAds()
#endif
}
///remove for live mode
private func addTestDevicesForFacebookAds(){
let key = FBAdSettings.testDeviceHash()
FBAdSettings.setLogLevel(FBAdLogLevel.Log)
FBAdSettings.addTestDevice(key)
}
///add for live mode
private func clearTestDevicesForFacebookAds() {
FBAdSettings.clearTestDevices()
}
此代码将确保您的测试广告在testflight或模拟器/设备上展示,并确保您何时向应用商店发布您的广告将显示为实时广告并且测试设备将被清除。< / p>
在didFinishLaunchingWithOptions
中调用:facebookAdsControl()
您也可以在包含广告的代码中调用此代码,但请确保在adView.load()
为了使用宏,您必须在Build Settings
中将标志添加到Swift Flags中我希望这可以帮助某人,因为Facebook Docs并不像我发现的那样清晰。
答案 2 :(得分:0)
在应用上述解决方案后,我仍面临同样的问题。我已经通过添加deviceHashId解决了: -
FBNativeAd *nativeAd;
static NSString *adPlacementId = @"xxxxxxxxx";
- (void)showNativeAd:(UIViewController *)vc
{
nativeAd = [[FBNativeAd alloc] initWithPlacementID:adPlacementId];
nativeAd.delegate = self;
NSLog(@"isTestMode1: %d",[FBAdSettings isTestMode]);
NSString *testDeviceKey = [FBAdSettings testDeviceHash];
if (testDeviceKey) {
[FBAdSettings addTestDevice:testDeviceKey];
}
[nativeAd loadAd];
}
如果有人有任何意见,我有一些不同的问题请回复this stack overflow link
答案 3 :(得分:-2)
错误1001 - 无填充率。
如果您想测试真实广告,请尝试以下步骤:
对于我们的测试设备,它几乎每次都有效。