팝업 지면은 전면광고와 유사하게 앱을 완전히 덮으면서 노출됩니다. 팝업 지면은 위치에 따라 하단, 중앙 두가지 타입의 UI를 제공하고 있어 원하는 기획에 맞게 선택하여 연동할 수 있습니다.
다음 가이드를 통해 서비스에 팝업 광고를 적용할 수 있습니다.
자세한 가이드는, 광고 유닛 생성 가이드를 참고해 주세요.
1 단계: (선택 사항) 이벤트 리스너 선언하기
final AdropPopupListener listener = AdropPopupListener(
onAdReceived: (ad) =>
debugPrint('Adrop Popup 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'),
...
);
로컬 환경에서 배너 노출을 확인하고 싶다면, 아래의 TEST_UNIT_ID를 사용해주세요.
자세한 예시는 Github에서 확인하실 수 있습니다.
class YourComponent extends StatefulWidget {
const YourComponent({super.key});
@override
State<StatefulWidget> createState() => _YourComponentState();
}
class _YourComponentState extends State<YourComponent> {
final AdropPopupAd rewardedAd = AdropPopupAd(
// 0 단계에서 복사한 UNIT_ID를 입력해주세요. 테스트를 원한다면, 가이드 위의 테스트 유닛 아이디를 사용해 주세요.
unitId: 'YOUR_UNIT_ID or TEST_UNIT_ID',
listener: listener,
closeTextColor: your_color // optional Color
hideForTodayTextColor: your_color // optional Color
backgroundColor: your_color // optional Color
);
@override
void initState() {
super.initState();
popupAd.load();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: TextButton(
onPressed: () {
final isLoaded = popupAd.isLoaded ?? false;
if (isLoaded) {
popupAd.show();
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text('popup ad is loading...'))
);
}
},
child: const Text('display ad'),
),
),
);
}
}
AdropRewardedView에 더 이상 액세스할 필요가 없으면 다음과 같이 Dispose해야 합니다.
@override
void dispose() {
super.dispose();
popupAd.dispose();
}
console에서 발급받은 unitId가 한 번이라도 request 가 들어가면 성공적으로 연결됩니다.
광고 유닛에 연결된 광고가 없다면, 배너가 랜더링 되지 않습니다.
따라서 배너가 정상적으로 랜더링 되는지 확인하고 싶으면, TEST_UNIT_ID 를 사용해 주세요.
TEST_UNIT_ID 를 사용하면 배너 랜더링 확인은 할 수 있지만, console과 연결되지는 않습니다.
따라서 성공적인 연결을 확인하려면 콘솔에 등록한 광고 유닛의 아이디를 적용해 주시고, 하단 이미지 처럼 콘솔을 확인해 주세요.