리워드 비디오 광고

1 : 준비

2 : 광고 초기화

  • 안드로이드의 경우 앱 실행 후 main() 에서 바로 초기화를 하는 것을 권장한다.

  • iOS의 경우 ATT(AppTrackingTransparency) 팝업 표출한 이후 초기화를 하는 것을 권장한다.

  • ATT(AppTrackingTransparency)는 adpie_sdk example 또는 app_tracking_transparency 를 참고한다.

  • 사이트에서 발급받은 Media ID를 AdPieSdk.initialize()에 넣어 호출한다.

void main() {
  WidgetsFlutterBinding.ensureInitialized();

  if (Platform.isAndroid) {
    // AdPie SDK 초기화
    AdPieSdk.initialize(mediaId);
  } else {
    initPlugin();
  }

  runApp(const MyApp());
}

Future<void> initPlugin() async {
  final TrackingStatus status =
  await AppTrackingTransparency.trackingAuthorizationStatus;
  if (status == TrackingStatus.notDetermined) {
    final TrackingStatus status =
    await AppTrackingTransparency.requestTrackingAuthorization();
  }

  final uuid = await AppTrackingTransparency.getAdvertisingIdentifier();
  print("UUID: $uuid");

  // AdPie SDK 초기화
  AdPieSdk.initialize(mediaId);
}

3 : 광고 요청과 표출

  • 사이트에서 발급받은 Slot ID를 입력하여 호출한다.

@override
void initState() {
  super.initState();
  
  AdPieSdk.setRewardedAdListener(RewardedAdListener(
    onAdLoaded: (){
      // 광고 수신 성공

      bool isLoaded = (await AdPieSdk.isRewardedAdLoaded(slotId))!;
      if (isLoaded) {
        // 광고 표출
        AdPieSdk.showRewardedAd(slotId);
      }
    }, onAdFailedToLoad: (int errorCode){
      // 광고 수신 실패
    }, onAdShown: (){
    
    }, onAdClicked: (){
    
    }, onAdRewarded: (){
      // 보상 수령
    }, onAdDismissed: (){
    
    }));

  AdPieSdk.loadRewardedAd(slotId);
}

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

  // 광고 해지
  AdPieSdk.destroyRewardedAd(slotId);
}

Last updated