요즘 안드로이드 어플을 개발하고 있는데,
오늘은 어플에 광고 붙이는 것을 기록해보려 한다.
어플에 넣을 광고는 구글 애드몹(https://admob.google.com/intl/ko/home/)을 통해 넣으면 된다.
앱 추가 과정은 아래와 같다.


위의 과정을 거치면 앱추가는 완료가 된다.
나는 아직 앱이 스토어에 올라가지 않아 검토필요 상태로 되어 있는데, 이건 스토어 링크까지 연동 되면 상태가 변경될 것이다.
맨위에 광고 단위 추가 버튼을 통해 사용할 광고를 추가할 수 있다.


나는 전면, 보상형 전면 광고, 리워드
이 세가지를 사용해보려고 한다. 전면 광고는 앱 종료 직전에 보여 줄것이고 보상형 전면과 리워드는
앱 사용 중에 나올 수 있도록 할 예정이다.
우선 전면 광고 단위를 추가하는 것은 아래처럼 하면 된다.

광고단위를 생성했으면 아래와 같이 key를 2개를 발급해준다.
한개는 어플에 관한 키여서 다른 광고 단위를 추가하더라도 다 동일한 값이고,
다른 한개는 광고에 관한 키여서 유니크한 값이다.

발급이 완료됐으면 이제 코드내에 구현만 하면 된다.
나는 singleton으로 광고를 load하고 show하는 함수를 생성했고, 앱을 시작하자마자 광고를 load하도록 하였다.
load한다고 바로 노출할 수 있는 광고가 준비되지는 않아 앱 시작하자마자 load하고 필요할 때 마다 show 함수를 호출해 광고가 노출되도록 했다.
class AdLoader private constructor() {
companion object {
private var mInterstitialFullAd: InterstitialAd? = null
private lateinit var adRequest: AdRequest
fun load(_context: Context) {
adRequest = AdRequest.Builder().build()
//전면광고
setInterstitialAd(_context)
}
fun show(
_context: Context
) {
if (mInterstitialFullAd != null) {
mInterstitialFullAd?.show(_context as Activity)
//다시 로드
mInterstitialFullAd = null
setInterstitialAd(_context)
} else {
Log.d("ad_tag", "The interstitial ad wasn't ready yet.")
}
}
fun setInterstitialAd(_context: Context) {
InterstitialAd.load(
_context,
"ca-app-pub-3940256099942544/1033173712", //test 키, 광고 단위 추가했을 때 발급한 키를 여기에 넣으면 된다.
adRequest,
object : InterstitialAdLoadCallback() {
override fun onAdFailedToLoad(adError: LoadAdError) {
Log.d("ad_tag", adError?.toString())
mInterstitialFullAd = null
}
override fun onAdLoaded(interstitialAd: InterstitialAd) {
Log.d("ad_tag", "Ad was loaded.")
mInterstitialFullAd = interstitialAd
}
})
}
}
}
MainActivity에서 AdLoader.load(this)로 광고를 load하고
원하는 화면에 AdLoader.show(this)라고 하면 전면 광고가 나온다.

'내가 보려고 기록하는것' 카테고리의 다른 글
VScode Auto fix eslint on save (0) | 2023.04.18 |
---|---|
Web server failed to start. Port 8080 was already in use 에러 (0) | 2023.03.17 |
[mysql] 타입 변환, convert string(varchar) to json (0) | 2023.01.03 |
[mysql] 특정 시간대의 데이터를 확인하고 싶을 때 (0) | 2022.11.30 |
리눅스에서 아나콘다 설치 (0) | 2022.10.27 |