# 리워드 비디오 광고

### 1 : 준비

* [프로젝트 설정](/adpie/flutter/project-settings.md)을 통해 광고 연동을 위한 준비를 합니다.

### 2 : 광고 초기화

* 안드로이드의 경우 앱 실행 후 main() 에서 바로 초기화를 하는 것을 권장합니다.
* iOS의 경우 ATT(AppTrackingTransparency) 팝업 표출한 이후 초기화를 하는 것을 권장합니다.
* ATT(AppTrackingTransparency)는 [adpie\_sdk example](https://pub.dev/packages/adpie_sdk/example) 또는 [app\_tracking\_transparency](https://pub.dev/packages/app_tracking_transparency) 를 참고합니다.
* [사이트](http://my.adpies.com)에서 발급받은 Media ID를 `AdPieSdk.initialize()`에 넣어 호출합니다.

```dart
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 : 광고 요청과 표출

* [사이트](http://my.adpies.com)에서 발급받은 Slot ID를 입력하여 호출합니다.

```dart
@override
void initState() {
  super.initState();
  
  AdPieSdk.setRewardedAdListener(RewardedAdListener(
    onAdLoaded: (){
      // 광고 수신 성공
      bool isLoaded = (await AdPieSdk.isRewardedAdLoaded(slotId))!;
      if (isLoaded) {
        // 광고 표출
        AdPieSdk.showRewardedAd(slotId);
      }
    }, onAdFailedToLoad: (int errorCode){
      // 광고 수신 실패
    }, onAdFailedToShow: () {
      // 광고 표출 실패
    }, onAdShown: (){
    
    }, onAdClicked: (){
    
    }, onAdRewarded: (){
      // 보상 수령
    }, onAdDismissed: (){
    
    }));

  AdPieSdk.loadRewardedAd(slotId);
}

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

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://platform-business.gitbook.io/adpie/flutter/integration/rewardedad.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
