메인 콘텐츠로 건너뛰기

개요

네이티브 광고는 앱의 UI에 자연스럽게 통합되는 광고 포맷입니다. 광고 요소(제목, 이미지, 설명 등)를 앱 디자인에 맞게 자유롭게 커스터마이징할 수 있습니다.

주요 특징

  • 앱 UI와 완벽하게 통합 가능한 커스텀 디자인
  • 광고 요소 개별 접근 및 배치
  • 광고주 프로필 정보 표시 옵션
  • 추가 커스텀 필드 지원

구현 방법

네이티브 광고 구현은 다음 단계로 진행됩니다:
  1. 광고 로드
  2. 커스텀 뷰 생성
  3. 뷰 바인딩
  4. Delegate 처리

1. 광고 로드

AdropNativeAd 인스턴스를 생성하고 광고를 로드합니다.

Context ID 설정

문맥 타겟팅을 위해 Context ID를 설정할 수 있습니다.
개발 중에는 테스트 유닛 ID를 사용하세요. 테스트 유닛 ID 섹션을 참고하세요.

2. 커스텀 뷰 생성

스토리보드 또는 코드로 네이티브 광고 뷰를 구성합니다.

UIKit (Storyboard/XIB)

스토리보드에서 AdropNativeAdView를 생성하고 광고 요소를 IBOutlet으로 연결합니다.

UIKit (코드)


3. 뷰 바인딩

AdropNativeAdView에 광고 요소를 바인딩하여 광고 데이터를 표시합니다.

바인딩 메서드

onClick 클로저는 사용자가 바인딩된 뷰를 탭할 때 호출됩니다. 현재 AdropNativeAd? 인스턴스와 탭된 UIView를 파라미터로 받습니다. 제공하지 않으면 기본 클릭 동작(목적지 URL 열기)이 사용됩니다.
광고주 프로필을 표시하려면 애드컨트롤 콘솔에서 해당 광고 유닛의 광고주 프로필 표시를 활성화해야 합니다.

4. Delegate 처리

AdropNativeAdDelegate를 구현하여 광고 이벤트를 처리합니다.

Delegate 메서드


클로저 콜백

Delegate 대신 클로저 기반 콜백을 사용할 수 있습니다.
Delegate와 클로저를 동시에 설정하면 두 가지 모두 호출됩니다.

광고 속성

AdropNativeAd 객체를 통해 광고 데이터에 접근할 수 있습니다.

기본 속성

광고주 프로필

커스텀 필드

애드컨트롤 콘솔에서 설정한 추가 텍스트 항목에 접근할 수 있습니다.
extra 필드는 애드컨트롤 콘솔의 광고 유닛 설정에서 정의한 추가 텍스트 항목 ID를 키로 사용합니다.

속성 목록

AdropNativeAdProfile


커스텀 클릭

커스텀 클릭을 사용하면 기본 동작(목적지 URL 열기) 대신 광고 클릭 동작을 직접 처리할 수 있습니다.

설정

전체 클릭 영역

setIsEntireClick(_:)을 사용하여 AdropNativeAdView 전체를 클릭 가능하게 만듭니다.
useCustomClicktrue인 경우, setNativeAd(_:)에서 setIsEntireClick(true)가 자동으로 호출됩니다.

수동 클릭

performClick()을 사용하여 수동으로 클릭 이벤트를 트리거합니다.

URL 열기

open(_:useInAppBrowser:)를 사용하여 프로그래밍 방식으로 URL을 엽니다.

영상 트래킹과 VTR

Adrop은 네이티브 광고의 영상 지표 — VTR(영상 완수율), onAdVideoStart, onAdVideoEnd — 를 SDK 미디어 컨테이너(AdropNativeAdView.setMediaView(_:)로 바인딩된 UIView) 안에서 영상이 렌더링될 때에만 수집합니다. AdropNativeAd.asset 프로퍼티는 원본 이미지 또는 영상 파일의 URL을 반환합니다. 이 값은 썸네일 표시나 매체사 자체 분석 등 부가 메타데이터 용도로 노출된 것이며, 재생을 직접 처리하기 위한 것이 아닙니다.
영상 네이티브 광고의 asset URL을 자체 영상 플레이어(AVPlayer, AVPlayerViewController 또는 서드파티 플레이어)에 직접 전달하지 마세요. SDK 미디어 컨테이너를 거치지 않으면 다음 현상이 발생합니다.
  • 해당 지면에서 VTR(영상 완수율)이 수집되지 않습니다.
  • onAdVideoStart / onAdVideoEnd 콜백이 호출되지 않습니다.
  • 해당 유닛의 영상 성과 집계가 누락되거나 0으로 보고됩니다.
클릭(onAdClicked)과 노출(onAdImpression) 트래킹은 컨테이너 뷰에 연결되어 있으므로 계속 동작하지만, 영상 관련 신호는 손실됩니다.

권장 패턴

영상 네이티브 광고에는 항상 SDK 미디어 컨테이너를 바인딩하세요.
특정 지면이 반드시 자체 플레이어를 사용해야 하고 VTR이 측정되지 않는 것을 수용한다면, 광고를 AdropNativeAdView에 바인딩한 채로 유지해 클릭과 노출 어트리뷰션은 계속 확보할 수 있습니다. 다만 해당 지면을 내부 리포트에서 비-VTR 인벤토리로 분류하고 SDK가 측정한 영상 성과와 섞지 마세요.

모범 사례

에러 처리

광고 로드 실패 시 대체 UI를 표시하여 사용자 경험을 유지하세요.

테스트 유닛 ID

개발 및 테스트 시 다음 테스트 유닛 ID를 사용하세요.
실제 배포 시에는 반드시 애드컨트롤 콘솔에서 생성한 실제 유닛 ID를 사용하세요.

일괄 로드 (loads)

AdropNativeAd.loads(...)를 사용하면 한 번의 호출로 여러 네이티브 광고를 요청할 수 있습니다. 피드·캐러셀·페이지네이션 리스트에 삽입할 광고 풀을 프리페칭하는 데 유용합니다.

시그니처

사용 방법

델리게이트 메서드

단건 onAdReceived(_:) / onAdFailedToReceive(_:_:) 콜백은 loads 경로에서 호출되지 않습니다. 배치 결과는 반드시 onAdsReceived(_:) / onAdsFailedToReceive(_:)로만 수신하세요.

상수

AdropNativeAd.maxLoadsBatch
Int
기본값:"5"
단일 loads(...) 호출에서 반환되는 광고의 최대 개수.

제약 사항

  • 호출당 최대 5개. 서버가 그 이상을 반환하더라도 앞의 5개만 전달됩니다.
  • 백필은 적용되지 않습니다. 직광고 채움이 없으면 백필 설정과 무관하게 onAdsFailedToReceiveERROR_CODE_AD_NO_FILL로 호출됩니다.
  • AdropBanner.loads(...)와 달리, 네이티브 배치는 모든 광고의 렌더링이 끝날 때까지 기다린 후 onAdsReceived(_:)를 호출합니다. 전달 시점에 각 인스턴스는 완전히 렌더링된 상태입니다.
  • 반환된 광고에 대해 강한 참조를 유지하세요. AdropNativeAdView에 바인딩되기 전에 해제되면 조용히 드롭됩니다.

백필 광고

백필 광고가 활성화된 경우, 직광고가 없을 때 자동으로 백필 광고가 로드됩니다. isBackfilled 프로퍼티로 백필 광고 여부를 확인할 수 있습니다.

AdChoices 위치 조정

백필 네이티브 광고에서 AdChoices 마크가 표시될 코너를 지정할 수 있습니다. load() 호출 전에 AdropNativeAd 인스턴스의 preferredAdChoicesPosition을 설정하세요.
이 설정은 백필 네트워크에 전달되는 선호 위치 힌트로, 백필 네이티브 광고에만 적용됩니다 — 직광고에는 영향이 없습니다. 반드시 load() 호출 전에 설정해야 하며, 백필 네트워크가 정책상 다른 위치로 표시할 수 있습니다.
백필 광고를 사용하려면 AdropAds-Backfill 의존성을 추가해야 합니다. 시작하기를 참고하세요.

관련 문서

시작하기

SDK 설치 및 초기화

배너 광고

배너 광고 구현하기

전면 광고

전면 광고 구현하기

보상형 광고

보상형 광고 구현하기