如何解决Error = 1001" No Fill"在Android中使用Facebook Audience Network

时间:2017-11-01 12:46:24

标签: android facebook facebook-ads-api facebook-audience-network

我的应用程序的Android版本和我的应用程序中集成了FAN。 它工作了几个月,但现在它正在显示" NO FILL "

Error Domain=com.facebook.ads.sdk Code=**1001 "No fill"** 
UserInfo={NSLocalizedDescription=**No fill**, 
FBAdErrorDetailKey={ msg = "**No fill**"}}

并且没有显示FAN广告。如果我输入了测试ID ,那么它会显示,但仅限于我的设备,而不是其他设备。

如何解决此问题" No Fill"?

compile 'com.facebook.android:audience-network-sdk:4.+'

在build.gradle中提到 我已经看到很多关于此的问题,但无法找到答案。

我已在下面的链接中看到:

  1. Facebook AudienceNetwork loaded failure: No fill, Error Message "No fill", what is the reason about FaceBook android Advertise?

  2. facebook audience network testing on test flight No Fill

  3. Audience Network iOS Ads Suddenly Become "No Fill"

  4. Facebook Audience Network returns "No fill"

  5. Testing Audience Network Implementation

6 个答案:

答案 0 :(得分:3)

试试这个。它解决了我的问题。 you have to follow this steps for solve this problem在此处给出了所有屏幕截图和步骤。

愿这对你有所帮助。由于Facebook开发者控制台在展示位置中新创建的受众群体网络标签广告空间组中进行了更新。你必须按照这个步骤。可能有助于他人。

我还发布了截图以及步骤详情。

此处点击向上分组为appName,然后按照步骤操作。

  1. 勾选任意一个广告的复选框,然后启用制作展示位置按钮。

  2. 输入与广告在应用中的显示位置相关的名称和说明,然后点击移动按钮 enter image description here

  3. 移动一个广告后,您还可以从未分组广告中选择其他广告并将其移至广告空间,此处您可以选择转移到现有创建一个新的广告空间 enter image description here

  4. 如果要创建新的,请选择新的单选按钮。输入名称和描述后单击“移动”。 enter image description here

答案 1 :(得分:2)

我想测试广告时遇到同样的错误。

错误:无填充错误代码[1001]无填充。我们无法向此人投放广告。

我没有注册AD,因为当时我的应用还没有上线。因此,我没有广告ID。发生错误时,我正在使用测试ID "YOUR_PLACEMENT_ID"进行演示。因此,仅测试ID不足以在Facebook Ad中获得测试广告。

我找到了以下解决方案。

当您是initialize AudienceNetworkAds时,只需启用测试模式即可。

AdSettings.setTestMode(true)

class AudienceNetworkInitializeHelper : AudienceNetworkAds.InitListener {

        override fun onInitialized(result: AudienceNetworkAds.InitResult) {
            Log.d(AudienceNetworkAds.TAG, result.message)
        }

        companion object {

            internal fun initialize(context: Context) {
                if (!AudienceNetworkAds.isInitialized(context)) {
                    if (DEBUG) {
                        AdSettings.turnOnSDKDebugger(context)
                        AdSettings.setTestMode(true)// for get test ad in your device
                    }

                    AudienceNetworkAds
                            .buildInitSettings(context)
                            .withInitListener(AudienceNetworkInitializeHelper())
                            .initialize()
                }
            }
        }
}

我的观众网络SDK为implementation 'com.facebook.android:audience-network-sdk:5.4.0' 并且在 5.6.0 中也可以使用。

答案 2 :(得分:1)

在Facebook批准您的应用之前,您需要添加测试设备以对其进行测试。这是获取设备哈希的方法。

NSLog(@"the test device hash is %@",[FBAdSettings testDeviceHash]); 

运行该应用程序,然后从日志中复制testDeviceHash,然后将其添加到FBAdSettings

[FBAdSettings addTestDevice:@"YOUR_TEST_DEVICE_HASH_CODE_HERE"];
  

您需要先执行FBAdView

答案 3 :(得分:0)

我的问题解决了,直到我使用我的管理员帐户登录到Facebook应用程序并再次从谷歌播放下载我的应用程序。

为您提出的一些建议问题: 错误代码为1001的“No Fill”是一个常见错误,FAN没有将广告返回到您的广告。

确保以下事项:   - 带有展示位置ID的广告状态(受众群体网络>广告空间>展示位置)必须为“最近启用并收到广告请求”(1) - 您的广告状态必须经过Facebook审核和批准。 (2)

如果(1),您可以尝试再次禁用和启用。 如果(2),您必须从谷歌播放+登录管理员帐户/或开发人员/测试人员(在角色选项卡中添加)下载Facebook应用程序),我建议使用管理员帐户登录;并直接从谷歌播放下载您的应用程序。

您说您的应用程序已经活动了一段时间,以上情况是正确的,最后一个是向Audience Network Team发送消息,他们将在3-5个工作日内回复。

enter image description here

答案 4 :(得分:0)

我设法解决了这个问题。我的步骤:

1。确保在您的代码中设置测试设备的哈希值

  • 首先从xCode模拟器(而不是您的设备)进行测试以确保其正常运行。
  • 将此日志添加到某处(例如viewDidLoad)以显示您的xCode仿真器设备哈希:
NSLog(@"%@",[FBAdSettings testDeviceHash]);
  • 然后在您的代码中进行设置:
[FBAdSettings addTestDevice:@"YOUR_TEST_DEVICE_HASH"];

2。确保您使用正确的展示位置ID

  • 转到获利管理器主页
  • 在左侧菜单上展开集成
  • 点击属性
  • 复制属性的ID并将其粘贴到您的代码中:
- (void)loadNativeAd{
    FBNativeAd *nativeAd = [[FBNativeAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];
    nativeAd.delegate = self;
    NSLog(@"%@",[FBAdSettings testDeviceHash]);
    [FBAdSettings addTestDevice:@"YOUR_TEST_DEVICE_HASH"];
    [nativeAd loadAd];
}

对我有用。

答案 5 :(得分:0)

尝试此版本,并检查其是否正常工作

implementation 'com.facebook.android:audience-network-sdk:5.1.0'