계속하기 전에 Audience Network 시작하기 및 Android 시작하기 가이드를 완료했는지 확인하세요.
이 가이드를 효과적으로 활용하려면 네이티브 광고 및 네이티브 배너 광고를 구현하는 것에 익숙해야 합니다.
이 메서드는 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); } ... }
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 | 유연한 너비 | 아이콘, 제목, 컨텍스트, 설명 및 CTA 버튼 |
네이티브 맞춤 템플릿을 사용하면 다음 요소를 맞춤 설정할 수 있습니다.
특정 요소를 맞춤 설정하려면 앱의 레이아웃과 테마에 맞는 디자인을 사용하는 것이 좋습니다.
속성 개체를 빌드하고 읽어들인 네이티브 광고 또는 네이티브 배너 광고를 제공하여 다음 요소를 렌더링해야 합니다.
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에서 Facebook의 Audience Network Android 코드 샘플을 확인하세요. IDE에 프로젝트를 가져온 다음 기기나 에뮬레이터에서 실행합니다.
앱에 광고를 전송하여 수익을 창출할 준비가 완료되었다면, 앱이 Audience Network 정책 및 Facebook 커뮤니티 규정을 준수하는지 확인한 후 검수를 위해 제출하세요.