繼續操作前,請務必詳閱 Audience Network 新手指南與 Android 新手指南。
To utilize this guide effectively, you should be familiar with implementing native ads and native banner ads.
Android Audience Network SDK 5.1 版本已新增此方法。
自 5.3.0
及以上版本起,必須明確初始化 Audience Network Android SDK。請參閱本文件瞭解如何初始化 Audience Network Android SDK。
在建立廣告物件或載入廣告之前,應初始化 Audience Network SDK。建議在應用程式啟動時使用此方法。
public class YourApplication extends Application { ... @Override public void onCreate() { super.onCreate(); // Initialize the Audience Network SDK AudienceNetworkAds.initialize(this); } ... }
Add the following code at the top of your activity class in order to import the Facebook Ads SDK:
import com.facebook.ads.*;
private NativeAd nativeAd; public class NativeAdActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { ... // Instantiate an NativeAd object. // NOTE: the placement ID will eventually identify this as your App, you can ignore it for // now, while you are testing and replace it later when you have signed up. // While you are using this temporary code you will only get test ads and if you release // your code like this to the Google Play your users will not receive ads (you will get a no fill error). nativeAd = new NativeAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new NativeAdListener() { ... }; // Initiate a request to load an ad. nativeAd.loadAd( nativeAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .withMediaCacheFlag(NativeAdBase.MediaCacheFlag.ALL) .build()); } }
If you want the ad to be shown as soon as it is loaded, you can render the custom template inside the AdListener
's onAdLoaded()
method and add it to your container.
private NativeAd nativeAd; ... NativeAdListener nativeAdListener = new NativeAdListener() { ... @Override public void onAdLoaded(Ad ad) { // Render the Native Ad Template View adView = NativeAdView.render(MainActivity.this, nativeAd); LinearLayout nativeAdContainer = (LinearLayout) findViewById(R.id.native_ad_container); // Add the Native Ad View to your ad container. // The recommended dimensions for the ad container are: // Width: 280dp - 500dp // Height: 250dp - 500dp // The template, however, will adapt to the supplied dimensions. nativeAdContainer.addView(adView, new LayoutParams(MATCH_PARENT, 800)); } ... }
In case of not showing the ad immediately after the ad has been loaded
, the developer is responsible for checking whether or not the ad has been invalidated. Once the ad is successfully loaded, the ad will be valid for 60 mins
. You will not get paid
if you are showing an invalidated
ad. Please check the sample code for Scenario of Displaying the Ad with Delay.
Run the code and you should see the following:
private NativeBannerAd mNativeBannerAd; ... @Override public void onCreate(Bundle savedInstanceState) { ... // Instantiate an NativeBannerAd object. // NOTE: the placement ID will eventually identify this as your App, you can ignore it for // now, while you are testing and replace it later when you have signed up. // While you are using this temporary code you will only get test ads and if you release // your code like this to the Google Play your users will not receive ads (you will get a no fill error). mNativeBannerAd = new NativeBannerAd(this, "YOUR_PLACEMENT_ID"); NativeAdListener nativeAdListener = new NativeAdListener() { ... }; // Initiate a request to load an ad. mNativeBannerAd.loadAd( mNativeBannerAd.buildLoadAdConfig() .withAdListener(nativeAdListener) .build()); } }
If you want the ad to be shown as soon as it is loaded, you can render the custom template inside the AdListener
's onAdLoaded()
method and add it to your container.
@Override public void onAdLoaded(Ad ad) { // Render the Native Banner Ad Template View adView = NativeBannerAdView.render(MainActivity.this, mNativeBannerAd, NativeBannerAdView.Type.HEIGHT_100); LinearLayout nativeBannerAdContainer = (LinearLayout) findViewById(R.id.native_banner_ad_container); // Add the Native Banner Ad View to your ad container nativeBannerAdContainer.addView(adView); }
In case of not showing the ad immediately after the ad has been loaded
, the developer is responsible for checking whether or not the ad has been invalidated. Once the ad is successfully loaded, the ad will be valid for 60 mins
. You will not get paid
if you are showing an invalidated
ad. Please check the sample code for Scenario of Displaying the Ad with Delay.
Run the code and you should see the following:
Custom Native Banner Ad Formats come in three templates:
Template View Type | Height | Width | Attributes Included |
---|---|---|---|
| 50dp | Flexible width | Icon, title, context, and CTA button |
| 100dp | Flexible width | Icon, title, context, and CTA button |
| 120dp | Flexible width | Icon, title, context, description, and CTA button |
With a native custom template, you can customize the following elements:
If you want to customize certain elements, then it is recommended to use a design that fits in with your app's layouts and themes.
You will need to build an attributes object and provide a loaded native ad or native banner ad to render these elements:
Use Color.parseColor()
if you'd like to use hex colors.
Build a NativeAdViewAttributes
object and provide it as an argument in NativeAdView.render()
:
@Override public void onAdLoaded(Ad ad) { // Set the Native Ad attributes NativeAdViewAttributes viewAttributes = new NativeAdViewAttributes() .setBackgroundColor(Color.BLACK) .setTitleTextColor(Color.WHITE) .setDescriptionTextColor(Color.LTGRAY) .setButtonColor(Color.WHITE) .setButtonTextColor(Color.BLACK); View adView = NativeAdView.render(MainActivity.this, nativeAd, viewAttributes); LinearLayout nativeAdContainer = (LinearLayout) findViewById(R.id.native_ad_container); // Add the Native Ad View to your ad container nativeAdContainer.addView(adView, new LayoutParams(MATCH_PARENT, 800)); }
The above code will render an ad that looks like this:
Build a NativeAdViewAttributes
object and provide it as an argument in NativeBannerAdView.render()
:
@Override public void onAdLoaded(Ad ad) { // Set the NativeAd attributes NativeAdViewAttributes viewAttributes = new NativeAdViewAttributes() .setBackgroundColor(Color.BLACK) .setTitleTextColor(Color.WHITE) .setDescriptionTextColor(Color.LTGRAY) .setButtonColor(Color.WHITE) .setButtonTextColor(Color.BLACK); View adView = NativeBannerAdView.render(MainActivity.this, nativeAd, NativeBannerAdView.Type.HEIGHT_100, viewAttributes); LinearLayout nativeBannerAdContainer = (LinearLayout) findViewById(R.id.native_banner_ad_container); // Add the Native Banner Ad View to your ad container nativeBannerAdContainer.addView(adView); }
The above code will render an ad that looks like this:
Relevant code samples in both Swift and Objective-C are available on our GitHub sample app respository
Test your ads integration with your app.
As soon as we receive a request for an ad from your app or website, we'll review it to make sure it complies with Audience Network policies and the Facebook community standards