시작하기
보상형 광고는 사용자가 전체 화면으로 제공되는 동영상 광고 또는 플레이어블 광고를 시청한 후 보상을 받을 수 있는 광고 형식입니다. 이 가이드에서는 NAM SDK 를 활용하여 보상형 광고를 통합하는 방법을 설명합니다.
시작하기 앞서
- 광고 호출을 위해 Ad Unit ID 가 필요합니다.
- NAM Admin 을 통해 광고 공급자 설정, Inventory 설정, 광고 유닛 등록 등의 과정을 마무리하여 주시기 바랍니다.
- 관련 내용은 NAM 관리자에게 문의 부탁드립니다.
- 광고를 오버레이로 덮는 다른 View 가 있을 경우, 경우에 따라서 노출 측정이 제대로 되지 않아 성과 지표 측정에 불이익이 있을 수 있습니다.
[Step 1] NAM SDK 적용 완료
시작하기를 참고해 주세요.
이하 내용은 NAM SDK 적용이 완료된 상태를 가정하고 진행합니다.
[Step 2] GfpRewardedAdManager 초기화
보상형 광고를 사용하려면 GfpRewardedAdManager 를 초기화해야 합니다. 이 때, 광고 요청에 필요한 Ad Unit ID 와, 단일 광고 요청에 대한 런타임 정보(예: 타겟팅 정보) 를 포함하는 AdParam 객체를 생성하여 매개변수로 전달해야 합니다.
- Kotlin
- Java
class MainActivity : Activity() {
private var rewardedAdManager: GfpRewardedAdManager? = null;
override fun onCreate(savedInstanceState: Bundle?) {
...
// Create a new ad parameter.
val adParam = AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build()
// Create a new GfpRewardedAdManager.
rewardedAdManager = GfpRewardedAdManager(this, adParam)
}
}
public class MainActivity extends Activity {
private GfpRewardedAdManager rewardedAdManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// Create a new ad parameter.
AdParam adParam = new AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build();
// Create a new GfpRewardedAdManager.
rewardedAdManager = new GfpRewardedAdManager(this, adParam);
}
}
[Step 3] RewardedAdListener 설정
RewardedAdListener 는 보상형 광고의 로드 및 노출 상태를 수신하는 리스너입니다. GfpRewardedAdManager 의 로드 및 노출과 관련된 이벤트를 처리합니다. 보상형 광고를 로드하기 전에 다음과 같이 RewardedAdListener 를 설정해야 합니다.
- Kotlin
- Java
rewardedAdManager.setAdListener(object: RewardedAdListener() {
override fun onAdLoaded(ad: GfpRewardedAd) {
// Called when an ad is loaded.
// You can show the ad here.
}
override fun onAdStarted(ad: GfpRewardedAd) {
// Called when an ad is started or shown.
}
override fun onAdClicked(ad: GfpRewardedAd) {
// Called when an ad is clicked.
}
override fun onAdClosed(ad: GfpRewardedAd) {
// Called when an ad is closed.
}
override fun onAdCompleted(ad: GfpRewardedAd) {
// Called when an ad is completed.
// You can use this event to initialize your reward
}
override fun onError(ad: GfpRewardedAd, error: GfpError) {
// Called when an error happened while the ad is
// attempting to load or rendering an ad.
}
}
rewardedAdManager.setAdListener(new RewardedAdListener() {
@Override
public void onAdLoaded(GfpRewardedAd ad) {
// Called when an ad is loaded.
// You can show the ad here.
}
@Override
public void onAdStarted(GfpRewardedAd ad) {
// Called when an ad is started or shown.
}
@Override
public void onAdClicked(GfpRewardedAd ad) {
// Called when an ad is clicked.
}
@Override
public void onAdClosed(GfpRewardedAd ad) {
// Called when an ad is closed.
}
@Override
public void onAdCompleted(GfpRewardedAd ad) {
// Called when an ad is completed.
// You can use this event to initialize your reward
}
@Override
public void onError(GfpRewardedAd ad, GfpError error) {
// Called when an error happened while the ad is
// attempting to load or rendering an ad.
}
});
[Step 4] 광고 로드
GfpRewardedAdManager 의 loadAd() 메서드를 통해 광고를 로드할 수 있습니다. 광고가 성공적으로 로드되면 RewardedAdListener 의 onAdLoaded() 메서드가 호출되고 광고 로드에 실패할 경우 onError() 메서드가 호출됩니다.
UI 스레드에서 광고를 로드해야 합니다.
이미 선언된 GfpRewardedAdManager 를 재사용하여 광고를 요청하려면 destroy() 호출 없이 loadAd() 만 호출해야만 합니다. 만약, destroy() 메서드를 호출한 후 loadAd() 를 호출하면, 리소스가 해제된 상태로 요청이 발생하여 광고 이벤트를 수신하지 못하는 등의 이슈가 발생할 수 있습니다.
- Kotlin
- Java
class MainActivity : Activity() {
private var rewardedAdManager: GfpRewardedAdManager? = null;
override fun onCreate(savedInstanceState: Bundle?) {
...
// Create a new ad parameter.
val adParam = AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build()
// Create a new GfpRewardedAdManager.
rewardedAdManager = GfpRewardedAdManager(this, adParam).run {
// Set the ad listener
setAdListener(object: RewardedAdListener() {
override fun onAdLoaded(ad: GfpRewardedAd) {
// Called when an ad is loaded.
// You can show the ad here.
}
override fun onError(ad: GfpRewardedAd, error: GfpError) {
// Called when an error happened while the ad is
// attempting to load or rendering an ad.
}
...
})
// Load the rewarded ad
loadAd()
}
}
}
public class MainActivity extends Activity {
private GfpRewardedAdManager rewardedAdManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// Create a new ad parameter.
AdParam adParam = new AdParam.Builder()
.setAdUnitId("YOUR_AD_UNIT_ID")
...
.build();
// Create a new GfpRewardedAdManager.
rewardedAdManager = new GfpRewardedAdManager(this, adParam);
// Set the ad listener
rewardedAdManager.setAdListener(new RewardedAdListener() {
@Override
public void onAdLoaded(GfpRewardedAd ad) {
// Called when an ad is loaded.
// You can show the ad here.
}
@Override
public void onError(GfpRewardedAd ad, GfpError error) {
// Called when an error happened while the ad is
// attempting to load or rendering an ad.
}
...
});
// Load the rewarded ad
rewardedAdManager.loadAd();
}
}