Welcome to Adrop
  • 애드컨트롤 살펴보기
  • 애드노트 살펴보기
  • 콘솔 가이드
    • 💫애드컨트롤 빠르게 시작하기
    • 광고 플랫폼 배포하기
      • 광고 상품 소개서 등록 가이드
      • 광고 소재 제작 가이드
    • 퀘스트 광고 상품 만들기
      • CPQ 광고 상품 생성 및 CPQ 캠페인 운영하기
      • 퀘스트 리포트 활용하기
    • 광고 상품 만들기
      • 광고 상품 생성하기
        • 필수 타겟팅 지정 기능 알아보기
        • 필수 타겟팅 외 추가 타겟팅 지정 기능 알아보기
        • 광고 상품 수정하기
      • 인하우스 광고 상품 생성 및 인하우스 캠페인 운영하기
      • 광고 상품 구성 변경하기
      • 광고 상품 노출 순서 변경하기
      • 광고 상품 상태 이해하기
      • 광고 상품 할인율 기능 알아보기
        • 광고 상품 할인 내역 확인하기
      • 타겟팅 정보 확인 기능 알아보기
    • 광고 유닛 생성하기
      • 배너 광고 유닛
        • 캐러셀 배너 설정하기
      • 전면 광고 유닛
      • 보상형 광고 유닛
      • 네이티브 광고 유닛
      • 팝업 광고 유닛
      • 스플래시 광고 유닛
      • 광고 유닛 수정하기
    • 캠페인 예약 관리
      • 성과 집계 캠페인 운영하기
      • 캠페인 생성하기
      • 캠페인 소재 미리보기
      • 캠페인 소재 브라우저 설정하기
      • 캠페인 심사하기
      • 캠페인 성과 확인하기
      • 캠페인 일시정지하기
        • 캠페인 소재별 일시정지/재시작
      • 캠페인 취소하기
      • 캠페인 수정하기
      • 캠페인 운영 잘하기
        • 캠페인 검색 및 기간 필터 기능 활용하기
        • 캠페인 예약 약관 업로드 활용하기
    • 리포트 탭 사용하기
    • 대시보드 활용하기
    • 오디언스 타겟팅
      • 타겟팅과 카테고리 이해하기
      • 타겟팅 생성하기
        • 타겟팅 노출 순서 편집하기
      • 프로퍼티 타겟팅 생성하기 (1P 데이터로 타겟팅 만들기)
      • 이벤트 타겟팅 생성하기 (커스텀 이벤트 생성하기)
      • 문맥 타겟팅
      • 타겟팅 할증 기능 알아보기
    • 설정
      • 광고 플랫폼
        • 광고 계정 생성하기
      • 앱
        • Adrop에 앱 등록하기
      • 요금제 및 청구
        • 환불 정책
        • 수익금 지급 정책
      • 멤버
        • 멤버 추가하기
        • 멤버 역할
      • 고급 설정 기능
        • 소재 노출 요일 및 시간 설정 제공 기능
        • CPP 예산 수정 및 타겟팅 지정 허용 기능
        • 오디언스 타겟팅 최소 모수 제한 완화 기능
        • 소재 미리보기 활성화 여부 확인 기능
    • 개발자 센터
      • 테스트 캠페인 직접 해보기
    • 계정
      • 내 계정
      • 내 그룹
      • 내 알림
      • 내 기기
    • 👾 [Google Admob] 맞춤 어댑터로 네트워크 광고 지원하기
    • 💭FAQ
    • 💰 수익금 정산
  • 개발자 가이드
    • Adrop SDK로 광고 노출하기
      • 설정 파일 준비하기
      • Android 앱에 Adrop SDK 설치하기
        • Android 배너 광고
        • Android 전면 광고
        • Android 보상형 광고
        • Android 네이티브 광고
        • Android 팝업 광고
        • Android 스플래시 광고
          • 스플래시 액티비티 연동
          • 스플래시 뷰 연동
        • Android 퀘스트 광고
      • iOS 앱에 Adrop SDK 설치하기
        • iOS 배너 광고
        • iOS 전면 광고
        • iOS 보상형 광고
        • iOS 네이티브 광고
        • iOS 팝업 광고
        • iOS 스플래시 광고
          • 스플래시 뷰컨트롤러 연동
          • 스플래시 뷰 연동
          • 스플래시 뷰컨트롤러 연동 (SwiftUI)
        • iOS 퀘스트 광고
      • Flutter 앱에 Adrop SDK 설치하기
        • Flutter 배너 광고
        • Flutter 전면 광고
        • Flutter 보상형 광고
        • Flutter 팝업 광고
        • Flutter 스플래시 광고
        • Flutter 네이티브 광고
      • React Native 앱에 Adrop SDK 설치하기
        • React Native 배너 광고
        • React Native 전면 광고
        • React Native 보상형 광고
        • React Native 팝업 광고
        • React Native 네이티브 광고
        • React Native 스플래시 광고
      • 웹앱에 Adrop SDK 설치하기 (Dprecated)
        • 웹 앱 배너광고 노출하기 (Dprecated)
        • 웹 앱 네이티브광고 노출하기 (Dprecated)
      • 광고 적용 확인하기
      • Google Admob 사용자를 위한 가이드
        • Android Admob 사용자를 위한 Adrop adapter 연결 가이드
        • iOS Admob 사용자를 위한 Adrop adapter 연결 가이드
        • Flutter Admob 사용자를 위한 Adrop adapter 연결 가이드
      • 📈Metrics
        • 사용자 속성
          • Android Adrop Metrics 설정하기
          • iOS Adrop Metrics 설정하기
          • Flutter Adrop Metrics 설정하기
          • React Native Adrop Metrics 설정하기
          • 웹앱 Adrop Metrics 설정하기
          • 사전 설정된 값 (Preset)
        • Log Events
          • Android 로그이벤트
          • iOS 로그이벤트
          • Flutter 로그이벤트
          • React Native 로그이벤트
          • Web 앱 로그이벤트
      • Adrop SDK 상세 스펙 확인
        • Android
          • Interfaces
            • AdropBannerAdListener
            • AdropInterstitialAdListener
            • AdropRewardedAdListener
            • AdropNativeAdListener
            • AdropPopupAdListener
          • Classes
            • AdropBanner
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropNativeAd
            • AdropNativeAdView
            • AdropMediaView
            • AdropPopupAd
            • AdropEventParam
          • Errors
          • Objects
        • iOS
          • Interfaces
            • AdropBannerDelegate
            • AdropInterstitialAdDelegate
            • AdropRewardedAdDelegate
            • AdropNativeAdDelegate
            • AdropPopupAdDelegate
          • Classes
            • Adrop
            • AdropBanner
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropNativeAd
            • AdropNativeAdView
            • AdropPopupAd
            • AdropMetrics
          • Errors
        • Flutter
          • Classes
            • Adrop
            • AdropBannerView
            • AdropBannerListener
            • AdropInterstitialAd
            • AdropInterstitialListener
            • AdropRewardedAd
            • AdropRewardedListener
            • AdropPopupAd
            • AdropPopupListener
            • AdropMetrics
          • Typedefs
            • AdropAdEventCallback
            • AdropAdFailedCallback
            • AdropAdCallback
            • AdropAdErrorCallback
            • AdropAdRewardEventCallback
          • Errors
        • React Native
          • Classes
            • Adrop
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropListener
            • AdropMetrics
          • Components
            • <AdropBanner/>
          • Hooks
            • useAdropInterstitialAd
            • useAdropRewardedAd
          • Errors
    • Adrop API를 활용해 광고 노출하기
      • API를 활용한 배너광고
      • API를 활용한 네이티브 광고
      • Metrics
      • REST API
        • GET /request
        • Errors
    • Repositories
    • Test Environment
  • 캠페인 가이드
    • 1️⃣캠페인 예약하기 (광고주용)
      • 1. 플랫폼 가입
      • 2. 캠페인 생성
        • 시작일이 임박한 캠페인 유의사항
      • 3. 광고 소재 등록
      • 4. 캠페인 관리
      • 5. 캠페인 일시정지 & 취소
      • 설정 및 권한
        • 결제 정보
        • 멤버 추가하기
        • 멤버 역할
      • 광고 정책
        • 광고 정책
        • 업종별 광고 정책
        • 광고 불가 업종 안내
    • 2️⃣정산
  • 📖용어집
    • 캠페인 상태
    • 광고 소재
  • 릴리즈 노트
    • 릴리즈 노트
Powered by GitBook
On this page
  • 1. xml 으로 네이티브 광고 레이아웃 만들기
  • 2. 네이티브 광고 불러오기
  • 3. 네이티브 광고 연결 후 조회하기
  • 4. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기
  • 네이티브 광고 Destroy
  • 적용 확인하기
  1. 개발자 가이드
  2. Adrop SDK로 광고 노출하기
  3. Android 앱에 Adrop SDK 설치하기

Android 네이티브 광고

PreviousAndroid 보상형 광고NextAndroid 팝업 광고

Last updated 2 months ago

1. xml 으로 네이티브 광고 레이아웃 만들기

네이티브 광고에서는 다음과 같은 view의 종류들이 포함될 수 있습니다.

  • 아이콘

  • 광고 게시자

  • 헤드라인

  • 바디

  • 미디어

  • CTA 버튼

예를 들어, 소셜 피드 형식의 네이티브 광고를 구성한다면 다음과 같은 레이아웃을 만들 수 있습니다.

  • - parent view

    ⌞ Logo (ImageView)

    ⌞ Name (TextView)

    ⌞ Media (AdropMediaView)

    ⌞ Headline (TextView) ⌞ Body (TextView)

  • 제목, 내용, 소재 이미지는 컴포넌트를 제공하지만 자유롭게 사용하실 수 있도록 필드 데이터를 제공합니다.

<io.adrop.ads.nativeAd.AdropNativeAdView
    android:id="@+id/adrop_native_ad_view"
    ...>
    <LinearLayout
        android:orientation="horizontal"
        ... >
          <ImageView
           android:id="@+id/ad_icon"
           ... />
          <TextView
            android:id="@+id/ad_advertiser"
            ... />
     </LinearLayout>

   <io.adrop.ads.nativeAd.AdropMediaView
       android:id="@+id/ad_media"
       ... />

    <TextView
        android:id="@+id/ad_headline"
        ... />
    
    <TextView
        android:id="@+id/ad_body"
        ... />
</LinearLayout>

2. 네이티브 광고 불러오기

로컬 환경에서 배너 노출을 확인하고 싶다면, 아래의 TEST_UNIT_ID를 사용해주세요.

Ad type
Ad unit ID

Native

PUBLIC_TEST_UNIT_ID_NATIVE

val nativeAd = AdropNativeAd(context, "YOUR_UNIT_ID OR TEST_UNIT_ID")
nativeAd.listener = object: AdropNativeAdListener {
    override fun onAdReceived(ad: AdropNativeAd) {
        Log.d("adrop", "AdropNativeAd receive ${ad.creativeId}")
        populateNativeAdView(ad)
    }
    
    override fun onAdFailedToReceive(ad: AdropNativeAd, errorCode: AdropErrorCode) {
        Log.d("adrop", "AdropNativeAd failed to receive $errorCode")
    }
    
    override fun onAdClicked(ad: AdropNativeAd) {
        Log.d("adrop", "AdropNativeAd clicked")
    }
}
nativeAd.load()
AdropNativeAd nativeAd = new AdropNativeAd(context, "YOUR_UNIT_ID");
nativeAd.setListener(new AdropNativeAdListener() {
    @Override
    public void onAdReceived(@NotNull AdropNativeAd ad) {
        Log.d("adrop", "AdropNativeAd received" + ", " + ad.getCreativeId());    
        populateNativeAdView(ad);
    }
    
    @Override
    public void onAdFailedToReceive(@NotNull AdropNativeAd ad, @NotNull AdropErrorCode errorCode) {
        Log.d("adrop", "AdropNativeAd failed to receive " + errorCode);
    }
    
    @Override
    public void onAdClick(@NotNull AdropNativeAd ad) {
        Log.d("adrop", "AdropNativeAd clicked");    
    }
});
nativeAd.load();

3. 네이티브 광고 연결 후 조회하기

val adView: AdropNativeAdView = findViewById(R.id.adrop_native_ad_view)

fun populateNativeAdView(ad; AdropNativeAd) {
    val imageVIew = findViewById<ImageView>(R.id.ad_icon)
    // set ad.profile.displayLogo into imageView
    adView.setProfileLogoView(imageVIew)
    
    val nameView = findViewById<TextView>(R.id.ad_advertiser)
    nameView.text = ad.profile.displayName
    adView.setProfileNameView(nameView)
    
    val bodyView = findViewById<TextView>(R.id.ad_body)
    bodyView.text = ad.body
    adView.setBodyView(bodyView)
    
    val headlineView = findViewById<TextView>(R.id.ad_headline)
    headlineView.text = ad.headline
    adView.setHeadlineView(headlineView)
    
    adView.setMediaView(findViewById(R.id.ad_media))
    ...
    
    // AdropNativeAdView의 setNativeAd 메소드를 호출하여 AdropNativeAd를 등록합니다.
    adView.setNativeAd(ad)
    
    ...
}
AdropNativeAdView adView = findViewById(R.id.adrop_native_ad_view);

void populateNativeAdView(AdropNative ad) {
    ImageView imageView = findViewById(R.id.ad_icon);
    // set ad.getProfile().getDisplayLogo() into imageView
    adView.setProfileLogoView(imageView, null);
    
    TextView nameView = findViewById(R.id.ad_advertiser);
    nameView.setText(ad.getProfile().getDisplayName());
    adView.setProfileNameView(nameView, null);

    TextView headlineView = findViewById(R.id.ad_headline);
    headlineView.setText(ad.getHeadline());
    adView.setHeadLineView(headlineView, null);    

    TextView bodyView = findViewById(R.id.ad_body);
    bodyView.setText(ad.getBody());
    adView.setBodyView(bodyView);
    
    adView.setMediaView(findViewById(R.id.ad_media));
    ...
    
    // AdropNativeAdView의 setNativeAd 메소드를 호출하여 AdropNativeAd를 등록합니다.
    adView.setNativeAd(ad);
    
    ...
}

4. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기

예를 들어, t1, t2, t3 라는 커스텀 필드가 추가 되었을 경우에 대해 알아보겠습니다. * 텍스트 라벨은 광고주 콘솔에 입력되는 라벨입니다.

findViewById<TextView>(R.id.t1).text = ad.extra.optString("t1")
findViewById<TextView>(R.id.t2).text = ad.extra.optString("t2")
findViewById<TextView>(R.id.t3).text = ad.extra.optString("t3")
((TextView) findViewById(R.id.t1)).setText(nativeAd.getExtra().optString("t1"));
((TextView) findViewById(R.id.t2)).setText(nativeAd.getExtra().optString("t2"));
((TextView) findViewById(R.id.t3)).setText(nativeAd.getExtra().optString("t3"));

네이티브 광고 Destroy

nativeAd.destroy()
adView.destroy()
nativeAd.destroy();
adView.destroy();

console에서 발급받은 unitId가 한 번이라도 request 가 들어가면 성공적으로 연결됩니다.

광고 유닛에 연결된 광고가 없다면, 배너가 랜더링 되지 않습니다. 따라서 배너가 정상적으로 랜더링 되는지 확인하고 싶으면, TEST_UNIT_ID 를 사용해 주세요.

TEST_UNIT_ID 를 사용하면 배너 랜더링 확인은 할 수 있지만, console과 연결되지는 않습니다. 따라서 성공적인 연결을 확인하려면 콘솔에 등록한 광고 유닛의 아이디를 적용해 주시고, 하단 이미지 처럼 콘솔을 확인해 주세요.

자세한 예시는 에서 확인하실 수 있습니다. 테스트 유닛 아이디는 프로덕션 배포시 반드시 실제 광고 유닛으로 교체해 주셔야 합니다.

의 예시와 이것을 populate한 의 예시를 보여드립니다.

노출을 종료한다면, 네이티브 광고가 garbage collection 되도록 다음과 같이 destroy해야합니다.

AdropNativeAdView
Github
AdropNativeAdView
AdropNativeAd
AdropNativeAd
적용 확인하기