스플래시 뷰 연동
Last updated
Last updated
앱 자체적으로 이미 스플래시 화면이 있고, 앱 기동 시간 중 스플래시 광고를 보여주고 싶을 경우 기존 화면에 스플래시 뷰를 연동할 수 있는 방법입니다.
스플래시 광고가 게재되는 스플래시 화면은 로고와 광고 유닛으로 구성됩니다. 로고가 너무 클 경우, 광고에 로고가 가려지는 경우가 발생할 수 있으니 아래의 가이드를 꼭 확인해 주세요.
로고 영역 : 스플래시 화면에 표시될 로고 이미지는 배경을 포함한 로고 이미지 사이즈는 , 가운데 로고 128dp x 128dp를 권장합니다.
광고 영역 : 영역 자체 사이즈는 360dp X 270dp 입니다. 광고 소재 이미지 사이즈는 실제 노출 시 화질의 손상을 막기 위해 영역의 3배 사이즈인 1080dp x 810dp를 권장합니다.
로컬 환경에서 배너 노출을 확인하고 싶다면, 아래의 TEST_UNIT_ID를 사용해주세요.
개발용 광고 Unit Id 는 PUBLIC_TEST_UNIT_ID_SPLASH
입니다.
Splash
PUBLIC_TEST_UNIT_ID_SPLASH
아래의 전체 예시 코드는 1) 광고 노출 영역 확보
, 2) 광고 유닛 등록
, 3) 광고 로드
과정을 설명합니다.
class YourSplashActivity {
override fun onCreate(savedInstanceState: Bundle?) {
...
// 1. Adrop.initialize를 통해, 초기화를 진행해 주세요.
Adrop.initialize(application, false)
// 2. 광고를 노출하고자 하는 영역의 컨테이너를 제작해 주시고, 해당 컨테이너를 adFrame에 연결시켜 주세요.
val adFrame: ViewGroup = findViewById(R.id.your_ad_container)
// 3. 광고 플랫폼 콘솔에서 확인 가능한 광고 유닛 아이디로 광고 유닛을 정의해 주세요.
// 테스를 원하시면 테스트 아이디 (PUBLIC_TEST_UNIT_ID_SPLASH)를 입력해 주세요.
val splashAd = AdropSplashAdView(this, "YOUR_UNIT_ID")
// 4.위 단계에서 정의한 스플래시 광고 유닛을 adFrame View에 추가해 주세요.
adFrame.addView(splashAd)
splashAd.listener = object : AdropSplashAdViewListener {
override fun onAdReceived(ad: AdropSplashAdView) {
Log.d("Adrop", "received ${ad.unitId} ${ad.creativeId}")
}
override fun onAdFailedToReceive(ad: AdropSplashAdView, errorCode: AdropErrorCode) {
Log.d("Adrop", "failed to receive ${ad.unitId}, $errorCode")
}
override fun onAdImpression(ad: AdropSplashAdView) {
Log.d("Adrop", "impressed ${ad.unitId}")
}
override fun onAdClose(ad: AdropSplashAdView, impressed: Boolean) {
Log.d("Adrop", "ad closed ${ad.unitId} $impressed")
goToMain() // go to your main activity
}
}
// 5. 스플래시 광고를 로드해 주세요.
splashAd.load()
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
// 1. 광고를 노출하고자 하는 영역의 컨테이너를 제작해 주시고, 해당 컨테이너를 adFrame에 연결시켜 주세요.
FrameLayout adFrame = findViewById(R.id.your_ad_container);
// 2. 광고 플랫폼 콘솔에서 확인 가능한 광고 유닛 아이디로 광고 유닛을 정의해 주세요.
// 테스를 원하시면 테스트 아이디 (PUBLIC_TEST_UNIT_ID_SPLASH)를 입력해 주세요.
AdropSplashAdView adView = new AdropSplashAdView(this, "YOUR_UNIT_ID");
// 3. 위 단계에서 정의한 스플래시 광고 유닛을 adFrame View에 추가해 주세요.
adFrame.addView(adView);
adView.setListener(new AdropSplashAdViewListener() {
@Override
public void onAdImpression(@NotNull AdropSplashAdView ad) {
Log.d("Adrop", "Splash Ad onAdImpression");
}
@Override
public void onAdFailedToReceive(@NotNull AdropSplashAdView ad, @NotNull AdropErrorCode errorCode) {
Log.d("Adrop", "Splash Ad onAdFailedToReceive " + errorCode);
}
@Override
public void onAdReceived(@NotNull AdropSplashAdView ad) {
Log.d("Adrop", "Splash Ad Received");
}
@Override
public void onAdClose(@NotNull AdropSplashAdView ad, boolean impressed) {
goToMain(); // go to your main activity
}
});
// 4. 스플래시 광고를 로드해 주세요.
adView.load();
}
아래 가이드를 통하여 광고 요청, 실패, 노출 발생에 대한 리스너의 동작 방식을 설명드리겠습니다.
class YourSplashActivity {
override fun onCreate(savedInstanceState: Bundle?) {
...
splashAd.listener = object : AdropSplashAdViewListener {
// 1. 광고 요청이 들어가고, 진행중인 캠페인의 광고 정보를 반환합니다.
override fun onAdReceived(ad: AdropSplashAdView) {
Log.d("Adrop", "received ${ad.unitId} ${ad.creativeId}")
}
// 2. 광고 요청을 했으나, 캠페인이 없어 반환할 광고가 없을 때 호출 됩니다.
override fun onAdFailedToReceive(ad: AdropSplashAdView, errorCode: AdropErrorCode) {
Log.d("Adrop", "failed to receive ${ad.unitId}, $errorCode")
}
// 3. 광고 요청의 응답을 받으면, impression 추적을 위해 호출 됩니다.
override fun onAdImpression(ad: AdropSplashAdView) {
Log.d("Adrop", "impressed ${ad.unitId}")
}
// 4. 광고 노출이 끝나고, 원하시는 동작을 진행하기 위해 호출됩니다.
// goToMain() 함수 영역에 특정 앱 로직을 실행하거나, 데이터를 로드하시면 됩니다.
override fun onAdClose(ad: AdropSplashAdView, impressed: Boolean) {
Log.d("Adrop", "ad closed ${ad.unitId} $impressed")
// * 광고 노출이 끝난 후의 로직이 필요하다면, 추가해 주세요.
goToMain()
}
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
...
adView.setListener(new AdropSplashAdViewListener() {
// 1. 광고 요청이 들어가고, 진행중인 캠페인의 광고 정보를 반환합니다.
@Override
public void onAdReceived(@NotNull AdropSplashAdView ad) {
Log.d("Adrop", "Splash Ad Received");
}
// 2. 광고 요청을 했으나, 캠페인이 없어 반환할 광고가 없을 때 호출 됩니다.
@Override
public void onAdFailedToReceive(@NotNull AdropSplashAdView ad, @NotNull AdropErrorCode errorCode) {
Log.d("Adrop", "Splash Ad onAdFailedToReceive " + errorCode);
}
// 3. 광고 요청의 응답을 받으면, impression 추적을 위해 호출 됩니다.
@Override
public void onAdImpression(@NotNull AdropSplashAdView ad) {
Log.d("Adrop", "Splash Ad onAdImpression");
}
// 4. 광고 노출이 끝나고, 원하시는 동작을 진행하기 위해 호출됩니다.
// goToMain() 함수 영역에 특정 앱 로직을 실행하거나, 데이터를 로드하시면 됩니다.
@Override
public void onAdClose(@NotNull AdropSplashAdView ad, boolean impressed) {
goToMain(); // go to your main activity
}
});
}
1) 광고 request 에 광고가 들어오는 경우.
onAdReceived -> onAdImpression -> onAdClose
2) 광고 request 에 광고가 없는 경우.
onAdFailedToReceive -> onAdClose
console에서 발급받은 unitId가 한 번이라도 request 가 들어가면 성공적으로 연결됩니다.
광고 유닛에 연결된 광고가 없다면, 배너가 랜더링 되지 않습니다. 따라서 배너가 정상적으로 랜더링 되는지 확인하고 싶으면, TEST_UNIT_ID 를 사용해 주세요.
TEST_UNIT_ID 를 사용하면 배너 랜더링 확인은 할 수 있지만, console과 연결되지는 않습니다. 따라서 성공적인 연결을 확인하려면 콘솔에 등록한 광고 유닛의 아이디를 적용해 주시고, 하단 이미지 처럼 콘솔을 확인해 주세요.
자세한 예시는 에서 확인하실 수 있습니다.