AppLovin / AppLovin-MAX-SDK-iOS

84 stars 69 forks source link

FAN ads always end up with the "No fill" error #312

Open jkozlowicz opened 1 month ago

jkozlowicz commented 1 month ago

MAX SDK Version

12.1.0

Device/Platform Info

iOS 15+

Current Behavior

Ads from Facebook Audience Network always end up with the "No fill" error despite the fact that everything seems to be configured properly.

I followed the official AppLovin guide for the integration and I can display ads from the AppLovin network, but when I force the ad to be loaded from FAN, it always fails. I have been also accepted by Facebook to the MAX Open Beta programme.

I have properly configured the interstitial ad in the Facebook Business Manager and I reference all the FB ad ids both in the swift code as well as in the MAX web UI. It shows that the integration is configured properly with a green checkmark. The on-device debugger also shows that everything is alright.

Expected Behavior

Ads from FAN are properly loaded and displayed.

How to Reproduce

Additional Info

Please take a look at the errors, a short snippet of source code, and a screenshot. I have checked all the integration guides multiple times and I cannot figure it out. I already have it live and users are only being shown ads from AppLovin network, because the FAN network are not loading, which is not optimal...

Thank you!

Screenshot 2024-04-04 at 16 37 41

IMG_0351 2

IMG_0348

code.txt

thomasmso commented 1 month ago

Facebook actually has a lot of requirements for their test mode to work. I've listed them out below:

jkozlowicz commented 1 month ago

@thomasmso thank you for your reply.

Facebook actually has a lot of requirements for their test mode to work. I've listed them out below:

with the following code:

// Set the flag as true
FBAdSettings.setAdvertiserTrackingEnabled(true)
// Set the flag as true
FBAdSettings.setAdvertiserTrackingEnabled(false)

COPPA (ageRestrictedUser) and LDU needs to be false LDU is disabled with the following code upon every app launch:

import FBAudienceNetwork
⋮
FBAdSettings.setDataProcessingOptions([])

I couldn't find any reference to COPPA in the docs you linked so I cannot say whether it is true or not. Could you please point me to some docs that describe how to disable it?

  • App needs to be live and installed from the App or Play Store It's been live for 2+ years and is available on the App Store.

  • Does not fill for new apps that are not on the latest version of the Facebook SDK I think I am now 1 version behind, but it was the latest version when I worked on setting up the ads with AppLovin.

  • App needs to be approved by Facebook The app is officially approved by Facebook. I have green checkmarks everywhere + users have been using Facebook Login in my app for a long time already.

  • You can also check the Facebook checklist for additional integration issues: https://developers.facebook.com/tools/property/checklist/

This page is broken.

  • or try VPNing to a state other than California
  • Will only bid in California if CCPA is set California is definitely not my most important geographical region and I mostly have users from Europe.

Looks like I've already covered most of the points and the integration still doesn't work. Is there any other way to escalate this to get help? I've invested quite some time into setting it all up with AppLoving and I'd like it to work properly.

Thank you!

jkozlowicz commented 1 month ago

The errors in Xcode:

[4315:2476209] [FBAudienceNetworkLog/FBAdProvider:150 thread:1 <error>] Ad request error: Error Domain=com.facebook.ads.sdk Code=1001 "No fill" UserInfo={NSLocalizedDescription=No fill, FBAdErrorDetailKey={
    msg = "No fill";
}}
[4315:2476209] [FBAudienceNetworkLog/FBDisplayAdController:557 thread:1 <error>] Adapter failed with error:Error Domain=com.facebook.ads.sdk Code=1001 "No fill" UserInfo={NSLocalizedDescription=No fill, FBAdErrorDetailKey={
    msg = "No fill";
}}
Interstitial ad failed to load with error: Error Domain=com.facebook.ads.sdk Code=9001 "Ad failed to show" UserInfo={NSLocalizedDescription=Ad failed to show, FBAdErrorDetailKey={
}}
jkozlowicz commented 1 month ago

I just updated to 12.4.0 in order to provide the privacy info that Apple started to require since a few days ago and I noticed this log statement in Xcode. Perhaps you can see something that is off?

===Privacy States===
Please review AppLovin MAX documentation to be compliant with regional privacy policies.

Age Restricted User - No value set
Has User Consent - No value set
"Do Not Sell" - No value set
===App Tracking Transparency===
Authorization Status: Authorized (3)
NSUserTrackingUsageDescription Exists: true
===MAX Terms Flow===
Enabled: false
Privacy Policy URL: (null)
Terms of Service URL: (null)
===CMP (Consent Management Platform)===

CMP Name - No value set
CMP SDK ID - No value set
CMP SDK Version - No value set
IABTCF_gdprApplies - No value set
IABTCF_TCString - No value set
IABTCF_AddtlConsent - No value set
========================================
NanaAmoah commented 1 month ago

Hi @jkozlowicz, for Facebook's test mode to work, COPPA (Age Restricted User) needs to be set to false but the logs you shared show that it has not been set. You can set this using our API here

jkozlowicz commented 1 month ago

Hi @NanaAmoah, thanks your reply. Indeed that was missing, but unfortunately the ads from FAN still do not load.

I get the same "No fill" error. I just set that flag to false, logged in into facebook, and tried to show ad with FAN, but it failed.

I am attaching a screenshot from the on device debugger. Could you please suggest more steps to try out in order to enable FAN?

Thank you!

IMG_0356

maxvone commented 1 day ago

@jkozlowicz I have exactly the same issue. Have you managed to resolve it?

jkozlowicz commented 1 day ago

@maxvone sadly, I haven't. I've plugged in everything according to the official guides from MAX and FAN, but still only ads from MAX are being served :/