Прежде чем продолжить, обязательно ознакомьтесь с руководствами по началу работы с Audience Network и Android.
Чтобы эффективно использовать это руководство, вы должны быть знакомы с реализацией нативной рекламы и нативной баннерной рекламы.
Этот метод добавлен в SDK Audience Network 5.1 для Android.
Начиная с версии 5.3.0
явная инициализация SDK Audience Network для Android обязательна. Информацию о том, как инициализировать SDK Audience Network для Android, см. в этом документе.
Чтобы создавать рекламные объекты и загружать рекламу, необходимо инициализировать SDK Audience Network. Рекомендуется сделать это при запуске приложения.
public class YourApplication extends Application { ... @Override public void onCreate() { super.onCreate(); // Initialize the Audience Network SDK AudienceNetworkAds.initialize(this); } ... }
Чтобы импортировать SDK Facebook Ads, добавьте в начало класса действия следующий код:
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()); } }
Если объявление должно показываться сразу после загрузки, можно вывести пользовательский шаблон в методе onAdLoaded()
объекта AdListener
и добавить его в свой контейнер.
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
. Вы не получите оплату (paid
), если показываете недействительное объявление (invalidated
). Ознакомьтесь с примером кода для сценария отображения рекламы с задержкой.
Выполните этот код. Вы должны увидеть на экране следующее:
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()); } }
Если объявление должно показываться сразу после загрузки, можно вывести пользовательский шаблон в методе onAdLoaded()
объекта AdListener
и добавить его в свой контейнер.
@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
. Вы не получите оплату (paid
), если показываете недействительное объявление (invalidated
). Ознакомьтесь с примером кода для сценария отображения рекламы с задержкой.
Выполните этот код. Вы должны увидеть на экране следующее:
Существует три шаблона пользовательских форматов нативной баннерной рекламы:
Тип шаблона представления | Высота | Ширина | Добавляемые атрибуты |
---|---|---|---|
| 50 точек | Адаптируемая ширина | Значок, заголовок, контекст и кнопка призыва к действию |
| 100 точек | Адаптируемая ширина | Значок, заголовок, контекст и кнопка призыва к действию |
| 120 точек | Адаптируемая ширина | Значок, заголовок, контекст, описание и кнопка призыва к действию |
В нативном пользовательском шаблоне можно настроить следующие элементы:
При настройке отдельных элементов рекомендуется использовать дизайн, который соответствует макетам и темам приложения.
Потребуется создать объект атрибутов и передать загруженную нативную рекламу или нативную баннерную рекламу для отображения этих элементов:
Для указания цветов в шестнадцатеричном формате используйте 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); }
Показанный выше код выводит рекламу, которая выглядит примерно так:
Ознакомьтесь с нашими образцами кода Audience Network для Android на портале Github. Импортируйте проекты в свою интегрированную среду разработки и запустите ее на устройстве или в эмуляторе.
Когда вы будете готовы показывать рекламу в приложении, отправьте свое приложение на проверку. Перед отправкой убедитесь в том, что оно соответствует политикам Audience Network и Нормам сообщества Facebook.