Skip to content

Instantly share code, notes, and snippets.

@eunjae-lee
Last active December 3, 2015 11:31
Show Gist options
  • Save eunjae-lee/b3f897b9bcb9a2dfb13a to your computer and use it in GitHub Desktop.
Save eunjae-lee/b3f897b9bcb9a2dfb13a to your computer and use it in GitHub Desktop.
밸류포션 엔딩 인터스티셜 연동 가이드

엔딩 인터스티셜 연동 가이드

이 문서에서는 안드로이드에서 Back Key 를 눌러 앱을 종료하려는 시점에, '엔딩 인터스티셜' 광고가 뜨도록 하는 방법을 안내합니다.

1. SDK 업데이트 (필수)

최신 SDK (v1.0.34) 로 업데이트를 해주세요 : https://github.com/valuepotion/valuepotion-android-sdk/blob/master/SDK/valuepotion.jar

2. 엔딩 인터스티셜 광고 호출 (필수)

메인 액티비티에 가서 onBackPressed 함수를 아래와 같이 Override 해야 합니다.

	@Override
	public void onBackPressed() {
//		super.onBackPressed();
		ValuePotion.getInstance().onBackPressed(this);
	}

기존의 super.onBackPressed(); 는 주석 처리 하고 ValuePotion.getInstance().onBackPressed(this); 만 실행되도록 해야 합니다.

그러면 유저가 Back Key 를 눌렀을 때, 앱은 종료되지 않은 채로 밸류포션 서버에 엔딩 인터스티셜 광고를 요청하게 되고,

  1. 광고를 응답 받았으면 엔딩 인터스티셜을 노출합니다.
  2. 광고가 없는 상태라면 그냥 바로 앱이 종료됩니다.

Q> 광고가 없는 경우는 왜 생기나요?

A> 한 유저에게 동일한 광고가 반복적으로 보이게 되면 피로도가 증가하여 광고 효율이 떨어지게 됩니다. 이를 방지하기 위해 밸류포션에서는 각 유저에 대해 광고 노출양을 조절하고 있고 이를 Frequency Capping 이라 부릅니다. 한 유저가 일정 시간 동안 일정 횟수 이상 동일한 광고를 보았다면, 그 이후부터는 그 광고가 해당 유저에게 노출되지 않게 됩니다.

3. 고급 (옵션)

3-1. 광고를 미리 캐싱하기

지금까지 해 본 방법으로는, 유저가 Back Key 를 누른 후에야 광고를 요청해서 받아오고 뷰를 그리게 됩니다.

하지만 그보다 좀더 즉각적으로 광고가 뜨기 원하시면 적절한 타이밍에 미리 광고를 캐싱할 수 있습니다.

ValuePotion.getInstance().cacheEndingInterstitial(this);

위 함수를 ValuePotion.init(...)을 호출한 이후의 어떠한 시점에든 호출하셔도 상관없습니다. onCreate() 함수에 놓으셔도 되고, 그 이후 적절한 타이밍에 삽입해주세요.

3-2. 광고를 보고 앱을 종료할 때 특정 액션을 덧붙이기

엔딩 인터스티셜을 보고 유저가 "종료" 버튼을 눌렀을 때 바로 앱이 꺼지는 게 아니라,

다른 부가적인 처리를 넣고 싶으시다면,

ValuePotion.getInstance().setEndingInterstitialHandler(new ValuePotion.EndingInterstitialHandler() {
	...

	@Override
	public boolean appClose() {
		Toast.makeText(activity, "앱을 종료합니다.", Toast.LENGTH_SHORT).show();
		return false;
	}
});

위와 같이 setEndingInterstitialHandler(...) 함수를 통해 부가적인 코드를 삽입하실 수 있습니다.

이 때 appClose() 함수가 false 를 리턴하면 앱이 자동적으로 종료됩니다. 하지만, 앱 종료마저 직접 컨트롤 하기 원하시면 true 를 리턴하세요.

3-3. 광고가 없어서 앱이 그냥 종료되는 시점에 특정 액션을 덧붙이기

엔딩 인터스티셜로 노출할 광고가 없는 경우에는 앱이 바로 종료되는데,

다른 부가적인 처리를 하고 싶으시다면,

ValuePotion.getInstance().setEndingInterstitialHandler(new ValuePotion.EndingInterstitialHandler() {
	@Override
	public boolean adNotFound() {
		showDialog("앱을 종료하시겠습니까?", new Runnable() {
			@Override
			public void run() {
				Toast.makeText(activity, "앱을 종료합니다.", Toast.LENGTH_SHORT).show();
				finish();
			}
		});
		return true;
	}

	...
});

위와 같이 adNotFound() 함수에 위와 같이 직접 종료 다이얼로그를 띄울 수도 있습니다.

adNotFound() 함수 역시 false 를 리턴하면 앱이 바로 종료 되며, 위의 예와 같이 앱 종료를 직접 컨트롤 하시려면 true 를 리턴해주세요.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment