Использование шаблонов нативной рекламы в Android

Издатели, которым нужен более автоматизированный подход при интеграции нативной рекламы, могут использовать индивидуально настроенный шаблон нативной рекламы в Audience Network. Вы сможете настроить размер, цвет и шрифт нативной рекламы так, чтобы она сочеталась с интерфейсом вашего приложения.

Прежде чем продолжить, обязательно ознакомьтесь с руководствами по началу работы с Audience Network и Android.

Чтобы эффективно использовать это руководство, вы должны быть знакомы с реализацией нативной рекламы и нативной баннерной рекламы.

Шаг 1. Реализация шаблона

Шаг 2. Дальнейшая настройка

Инициализация SDK Audience Network

Этот метод добавлен в 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);       
    }
    ...
}

Шаг 1. Реализация шаблона

Чтобы импортировать 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). Ознакомьтесь с примером кода для сценария отображения рекламы с задержкой.

Выполните этот код. Вы должны увидеть на экране следующее:



Существует три шаблона пользовательских форматов нативной баннерной рекламы:

Тип шаблона представления Высота Ширина Добавляемые атрибуты

NativeBannerAdView.Type .HEIGHT_50

50 точек

Адаптируемая ширина

Значок, заголовок, контекст и кнопка призыва к действию

NativeBannerAdView.Type .HEIGHT_100

100 точек

Адаптируемая ширина

Значок, заголовок, контекст и кнопка призыва к действию

NativeBannerAdView.Type .HEIGHT_120

120 точек

Адаптируемая ширина

Значок, заголовок, контекст, описание и кнопка призыва к действию

Шаг 2. Дальнейшая настройка

В нативном пользовательском шаблоне можно настроить следующие элементы:

  • высота;
  • ширина;
  • цвет фона;
  • цвет заголовка;
  • шрифт заголовка;
  • цвет описания;
  • шрифт описания;
  • цвет кнопки;
  • цвет заголовка кнопки;
  • шрифт заголовка кнопки;
  • цвет границы кнопки.

При настройке отдельных элементов рекомендуется использовать дизайн, который соответствует макетам и темам приложения.

Потребуется создать объект атрибутов и передать загруженную нативную рекламу или нативную баннерную рекламу для отображения этих элементов:

Для указания цветов в шестнадцатеричном формате используйте 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);  
}

Показанный выше код выводит рекламу, которая выглядит примерно так:

Дальнейшие действия