如何在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 。 然后,切换“你想让这个应用程序公开吗?” 切换到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真实的广告,请尝试以下步骤:
- loginFacebook应用
- 打开Safari
- 在谷歌上查找“macbook air buy”,打开任何店铺,加上macbook到购物车
- 打开Facebook应用程序,拉到刷新Facebook的历史
- 打开你的应用程序
- 用不同的search词重复步骤2-5,直到广告出现在您的应用中
对于我们的testing设备,它几乎每次都有效。