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. 네이티브 광고 레이아웃 만들기
  • 1-1. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기
  • 2. 네이티브 광고 불러오기
  1. 개발자 가이드
  2. Adrop SDK로 광고 노출하기
  3. Flutter 앱에 Adrop SDK 설치하기

Flutter 네이티브 광고

PreviousFlutter 스플래시 광고NextReact Native 앱에 Adrop SDK 설치하기

Last updated 2 months ago

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

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

  • headline : 제목

  • body : 내용

  • profile

    • displayLogo : 광고주 로고

    • displayName : 광고주 이름

  • asset : 소재 이미지

  • destinationURL : 링크

  • extra

    • id : 커스텀 필드 아이디

    • text : 커스텀 필드의 광고주가 입력한 컨텐츠

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

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

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

Widget nativeAdView(BuildContext context) {
    if (!isLoaded) return Container();

    return Container(
      margin: const EdgeInsets.symmetric(vertical: 16),
      decoration: BoxDecoration(
        border: Border.all(color: Colors.black),
      ),
      width: MediaQuery.of(context).size.width,
      child: AdropNativeAdView(
        ad: nativeAd,
        child: Container(
          padding: const EdgeInsets.all(16),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Row(
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  Image.network(
                    nativeAd?.properties.profile?.displayLogo ?? '',
                    width: 24,
                    height: 24,
                  ),
                  const SizedBox(
                    width: 4,
                  ),
                  Text(
                    nativeAd?.properties.profile?.displayName ?? '',
                  )
                ],
              ),
              const SizedBox(
                height: 8,
              ),
              if (nativeAd?.properties.headline != null)
                Text(
                  nativeAd?.properties.headline ?? '',
                  style: const TextStyle(
                    fontSize: 16,
                    fontWeight: FontWeight.bold,
                  ),
                ),
              if (nativeAd?.properties.body != null)
                Text(
                  nativeAd?.properties.body ?? '',
                  style: const TextStyle(
                    fontSize: 14,
                  ),
                ),
              if (nativeAd?.properties.asset != null)
                Column(children: [
                  const SizedBox(
                    height: 4,
                  ),
                  Image.network(
                    nativeAd?.properties.asset ?? '',
                    loadingBuilder: (context, child, loadingProgress) {
                      if (loadingProgress == null) return child;
                      return const CupertinoActivityIndicator();
                    },
                    errorBuilder: (context, error, stackTrace) {
                      return const Icon(Icons.error);
                    },
                    width: MediaQuery.of(context).size.width,
                    height: 300,
                  )
                ]),
              if (nativeAd?.properties.extra['t1'] != null)
                Column(
                  children: [
                    const SizedBox(
                      height: 8,
                    ),
                    Text(
                      nativeAd?.properties.extra['t2'] ?? '',
                      style: const TextStyle(
                        fontSize: 14,
                      ),
                    ),
                    Text(
                      nativeAd?.properties.extra['t3'] ?? '',
                      style: const TextStyle(
                        fontSize: 14,
                      ),
                    ),
                  ],
                )
            ],
          ),
        ),
      ),
    );
  }

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

Ad type
Ad unit ID

Test Native ID

PUBLIC_TEST_UNIT_ID_NATIVE

Step 1. Contsturctor Event Listener

final AdropNativeListener listener = AdropNativeListener(
    onAdReceived: (ad) =>
        debugPrint('Adrop Native Ad loaded with unitId ${ad.unitId}!'),
    onAdFailedToReceive: (ad, errorCode) => 
        debugPrint('error in ${ad.unitId} while loading: $errorCode'),
    ...
);

Step 2. Display a Native AD


class YourComponent extends StatefulWidget {
  const YourComponent({super.key});

  @override
  State<StatefulWidget> createState() => _YourComponentState();
}

class _YourComponentState extends State<YourComponent> {
  final AdropNativeAd nativeAd = AdropNativeAd(
    unitId: 'YOUR_UNIT_ID',
    listener: listener,
  );
  
  bool isLoaded = false;

  @override
  void initState() {
    super.initState();
    nativeAd.load();
  }
  
  Widget nativeAdView(BuildContext context) {
    if (!isLoaded) return Container();
    
    return AdropNativeView(
      ad: nativeAd,
      child: Column(
        children: [
          if (nativeAd.properties.profile?.displayLogo)
              Image.network(
                nativeAd.properties.profile?.displayLogo,
                width: 24,
                height: 24,
              ),
          if (nativeAd.properties.profile?.displayName) 
              Text(
                nativeAd.properties.profile?.displayName,
              ),
          if (nativeAd.properties.headline != null)
            Text(nativeAd.properties.headline),
          if (nativeAd.properties.body != null)
            Text(nativeAd.properties.body),
          if (nativeAd.properties.asset != null)
            Image.network(nativeAd.properties.asset, width: {{yourWidth}}, height: {{yourHeight}}),
          if (nativeAd.properties.extra['sampleExtraId'] != null)
            Text(nativeAd.properties.extra['sampleExtraId']),
        ],
      )
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: nativeAdView(context),
      ),
    );
  }
}
    

자세한 예시는 에서 확인하실 수 있습니다. 타입 또한 에서 확인하실 수 있습니다.

Github
Github
샘플코드 자세히 보기