確保您在開始操作前,已經先行參閱 Audience Network 新手指南及 Android 新手指南。
Android Audience Network SDK 5.1 版已加入此方法。
若是 5.3.0
或更高版本,您必須初始化 Android 版 Audience Network SDK如欲了解有關初始化 Android 版 Audience Network SDK 的方法,請參閱此文件。
在建立廣告物件及載入廣告前,請為 Audience Network SDK 執行初始化。我們建議您在啟動應用程式時執行此動作。
public class YourApplication extends Application { ... @Override public void onCreate() { super.onCreate(); // Initialize the Audience Network SDK AudienceNetworkAds.initialize(this); } ... }
在動態類別頂端加入下列程式碼,以匯入 Facebook 廣告 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()); } }
如果您想廣告在載入後儘快顯示,可以在 AdListener
的 onAdLoaded()
方法中顯示自訂範本,並將之加入您的容器。
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)); } ... }
如果廣告在 loaded
後沒有立即顯示,開發人員就需要檢查相應廣告是否已經無效。成功載入後,廣告的有效期為 60 mins
。如果您顯示的廣告屬於 invalidated
狀態,便不會得到收取款項的 paid
狀態。請查看程式碼範例,以了解延遲顯示廣告的場景。
執行程式碼後,您應該就可以看到下列畫面:
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()); } }
如果您想廣告在載入後儘快顯示,可以在 AdListener
的 onAdLoaded()
方法中顯示自訂範本,並將之加入您的容器。
@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); }
如果廣告在 loaded
後沒有立即顯示,開發人員就需要檢查相應廣告是否已經無效。成功載入後,廣告的有效期為 60 mins
。如果您顯示的廣告屬於 invalidated
狀態,便不會得到收取款項的 paid
狀態。請查看程式碼範例,以了解延遲顯示廣告的場景。
執行程式碼後,您應該就可以看到下列畫面:
自訂原生橫額廣告格式共有 3 種範本:
範本檢視類型 | 高度 | 闊度 | 包含屬性 |
---|---|---|---|
| 50dp | 彈性闊度 | 圖示、標題、背景資料及 CTA 按鈕 |
| 100dp | 彈性闊度 | 圖示、標題、背景資料及 CTA 按鈕 |
| 120dp | 彈性闊度 | 圖示、標題、背景資料、說明及呼籲字句按鈕 |
若使用原生自訂範本,您就可以自訂下列素材:
如果您想自訂某些素材,建議採用符合您應用程式版面與主題的設計。
您需要建立屬性物件,並提供已載入的原生廣告或原生橫額廣告以顯示這些素材:
如果您要使用 16 進制顏色,請使用 Color.parseColor()
。
建立 NativeAdViewAttributes
物件並在 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)); }
以上程式碼將顯示廣告,如下所示:
建立 NativeAdViewAttributes
物件並在 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); }
以上程式碼將顯示廣告,如下所示:
前往 Github 探索我們的 Audience Network Android 程式碼範例。將多個專案匯入到您的整合開發環境 (IDE),然後在裝置或模擬器上運行。
一旦您準備好正式推出應用程式並開始創造收入,請先確定應用程式完全符合 Audience Network 政策以及 Facebook 社群守則後,然後就可以提交您的應用程式以供審查。