Audience Network FAQ

Visit the Audience Network Help Center for more guidance and instructions on working with Audience Network.


Before releasing your app to the store, it’s highly important that you test the integration is working properly. Please read through our guide on how you can test your implementation. You can also follow our Getting Started guide if you need help on your integration. Once we review your app, you will be able to serve real ads automatically.

For each ad request, the SDK will pass the device identifier (IDFA on iOS and Advertising ID on Android) to Facebook so that we can determine the proper ad to serve. No information about the person will be passed back to the publisher along with the ad.

On iOS, you can integrate the Audience Network SDK in apps that target iOS 9 and above.

On Android, the latest Audience Network SDK can be integrated with apps that target API Version 15 of the Android SDK and above.

Yes, the Audience Network delivers ads for publishers using Unity within their iOS and Android app. The Unity SDK supports all of the format supported by the iOS and Android SDKs.

Yes, you can implement ads from a non-Activity class as long as the class has a reference to the holding Activity. You'll need to pass this Activity in as a parameter when creating instances of the ads.

Most mediation services have an option to integrate with 3rd party networks using adapters. The following describes the steps needed to setup such integrations:

  1. Add our SDK to your app
  2. Create a Placement ID on the Facebook app settings page. If you use a banner, make sure to select "None" as the refresh interval. The mediation layer will control the automatic refresh.
  3. Add or code the adapter according to your mediation service instructions. These can be either pre-built adapters (see below for Mopub, Admob and DFP) or a custom adapter that you will need to develop.
  4. Configure the adapter name and placement ID in your mediation server UI and allocate impressions to it

See tips for how to get more fill and revenue when using mediation.

This means we are not able to serve ads to this person. This could occur for a number of reasons including:

  • The person testing has not logged into the native Facebook app on their mobile device
  • You have informed Facebook through the setAdvertiserTrackingEnabled flag to not deliver personalized ads via Audience Network.
  • The person did not give permission for Facebook to use their activity, that other apps and websites send to Facebook, to personalize the ads Facebook delivers to that person.
  • We don't have ad inventory to show for that person

Note that if you can see real ads while you are testing based on our testing guide, your implementation works correctly and people will be able to see ads in your app once it's live.

  • Title: 30 characters maximum
  • Cover Image: 1200x627px
  • Icon: 128px square
  • Social context: 30 characters
  • Title for button (call to action): less than 20 characters
  • Body text: 90 characters
  • Rating Scale: 5
  • Rating Min/Max: 1/5

To load a new ad, create a new instance of NativeAd.

Yes, ads can be cached and re-used for up to 60 minutes. If you plan to use the ad after this time period, make a call to load a new ad. After this time passes, if the person has not clicked the ad, you must request a new ad.

After integrating our SDK into your iOS app, you will need to submit your app to Apple for review. As part of this review process, you will be asked if your app uses the Advertising Identifier (IDFA). Please check "Yes". You will then be asked how your app makes use of it. The question will take this form:

This app uses the Advertising Identifier to (select all that apply)?

  • Serve advertisements within the app
  • Attribute this app installation to a previously served advertisement
  • Attribute an action taken within this app to a previously served advertisement

If you will be using the Audience Network framework, you must select the first option. If you are using our core framework to track install attribution and app events, please select the second and third options. If you are using both, select all three.

Yes, the Audience Network SDK for Android uses the Advertising ID and respects its limit tracking option in accordance with Google Play's terms and conditions. We recommend, but do not require, that you set up your project with Google Play Services. Setting up your app in this way will result in better technical performance when using the Audience Network.

1, What is the purpose of this guide?

This guide is intended to help mobile app developers and ad operation personals to validate ad request/response to and from Audience Network in cases such as:

  • Hassles for adding debugging code and investigating mobile device log
  • No clues for missing ad requests or impressions from dashboard
  • Audience Network ad requests are communicated between Audience Network SDK and Audience Network ad server through HTTPS. Testing and confirming ad requests and responses from the HTTPS network activity is the primary and direct step among many other steps.

    2, How to setup Charles Proxy?

    One of the tools to log the ad requests and responses information from the HTTPS is Charles, a web debugging proxy application

    Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).

    It is found that Charles SSL Proxying is very useful and required for viewing all HTTPS ad requests traffic between iOS and Android app and FAN server.

    The SSL Proxying ( shows how to setup Charles for iOS and Android device, and host machine running Windows and Mac OS.

    Once SSL Proxying is setup and tested properly, make sure Charles is able to proxy SSL requests and see request/response content.

    3, How to look up ad requests?

    3.1 Setup SSL Proxy for Audience Network

    Update Charles Proxy / SSL Proxying setting by adding Host: “” and Port: “8888”, Host: “” and Port: “443”.

    3.2 Read SSL Proxy request / response content for Audience Network

    Go to your mobile app and make ad requests, you should see ad request going to FAN server: and ad response in JSON text form within HTTPS response contents.

    3.3 Confirming ad request sent to and received from Audience Network

    Ad request can be verified if the ad is filled successfully or returned with no fill based on the “code” in the JSON form. “Code” is “0” indicates the request is returned or filled with an ad, “code” is “1001” means no ad is available for the request and app can make another request after passing the specific time limit.

    Below is an example of successful ad response:

    { "type": "ads", "code": 0, "placements": [{ "definition": { "placement_id": "148789268824369_851969285173027", "type": "rewarded_video", "refresh": "0", "refresh_threshold": "-1", "min_viewability_percentage": "1", "viewability_check_ticker": "0", "viewability_check_interval": "100", "viewability_check_initial_delay": "0", "video_time_polling_interval": "200", "cacheable": true, "client_max_retry_count": "1", "invalidation_duration_in_seconds": "3600", "request_timeout": "30000" }, … }

    3.4 Unable to observe an SSL Proxy request for Audience Network

    If no entry point is observed from Charles Proxy for Audience Network end-point (, it should suggest that the primary reason is the mobile app did not make any ad requests to Audience Network server. For this case, re-examining the app integration and app logic is required for mobile developer or ad operation personal.

    4, What is the next step?

    This guide should help you through testing, troubleshooting ad request/response issues with Audience Network.

    If you have further questions on how to use this guide or unanswered questions on ad request/response, please contact our publisher support portal at

    • System User Access Token: Used to make requests to Facebook APIs on behalf of an app.
    • Placement ID: Unique Audience Network identifier of a specific ad placement in your app.
    • App ID: The Placement ID is partly made up of the App ID. For example, in the Placement ID 1234567898765432_9876543212345678, the numbers before the underscore are the App ID.
    • Property ID: Unique Audience Network identifier of your app. You can use the same property ID on multiple platforms, for example Android and iOS.

    Publisher Policies

    To ensure the best possible experience for your app's users, follow our Audience Network Policies when integrating your ads.

    We reserve the right to reject, approve or remove any publisher for any reason, in our sole discretion, including publishers that negatively affect our relationship with our people or that promote content, services, or activities, contrary to our competitive position, interests, or advertising philosophy. These guidelines are subject to change at any time.

    In order to ensure that our publishers are offering a high quality advertising experience, we require that all apps serving Facebook ads are in compliance with our Audience Network policies.

    All apps in our network will be reviewed by automated systems as well as manually checked for quality and compliance. We will have on-going quality review to ensure continued adherence to our policies and Audience Network design guidelines.

    At Facebook, we believe that ads should contribute to and be consistent with the overall user experience. We’re committed to meeting this goal, both on Facebook and in the Audience Network.

    Every ad that runs in the Audience Network is also eligible to run on Facebook. This means they are subject to Facebook’s strict ads policies and pass through our rigorous proactive and reactive review process. In other words, Facebook is providing publisher partners with exactly same protections we use for our own site. Our ads policies are available here. These policies are designed to ensure that ads are high-quality, brand-safe, and in compliance with all applicable laws.

    We recognize there may be instances in which you prefer a particular ad or type of ad not run in your app, regardless of whether it meets our policies. As an Audience Network publisher partner, you will have the ability to filter out specific advertisers or categories of advertisers (e.g., political ads) as you see fit.

    Learn how to limit which advertisers can run ads on your app or site.


    The ads will look very similar to our existing mobile ads on Facebook. Clicking on an ad will either take a user into an app store to download an app, open a webpage in the browser or launch an existing app on their phone. The ads will consist of banners, interstitials and native ads to match the ad placements in your app. The ads will contain the same elements as standard Facebook ads.

    Learn more about what ads can run on Audience Network, and what happens when people interact with them.

    Publishers will not receive a list of advertisers at any point, including in publisher reports. Ads running in publisher apps will be reviewed by Facebook and will follow Facebook's advertising guidelines.

    It depends—performance will vary due to factors such as audience, ad placements, and the advertising campaigns that match your user base.

    Your fill rate may change over time as our network is constantly evolving. Many factors like the demographics of your user base, their geography and advertiser demand can shift and impact the number of ads that could run in your app.

    If you see sudden changes in your fill rate, please check to make sure that:

    • Your implementation is correct
    • You have added all of your mobile properties (mobile apps and websites) to the "Apps and Websites" tab and they have been approved by Audience Network.
    • You have not added additional filters
    • You are using the latest SDK
    • You are not submitting requests too frequently (for example, requesting an ad for the same placement ID multiple times within a 15 second interval)

    Ad refresh is not supported by Facebook Audience Network. In addition, disableAutoRefresh is deprecated from FBAdView (iOS) and AdView (Android) in the 4.99 release and above.

    Use the Filter tab in the Audience Network section to exclude the apps whose ads you would like to prevent from showing in your app. You can also exclude web domains if you wish to prevent ads from certain websites.

    In addition to above, Audience Network automatically detects the mobile application that you have added on your Facebook App Settings ([YOUR_APP_ID]>/settings/).

    Note that making this too restrictive would affect ad delivery and decrease fill rate.

    Facebook aims to deliver valuable ROI for advertisers on the Audience Network by ensuring that clicks are authentic and intentional. We have zero tolerance for click fraud committed by publishers and will ban publishers immediately when we detect fraud. We carefully monitor all clicks and impressions served on the Audience Network to detect patterns of click fraud. We will not charge advertisers or pay publishers for clicks we determine to be invalid.

    Fill rate is calculated based on total filled ads over total eligible requests. Scenarios where a request will not be counted include:

    • Request for an ad is too frequent. For example, if you request an ad with the same placement ID in less than 15 second intervals
    • IDFA (iOS) or Advertising ID (Android) is not available or can not be used for ad delivery
    • Facebook has not been installed on the requesting app or the user has not logged in recently


    Add your team members as admins or Insights users to give them access to reporting. To add or change a role assignment, visit your Facebook app settings and choose the "Roles" section.

    You can find reports by going to the "Audience Network" section in your App Settings and selecting the Performance tab. Reports show an overview of your performance as well as performance details for a specific time frame. You can further analyze your performance by country and by Placement ID.

    For your payments history and payout details, go to the "Audience Network" section and select the Payout tab.

    We won't disclose specific advertiser information in your reports. If you would like to filter a specific advertiser or category of advertisers, go to the "Audience Network" section in App Settings and select the Filter tab.

    Yes. Read this guide for more details on how to read your app's performance data programmatically.

    Getting Paid

    You can set up payments by completing the publisher payout forms. The forms are located under the payout tab in the "Audience Network" section in your app settings page. We require your bank name, SSN/TIN and tax information in order to process your payouts.

    Note: You need to set up your payout information for ad delivery to start.

    Contact us by clicking on "Need Help?" button within Audience Network Dashboard if you are having problems completing the forms.

    For more information see Add Payout Information.

    You will receive payment on approximately the 21st of each month for the previous month's balance. Read our Audience Network Terms for more information.

    Contact us by clicking on "Need Help?" button within Audience Network Dashboard if you do not receive a payment or if you have questions about the payout process.

    Payments are extracted when you accumulate at least $100 in revenue. You'll receive payments on the 21st of each month for the previous month's balance.

    First please check your Audience Network/Payout tab to confirm you have completed the payouts flow.

    Contact us by clicking on "Need Help?" button within Audience Network Dashboard if you have problems with any payment-related issue.

    If you'd like to change any of your payment information, go to the "Audience Network" section in App Settings and select the Payout tab.

    We believe that the Audience Network provides a mobile advertising experience that will better help publishers and developers monetize their apps, but we cannot commit to a specific revenue share at this point. Real-time reporting and expected payout are available in the "Audience Network" section in your app settings page.

    Managing your apps

    To add someone to an administrator or developer role on an existing Facebook app, navigate to the Roles tab of the App Dashboard and select "Add Administrators" or "Add Developers".

    In This Section

    Information for Child-Directed Apps and Services

    Explains your responsibilities under the U.S. Children's Online Privacy Protection Act (COPPA).

    California Consumer Privacy Act (CCPA) Compliance

    Describes how to limit your app or website's use of personal information to comply with the California Consumer Privacy Act (CCPA).