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, 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:
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:
setAdvertiserTrackingEnabled
flag to not deliver personalized ads via Audience Network.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.
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)?
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:
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 https://www.charlesproxy.com.
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 (https://www.charlesproxy.com/documentation/proxying/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?
Update Charles Proxy / SSL Proxying setting by adding Host: “graph.facebook.com” and Port: “8888”, Host: “graph.facebook.com” and Port: “443”.
3.2 Read SSL Proxy request / response content for Audience NetworkGo to your mobile app and make ad requests, you should see ad request going to FAN server: https://graph.facebook.com/network_ads_common/ and ad response in JSON text form within HTTPS response contents.
3.3 Confirming ad request sent to and received from Audience NetworkAd 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"
},
…
}
If no entry point is observed from Charles Proxy for Audience Network end-point (https://graph.facebook.com/network_ads_common/), 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 https://www.facebook.com/business/publishersupport.
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:
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 (developers.facebook.com/apps/[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:
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.
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.
Information for Child-Directed Apps and ServicesExplains your responsibilities under the U.S. Children's Online Privacy Protection Act (COPPA). | California Consumer Privacy Act (CCPA) ComplianceDescribes how to limit your app or website's use of personal information to comply with the California Consumer Privacy Act (CCPA). |