如何在TestFlight上testingFacebook受众networking广告?

我正在尝试将Audience Network集成到我的应用程序中。 当我在XCode上部署时,广告在模拟器和设备上正常工作。

我想通过TestFlight发布构build,以确保它能在发布模式下工作。 当我尝试从发布模式直接从XCode部署到我的设备时,Facebook返回广告的“无填充”。 广告不会显示在TestFlight上。

对于在TestFlight版本中展示设备的广告有什么想法?

这可能有两个主要的原因。 首先,用户或testing人员无法login设备上的原生Facebook应用程序。 这可能会导致Error 1001 - No Fill Rate

1001 – 没有填充

这是testing时常见的错误,涉及到“无填充”响应; 最常见的原因是用户没有login到testing设备上的原生Facebook应用程序。

服务器响应SDK文档代码= 1001“没有填充”错误1001 – 没有填充。 可能是由于以下一项或多项:

  • 用户未login到移动设备上的原生Facebook应用程序
  • 限制启用广告跟踪(iOS)
  • 没有当前用户的广告资源
  • 您的testing设备必须安装本地Facebook应用程序。
  • 您的应用程序应该在30秒后尝试提出另一个请求。

这是文档告诉你的1001错误。

其次,您仍然可能处于debugging模式,因此您在发布模式下看不到广告。 要解决此错误,请从Apple开发人员中心下载最新的供应configuration文件,并按照发布的方式切换Facebook应用程序。 您可以通过login到Facebook开发人员控制台并select您的应用程序来做到这一点。 然后在左边你应该有这个列,在那里你selectSTATUS&REVIEW屏幕截图1 然后,切换“你想让这个应用程序公开吗?” 切换到YES。 是 这将使您的应用程序可供任何人使用,这意味着广告将与您的所有testing人员一起popup。

我在这里的两个经验是,你没有公开你的应用程序,也没有添加用户作为betatesting者。 因此,Facebook无法提供任何抛出1001错误的广告。 这应该是一个快速解决方法,使应用程序公开,让您的testing人员通过Facebook应用程序login。 我有一个类似的问题,Facebook的其他部分,由公开发布已经修复。

希望有帮助,朱利安

如果你在很多地方有你的广告,你可以把这个代码放在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() } 

此代码将确保您的testing广告显示在testflight或模拟器/设备上,并确保您在app store发布广告时将显示为实时广告,并清除testing设备。

调用didFinishLaunchingWithOptions中的: facebookAdsControl()

您也可以在有广告的代码中调用此代码,但请确保在adView.load()之前调用此代码。

为了使用这个macros,你必须在Build Settings中将这些标志添加到你的Swift Flags中

我希望这可以帮助别人,因为我发现Facebook文件不是很清楚。

应用上述解决scheme后,我仍然面临同样的问题。 我通过添加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]; } 

我有一些不同的问题,如果有人有任何意见,请回复这个堆栈溢出链接

错误1001 – 没有填充率。

如果您想要testing真实的广告,请尝试以下步骤:

  1. loginFacebook应用
  2. 打开Safari
  3. 在谷歌上查找“macbook air buy”,打开任何店铺,加上macbook到购物车
  4. 打开Facebook应用程序,拉到刷新Facebook的历史
  5. 打开你的应用程序
  6. 用不同的search词重复步骤2-5,直到广告出现在您的应用中

对于我们的testing设备,它几乎每次都有效。