Ad Quality SDK 연동하기
Ad Quality는 사용자가 보는 광고 콘텐츠를 모니터링하고 제어하여 앱의 목표에 부합하고 사용자 경험을 향상할 수 있도록 돕습니다. 잠재 수익을 극대화하면서 사용자의 참여를 유도하는 관련성 높은 광고를 게재하세요.
레벨플레이에서 제공하는 단계별 가이드를 따라 레벨플레이 플랫폼에서 애플리케이션을 구성하세요
Before you start
Note:
버전 8.9.0부터 Ad Quality는 레벨플레이 SDK에 통합되어 레벨플레이가 연동되어 있으면 레벨플레이 초기화 시 자동으로 초기화됩니다. 아래 단계는 빌드에 레벨플레이가 구현되지 않았거나 레벨플레이 SDK 8.9.0 이전 버전을 사용하는 경우에 적용됩니다.
1단계: 앱에 Ad Quality SDK 가져오기
Gradle
1. 앱의 build.gradle 파일 내 repositories 섹션에 다음을 추가합니다:
repositories {
mavenCentral()
}
2. 그런 다음 dependencies 섹션에 다음을 추가합니다:
dependencies { // ironSource Ad Quality SDK implementation
'com.unity3d.ads-mediation:adquality-sdk:7.26.1'
}
2단계: SDK 초기화
- Unity 레벨플레이 플랫폼에서 발급받은 레벨플레이(아이언소스) 앱 키를 사용하여 Ad Quality SDK를 초기화하세요.
- Ad Quality SDK를 초기화하려면 앱의 메인 스레드 또는 다른 광고 네트워크 SDK와 동일한 스레드에 다음 코드를 추가합니다:
import com.ironsource.adqualitysdk.sdk.IronSourceAdQuality;
protected void onCreate(Bundle savedInstanceState) {
// Initialize
IronSourceAdQuality.getInstance().initialize(this, appKey);
}
3단계(선택): 고급 SDK 초기화
Note:
아래 구성을 사용하려면 레벨플레이 SDK를 초기화하기 전에 Ad Quality SDK를 초기화합니다.
다음과 같은 특별한 구성으로 연동 설정을 커스터마이즈하여 더 많은 기능을 활용해 보세요:
- 사용자 ID – Ad Quality의 기본 ID 대신 자체 사용자 ID를 사용합니다.
- 테스트 모드 – Ad Quality SDK 연동을 테스트합니다(기본값은 false).
- 로그 레벨 – 코드 문제를 디버깅하기 위한 로그 레벨을 선택합니다(기본값은 INFO).
아래 코드를 사용하여 Builder를 사용해 구성 객체를 생성합니다.
ISAdQualityConfig.Builder adQualityConfigBuilder = new ISAdQualityConfig.Builder();
사용자 ID
Ad Quality SDK는 사용자 ID를 구성하는 두 가지 옵션을 제공합니다:
1. 자체 사용자 ID를 사용하고, 초기화 전이나 도중에 추가합니다:
adQualityConfigBuilder.setUserId(userId);
// The default user id is Ad Quality internal id.
// The user id cannot be null and must be between 2 and 100 characters, otherwise it will be blocked.
ID가 나중에 설정되는 경우를 위해, Ad Quality SDK를 초기화한 후 기본 사용자 ID를 변경합니다.
IronSourceAdQuality.getInstance().changeUserId(userId);
// The default user id is Ad Quality internal id.
// The user id cannot be null and must be between 2 and 100 characters, otherwise it will be blocked.
테스트 모드
adQualityConfigBuilder.setTestMode(true);
// The default is false - set to true only to test your Ad Quality integration
로그 레벨
adQualityConfigBuilder.setLogLevel(ISAdQualityLogLevel.INFO);
// There are 5 different log levels:
// ERROR, WARNING, INFO, DEBUG, VERBOSE
// The default is INFO
ISAdQualityConfig adQualityConfig = adQualityConfigBuilder.build();
IronSourceAdQuality.getInstance().initialize(this, appKey, adQualityConfig);
4단계(선택): SDK 콜백 이벤트 구성
Note:
레벨플레이를 사용하는 경우, 다음 기능을 사용하려면 먼저 Ad Quality를 초기화해야 합니다.
ISAdQualityInitListener:
ISAdQualityConfig.Builder builder = new ISAdQualityConfig.Builder().setAdQualityInitListener(new ISAdQualityInitListener() {
@Override
public void adQualitySdkInitSuccess() {
Log.d("AdQualityInitListener", "adQualitySdkInitSuccess");
}
@Override
public void adQualitySdkInitFailed(ISAdQualityInitError error, String message) {
Log.d("AdQualityInitListener", "adQualitySdkInitFailed " + error + " message: " + message);
}
});
ISAdQualityConfig adQualityConfig = builder.build();
IronSourceAdQuality.getInstance().initialize(this, appKey, adQualityConfig);
Note:
Ad Quality SDK를 초기화하는 데 걸리는 시간은 앱에 연동된 광고 네트워크 SDK의 수에 따라 다릅니다. 네트워크 연결 문제로 인해 지연이 발생할 수도 있습니다. 평균적으로 초기화에는 3~4초가 소요됩니다.
5단계(선택사항): 노출 수준 광고 수익을 Ad Quality SDK에 보고하기
Note:
레벨플레이를 사용하는 경우, 다음 기능을 사용하려면 먼저 Ad Quality를 초기화해야 합니다.
Note:
이 기능은 전체 화면 광고만 지원합니다. 레벨플레이, MAX, DT FairBid의 경우 이 데이터는 자동으로 수집됩니다
Ad Quality SDK 7.2.0 이상 버전은 노출 수준 광고 수익 보고를 지원합니다:
Ad Quality SDK에서 노출 수준 광고 수익을 보고하려면 아래 코드 스니펫을 SDK 연동에 추가해 주세요.
중요합니다!
sendCustomMediationRevenue 메서드는 광고가 표시될 때 호출해야 하며, 광고 라이프사이클 외부에서 호출하면 아무런 효과가 없습니다
ISAdQualityCustomMediationRevenue.Builder builder = new ISAdQualityCustomMediationRevenue.Builder()
.setMediationNetwork(ISAdQualityMediationNetwork.SELF_MEDIATED)
.setAdType(ISAdQualityAdType.REWARDED_VIDEO)
.setPlacement("placement")
.setRevenue(0.12);
IronSourceAdQuality.getInstance().sendCustomMediationRevenue(builder.build());
AdMob 미디에이션을 사용하는 경우 다음 단계를 따라서 구현합니다:
- AdMob 계정 관리자에게 AdMob 노출 수준 LTV(iLTV)를 활성화하도록 요청하세요
- Android 또는 iOS용 GMA SDK 8.12.0 이상 버전을 사용하고 해당 버전이 iLTV를 지원하는지 확인하세요
- Ad Quality SDK 연동에 다음 코드 스니펫을 추가하세요:
RewardedAd mRewardedAd;
@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
mRewardedAd = rewardedAd;
// Set paid event listener
mRewardedAd.setOnPaidEventListener(new OnPaidEventListener() {
@Override
public void onPaidEvent(AdValue adValue) {
ISAdQualityCustomMediationRevenue.Builder builder = new ISAdQualityCustomMediationRevenue.Builder()
.setMediationNetwork(ISAdQualityMediationNetwork.ADMOB)
.setAdType(ISAdQualityAdType.REWARDED_VIDEO)
.setPlacement(mRewardedAd.getAdUnitId())
.setRevenue(adValue.getValueMicros()/1000000.0);
IronSourceAdQuality.getInstance().sendCustomMediationRevenue(builder.build());
}
});
}