Android에서 네이티브 광고 템플릿 사용

더욱 자유로운 방법으로 네이티브 광고를 통합하려는 퍼블리셔는 맞춤 Audience Network 네이티브 광고 템플릿을 활용할 수 있습니다. 앱의 디자인에 맞춰 네이티브 광고의 크기, 색상, 글꼴을 맞춤 설정하세요.

계속하기 전에 Audience Network 시작하기Android 시작하기 가이드를 완료했는지 확인하세요.

이 가이드를 효과적으로 활용하려면 네이티브 광고네이티브 배너 광고를 구현하는 것에 익숙해야 합니다.

1단계: 템플릿 구현

2단계: 추가적인 맞춤화

Audience Network SDK 초기화

이 메서드는 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);       
    }
    ...
}

1단계: 템플릿 구현

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());
  }
}        

광고를 읽어들이자마자 표시하기를 원하는 경우 AdListeneronAdLoaded() 메서드 내에서 맞춤 템플릿을 렌더링하고 컨테이너에 추가합니다.

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());
  }
}        

광고를 읽어들이자마자 표시하기를 원하는 경우 AdListeneronAdLoaded() 메서드 내에서 맞춤 템플릿을 렌더링하고 컨테이너에 추가합니다.

@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가지 템플릿으로 제공됩니다.

템플릿 보기 유형 높이 너비 속성 포함

NativeBannerAdView.Type .HEIGHT_50

50dp

유연한 너비

아이콘, 제목, 컨텍스트 및 CTA 버튼

NativeBannerAdView.Type .HEIGHT_100

100dp

유연한 너비

아이콘, 제목, 컨텍스트 및 CTA 버튼

NativeBannerAdView.Type .HEIGHT_120

120dp

유연한 너비

아이콘, 제목, 컨텍스트, 설명 및 CTA 버튼

2단계: 추가적인 맞춤화

네이티브 맞춤 템플릿을 사용하면 다음 요소를 맞춤 설정할 수 있습니다.

  • 높이
  • 너비
  • 배경 색상
  • 제목 색상
  • 제목 글꼴
  • 설명 색상
  • 설명 글꼴
  • 버튼 색상
  • 버튼 제목 색상
  • 버튼 제목 글꼴
  • 버튼 테두리 색상

특정 요소를 맞춤 설정하려면 앱의 레이아웃과 테마에 맞는 디자인을 사용하는 것이 좋습니다.

속성 개체를 빌드하고 읽어들인 네이티브 광고 또는 네이티브 배너 광고를 제공하여 다음 요소를 렌더링해야 합니다.

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);  
}

위의 코드는 다음과 같은 광고로 렌더링됩니다.

다음 단계