메인 콘텐츠로 건너뛰기

Adrop

Adrop SDK의 메인 클래스입니다. SDK 초기화 및 전역 설정을 담당합니다.

정적 메서드

메서드설명
initialize(bool production, {List<String>? targetCountries, bool? useInAppBrowser})SDK를 초기화합니다
setUID(String uid)사용자 식별자를 설정합니다 (SHA-256으로 해시됨)
setTheme(AdropTheme theme)광고 테마를 설정합니다

사용 예시

import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// 기본 초기화 (테스트 모드)
await Adrop.initialize(false);

// 프로덕션 모드 + 타겟 국가 설정
await Adrop.initialize(
  true,
  targetCountries: ['KR', 'JP', 'US'],
);

// 사용자 ID 설정
await Adrop.setUID('user123');

// 테마 설정
await Adrop.setTheme(AdropTheme.dark);

AdropTheme

광고의 다크 모드 설정을 위한 열거형입니다.

설명
light라이트 모드
dark다크 모드
auto시스템 설정 자동 따르기 (기본값)

사용 예시

await Adrop.setTheme(AdropTheme.dark);

AdropErrorCode

광고 로드 및 표시 시 발생할 수 있는 오류 코드입니다.

에러 코드코드 문자열설명
networkERROR_CODE_NETWORK네트워크 오류
internalERROR_CODE_INTERNAL내부 오류
initializeERROR_CODE_INITIALIZESDK 초기화 오류
invalidUnitERROR_CODE_INVALID_UNIT잘못된 광고 유닛 ID
notTargetCountryERROR_CODE_NOT_TARGET_COUNTRY타겟 국가가 아님
inactiveERROR_CODE_AD_INACTIVE비활성화된 광고
adNoFillERROR_CODE_AD_NO_FILL노출 가능한 광고 없음
adLoadDuplicateERROR_CODE_AD_LOAD_DUPLICATED중복된 광고 로드 요청
adLoadingERROR_CODE_AD_LOADING광고 로딩 중
adEmptyERROR_CODE_AD_EMPTY광고가 비어있음
adShownERROR_CODE_AD_SHOWN광고가 이미 표시됨
adHideForTodayERROR_CODE_AD_HIDE_FOR_TODAY오늘 하루 보지 않기 설정됨
accountUsageLimitExceededERROR_CODE_ACCOUNT_USAGE_LIMIT_EXCEEDED계정 사용 한도 초과
adLandscapeUnsupportedERROR_CODE_LANDSCAPE_UNSUPPORTED가로 모드 미지원
backfillNoFillERROR_CODE_AD_BACKFILL_NO_FILL백필 광고도 없음
undefinedUNDEFINED정의되지 않은 오류

프로퍼티

프로퍼티타입설명
codeString에러 코드 문자열

팩토리 메서드

메서드설명
AdropErrorCode.getByCode(String code)코드 문자열로 에러 코드 조회

AdropBannerView

배너 광고를 표시하는 위젯 클래스입니다.

생성자

AdropBannerView({
  required String unitId,
  AdropBannerListener? listener,
})

프로퍼티

프로퍼티타입설명
creativeSizeCreativeSize?크리에이티브 크기
adSizeSize?배너 뷰 크기 설정

메서드

메서드반환 타입설명
load()Future<void>광고 로드
dispose()Future<void>리소스 해제

사용 예시

late AdropBannerView bannerView;

@override
void initState() {
  super.initState();

  bannerView = AdropBannerView(
    unitId: 'YOUR_UNIT_ID',
    listener: AdropBannerListener(
      onAdReceived: (unitId, metadata) {
        setState(() => isLoaded = true);
      },
      onAdFailedToReceive: (unitId, errorCode) {
        debugPrint('에러: ${errorCode.code}');
      },
    ),
  );

  bannerView.load();
}

@override
void dispose() {
  bannerView.dispose();
  super.dispose();
}

AdropBannerListener

배너 광고 이벤트를 처리하는 리스너 클래스입니다.

생성자

AdropBannerListener({
  void Function(String unitId, Map<String, dynamic>? metadata)? onAdReceived,
  void Function(String unitId, Map<String, dynamic>? metadata)? onAdClicked,
  void Function(String unitId, Map<String, dynamic>? metadata)? onAdImpression,
  void Function(String unitId, AdropErrorCode errorCode)? onAdFailedToReceive,
})

콜백

콜백파라미터설명
onAdReceivedunitId, metadata광고 수신 성공
onAdClickedunitId, metadata광고 클릭
onAdImpressionunitId, metadata광고 노출
onAdFailedToReceiveunitId, errorCode광고 수신 실패

메타데이터 필드

필드타입설명
creativeIdString크리에이티브 ID
txIdString트랜잭션 ID
campaignIdString캠페인 ID
destinationURLString목적지 URL
creativeSizeWidthdouble크리에이티브 너비
creativeSizeHeightdouble크리에이티브 높이

AdropNativeAd

네이티브 광고를 요청하는 클래스입니다.

생성자

AdropNativeAd({
  required String unitId,
  bool useCustomClick = false,
  AdropNativeListener? listener,
})

프로퍼티

프로퍼티타입설명
isLoadedbool광고 로드 완료 여부
unitIdString광고 유닛 ID
creativeIdString크리에이티브 ID
txIdString트랜잭션 ID
campaignIdString캠페인 ID
destinationURLString목적지 URL
propertiesAdropNativeProperties네이티브 광고 속성
creativeSizeCreativeSize크리에이티브 크기
isBackfilledbool백필 광고 여부

메서드

메서드반환 타입설명
load()Future<void>광고 로드

사용 예시

final nativeAd = AdropNativeAd(
  unitId: 'YOUR_UNIT_ID',
  useCustomClick: true,
  listener: AdropNativeListener(
    onAdReceived: (ad) {
      debugPrint('광고 수신: ${ad.creativeId}');
    },
    onAdFailedToReceive: (ad, errorCode) {
      debugPrint('에러: ${errorCode.code}');
    },
  ),
);

await nativeAd.load();

AdropNativeAdView

네이티브 광고를 화면에 표시하는 위젯입니다.

생성자

AdropNativeAdView({
  required AdropNativeAd? ad,
  required Widget child,
})

사용 예시

AdropNativeAdView(
  ad: nativeAd,
  child: Container(
    child: Column(
      children: [
        Text(nativeAd?.properties.headline ?? ''),
        Text(nativeAd?.properties.body ?? ''),
      ],
    ),
  ),
)

AdropNativeListener

네이티브 광고 이벤트를 처리하는 리스너 클래스입니다.

생성자

AdropNativeListener({
  void Function(AdropNativeAd ad)? onAdReceived,
  void Function(AdropNativeAd ad)? onAdClicked,
  void Function(AdropNativeAd ad)? onAdImpression,
  void Function(AdropNativeAd ad, AdropErrorCode errorCode)? onAdFailedToReceive,
})

콜백

콜백파라미터설명
onAdReceivedad광고 수신 성공
onAdClickedad광고 클릭
onAdImpressionad광고 노출
onAdFailedToReceivead, errorCode광고 수신 실패

AdropNativeProperties

네이티브 광고의 콘텐츠 속성입니다.

프로퍼티

프로퍼티타입설명
headlineString?광고 제목
bodyString?광고 본문
creativeString?HTML 크리에이티브 콘텐츠
assetString?이미지 에셋 URL
destinationURLString?클릭 시 이동할 URL
callToActionString?CTA 버튼 텍스트
profileAdropNativeProfile?광고주 프로필 정보
extraMap<String, String>추가 커스텀 필드
isBackfilledbool백필 광고 여부

AdropNativeProfile

네이티브 광고의 프로필 정보입니다.

프로퍼티

프로퍼티타입설명
displayNameString?광고주 이름
displayLogoString?광고주 로고 이미지 URL

AdropInterstitialAd

전면 광고를 표시하는 클래스입니다.

생성자

AdropInterstitialAd({
  required String unitId,
  AdropInterstitialListener? listener,
})

프로퍼티

프로퍼티타입설명
isLoadedbool광고 로드 완료 여부
unitIdString광고 유닛 ID
creativeIdString크리에이티브 ID
txIdString트랜잭션 ID
campaignIdString캠페인 ID
destinationURLString목적지 URL

메서드

메서드반환 타입설명
load()Future<void>광고 로드
show()Future<void>광고 표시
dispose()Future<void>리소스 해제

사용 예시

final interstitialAd = AdropInterstitialAd(
  unitId: 'YOUR_UNIT_ID',
  listener: AdropInterstitialListener(
    onAdReceived: (ad) {
      ad.show();
    },
    onAdFailedToReceive: (ad, errorCode) {
      debugPrint('에러: ${errorCode.code}');
    },
    onAdDidDismissFullScreen: (ad) {
      debugPrint('광고 닫힘');
    },
  ),
);

await interstitialAd.load();

AdropInterstitialListener

전면 광고 이벤트를 처리하는 리스너 클래스입니다.

생성자

AdropInterstitialListener({
  void Function(AdropAd ad)? onAdReceived,
  void Function(AdropAd ad)? onAdClicked,
  void Function(AdropAd ad)? onAdImpression,
  void Function(AdropAd ad)? onAdWillPresentFullScreen,
  void Function(AdropAd ad)? onAdDidPresentFullScreen,
  void Function(AdropAd ad)? onAdWillDismissFullScreen,
  void Function(AdropAd ad)? onAdDidDismissFullScreen,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToReceive,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToShowFullScreen,
})

콜백

콜백설명
onAdReceived광고 수신 성공
onAdClicked광고 클릭
onAdImpression광고 노출
onAdWillPresentFullScreen광고 표시 시작 (iOS 전용)
onAdDidPresentFullScreen광고 표시 완료
onAdWillDismissFullScreen광고 닫기 시작 (iOS 전용)
onAdDidDismissFullScreen광고 닫기 완료
onAdFailedToReceive광고 수신 실패
onAdFailedToShowFullScreen광고 표시 실패

AdropRewardedAd

보상형 광고를 표시하는 클래스입니다.

생성자

AdropRewardedAd({
  required String unitId,
  AdropRewardedListener? listener,
})

프로퍼티

프로퍼티타입설명
isLoadedbool광고 로드 완료 여부
unitIdString광고 유닛 ID
creativeIdString크리에이티브 ID
txIdString트랜잭션 ID
campaignIdString캠페인 ID
destinationURLString목적지 URL

메서드

메서드반환 타입설명
load()Future<void>광고 로드
show()Future<void>광고 표시
dispose()Future<void>리소스 해제

사용 예시

final rewardedAd = AdropRewardedAd(
  unitId: 'YOUR_UNIT_ID',
  listener: AdropRewardedListener(
    onAdReceived: (ad) {
      ad.show();
    },
    onAdEarnRewardHandler: (ad, type, amount) {
      // 보상 지급
      debugPrint('보상: 타입=$type, 수량=$amount');
    },
  ),
);

await rewardedAd.load();

AdropRewardedListener

보상형 광고 이벤트를 처리하는 리스너 클래스입니다.

생성자

AdropRewardedListener({
  void Function(AdropAd ad)? onAdReceived,
  void Function(AdropAd ad)? onAdClicked,
  void Function(AdropAd ad)? onAdImpression,
  void Function(AdropAd ad)? onAdWillPresentFullScreen,
  void Function(AdropAd ad)? onAdDidPresentFullScreen,
  void Function(AdropAd ad)? onAdWillDismissFullScreen,
  void Function(AdropAd ad)? onAdDidDismissFullScreen,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToReceive,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToShowFullScreen,
  void Function(AdropAd ad, int type, int amount)? onAdEarnRewardHandler,
})

콜백

콜백설명
onAdReceived광고 수신 성공
onAdClicked광고 클릭
onAdImpression광고 노출
onAdWillPresentFullScreen광고 표시 시작 (iOS 전용)
onAdDidPresentFullScreen광고 표시 완료
onAdWillDismissFullScreen광고 닫기 시작 (iOS 전용)
onAdDidDismissFullScreen광고 닫기 완료
onAdFailedToReceive광고 수신 실패
onAdFailedToShowFullScreen광고 표시 실패
onAdEarnRewardHandler보상 획득

AdropPopupAd

팝업 광고를 표시하는 클래스입니다.

생성자

AdropPopupAd({
  required String unitId,
  AdropPopupListener? listener,
  Color? closeTextColor,
  Color? hideForTodayTextColor,
  Color? backgroundColor,
})

프로퍼티

프로퍼티타입설명
isLoadedbool광고 로드 완료 여부
unitIdString광고 유닛 ID
creativeIdString크리에이티브 ID
txIdString트랜잭션 ID
campaignIdString캠페인 ID
destinationURLString목적지 URL
closeTextColorColor?닫기 버튼 텍스트 색상
hideForTodayTextColorColor?”오늘 하루 보지 않기” 텍스트 색상
backgroundColorColor?버튼 배경 색상

메서드

메서드반환 타입설명
load()Future<void>광고 로드
show()Future<void>광고 표시
close()Future<void>광고 닫기
dispose()Future<void>리소스 해제

사용 예시

final popupAd = AdropPopupAd(
  unitId: 'YOUR_UNIT_ID',
  closeTextColor: Colors.white,
  backgroundColor: Colors.black87,
  listener: AdropPopupListener(
    onAdReceived: (ad) {
      ad.show();
    },
  ),
);

await popupAd.load();

AdropPopupListener

팝업 광고 이벤트를 처리하는 리스너 클래스입니다.

생성자

AdropPopupListener({
  void Function(AdropAd ad)? onAdReceived,
  void Function(AdropAd ad)? onAdClicked,
  void Function(AdropAd ad)? onAdImpression,
  void Function(AdropAd ad)? onAdWillPresentFullScreen,
  void Function(AdropAd ad)? onAdDidPresentFullScreen,
  void Function(AdropAd ad)? onAdWillDismissFullScreen,
  void Function(AdropAd ad)? onAdDidDismissFullScreen,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToReceive,
  void Function(AdropAd ad, AdropErrorCode errorCode)? onAdFailedToShowFullScreen,
})

AdropMetrics

사용자 속성 및 이벤트를 관리하는 클래스입니다.

정적 메서드

메서드반환 타입설명
setProperty(String key, dynamic value)Future<void>사용자 속성 설정
logEvent(String name, [dynamic params])Future<void>이벤트 로깅
properties()Future<Map<String, dynamic>>모든 속성 조회

사용 예시

import 'package:adrop_ads_flutter/adrop_ads_flutter.dart';

// 속성 설정
await AdropMetrics.setProperty('membership_level', 'premium');
await AdropMetrics.setProperty('age', 25);
await AdropMetrics.setProperty('is_subscriber', true);

// 속성 제거
await AdropMetrics.setProperty('membership_level', null);

// 이벤트 로깅
await AdropMetrics.logEvent('purchase', {
  'item_id': 'SKU_001',
  'price': 29900,
});

// 모든 속성 조회
final props = await AdropMetrics.properties();
debugPrint('속성: $props');

CreativeSize

크리에이티브의 크기를 나타내는 클래스입니다.

생성자

const CreativeSize({
  required double width,
  required double height,
})

프로퍼티

프로퍼티타입설명
widthdouble너비
heightdouble높이

테스트 유닛 ID

개발 및 테스트 시 사용할 수 있는 유닛 ID입니다.
포맷테스트 유닛 ID
배너 (320x50)PUBLIC_TEST_UNIT_ID_320_50
배너 (320x100)PUBLIC_TEST_UNIT_ID_320_100
네이티브PUBLIC_TEST_UNIT_ID_NATIVE
전면 광고PUBLIC_TEST_UNIT_ID_INTERSTITIAL
리워드 광고PUBLIC_TEST_UNIT_ID_REWARDED
팝업 광고 (하단)PUBLIC_TEST_UNIT_ID_POPUP_BOTTOM
팝업 광고 (중앙)PUBLIC_TEST_UNIT_ID_POPUP_CENTER
스플래시 광고PUBLIC_TEST_UNIT_ID_SPLASH
프로덕션 배포 전에 반드시 실제 유닛 ID로 교체하세요.