Flutter 보상형 광고

광고 보상형 광고는 사용자가 광고를 시청하거나 특정 작업을 수행함으로써 보상을 받는 광고 형식입니다.

사용자가 자발적으로 광고를 시청하거나 특정 액션을 수행하기 때문에 보다 높은 관심과 참여도를 보이는 장점을 가지고 있습니다.

다음 가이드를 통해 서비스에 보상형 광고를 적용할 수 있습니다.

이미 등록된 광고 유닛이 있다면 1단계 부터 진행하세요.

0 단계: 콘솔에서 광고 유닛 등록하기

자세한 가이드는, 광고 유닛 생성 가이드를 참고해 주세요.

  1. Adrop 콘솔에서 보상형 광고 유닛을 생성합니다.

  2. 광고 유닛 리스트에서 생성된 유닛 아이디를 복사합니다.

1 단계: (선택 사항) 이벤트 리스너 선언하기

final AdropRewardedListener listener = AdropRewardedListener(
    onAdReceived: (ad) =>
        debugPrint('Adrop Rewarded Ad loaded with unitId ${ad.unitId}!'),
    onAdFailedToReceive: (ad, errorCode) => 
        debugPrint('error in ${ad.unitId} while loading: $errorCode'),
    onAdFailedToShowFullScreen: (ad, errorCode) =>
        debugPrint('error in ${ad.unitId} while showing: $errorCode'),
    onAdEarnRewardHandler: (ad, type, amount) {
        debugPrint('Adrop Rewarded Ad earn rewards: ${ad.unitId}, $type, $amount');
        // implement your actions with rewards
    },
    ...
);

2단계: 보상형 광고 노출하기

로컬 환경에서 배너 노출을 확인하고 싶다면, 아래의 TEST_UNIT_ID를 사용해주세요.

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

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

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

class _YourComponentState extends State<YourComponent> {
  final AdropRewardedAd rewardedAd = AdropRewardedAd(
    // 0 단계에서 복사한 UNIT_ID를 입력해주세요. 테스트를 원한다면, 가이드 위의 테스트 유닛 아이디를 사용해 주세요.
    unitId: 'YOUR_UNIT_ID or TEST_UNIT_ID', 
    listener: listener,
  );

  @override
  void initState() {
    super.initState();
    rewardedAd.load();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: TextButton(
          onPressed: () {
            final isLoaded = rewardedAd?.isLoaded ?? false;
            if (isLoaded) {
              rewardedAd.show();
            } else {
              ScaffoldMessenger.of(context).showSnackBar(
                const SnackBar(content: Text('rewarded ad is loading...'))
              );
            }
          },
          child: const Text('display ad'),
        ),
      ),
    );
  }
}

보상형 광고 Dispose

AdropRewardedView에 더 이상 액세스할 필요가 없으면 다음과 같이 Dispose해야 합니다.

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

적용 확인하기

console에서 발급받은 unitId가 한 번이라도 request 가 들어가면 성공적으로 연결됩니다.

광고 유닛에 연결된 광고가 없다면, 배너가 랜더링 되지 않습니다. 따라서 배너가 정상적으로 랜더링 되는지 확인하고 싶으면, TEST_UNIT_ID 를 사용해 주세요.

TEST_UNIT_ID 를 사용하면 배너 랜더링 확인은 할 수 있지만, console과 연결되지는 않습니다. 따라서 성공적인 연결을 확인하려면 콘솔에 등록한 광고 유닛의 아이디를 적용해 주시고, 하단 이미지 처럼 콘솔을 확인해 주세요.

Last updated