본문 바로가기
일상 & 기타

안드로이드 앱에 구글 광고(AdMob)를 넣는 법

by ERLite 2026. 5. 15.
 

안드로이드 앱에 구글 광고(AdMob)를 넣으려면 AdMob 계정 생성 → 앱 등록 → 광고 단위 생성 → SDK 연동 → 코드 삽입 순서로 진행해야 하며, 출시 전에는 반드시 테스트 광고 ID를 사용해야 계정 정지 위험을 피할 수 있습니다. 또한 개인정보 보호, 광고 노출 위치, 정책 준수 사항을 철저히 확인해야 합니다.

📌 광고 삽입 절차

  • AdMob 계정 생성 구글 계정으로 AdMob 가입 후 앱을 등록합니다. 출시 전이라면 "스토어에 등록되지 않음" 옵션을 선택합니다.
  • 앱 등록 및 광고 단위 생성 앱 ID와 광고 단위 ID를 발급받습니다. 광고 형태는 배너, 전면(Interstitial), 보상형(Rewarded) 등이 있습니다.
  • SDK 연동 build.gradle에 다음 의존성을 추가합니다:
  • gradle
    implementation 'com.google.android.gms:play-services-ads:23.3.0'
    
  • AndroidManifest 설정 앱 ID를 메타데이터에 추가합니다.
  • xml
    <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
               android:value="ca-app-pub-xxxxxxxx~yyyyyyyyyy"/>
    
  • 광고 뷰 삽입 XML 레이아웃에 광고 뷰를 추가하고, 코드에서 광고 요청을 실행합니다.
  • kotlin
    val adRequest = AdRequest.Builder().build()
    binding.adView.loadAd(adRequest)
    

⚠️ 주의사항 (앱 출시 전 필수 확인)

  • 테스트 광고 ID 사용 개발 단계에서는 반드시 구글 제공 테스트 ID(ca-app-pub-3940256099942544/9214589741)를 사용해야 합니다. 실제 광고 ID로 테스트하면 부정 클릭으로 간주되어 계정 정지 위험이 있습니다.
  • 개인정보 보호 정책 앱 내에 개인정보 처리방침을 명시해야 하며, 광고 SDK가 수집하는 데이터에 대해 사용자에게 고지해야 합니다.
  • 광고 위치 최적화 사용자 경험을 해치지 않도록 광고는 화면 하단 배너, 게임 종료 시 전면 광고 등 적절한 위치에 배치합니다.
  • 정책 준수 구글 플레이 정책을 위반하는 광고(예: 성인, 폭력, 오해 소지 콘텐츠)는 게재할 수 없습니다.

✅ 요약

  1. AdMob 계정 생성 → 앱 등록 → 광고 단위 생성 → SDK 연동 → 코드 삽입.
  2. 개발 단계에서는 반드시 테스트 광고 ID 사용.
  3. 개인정보 보호, 광고 위치, 구글 정책 준수 필수.

앱 출시를 앞두고 계정 정지 위험을 최소화하려면 테스트 광고 ID 사용 여부개인정보 처리방침 등록 여부를 가장 먼저 점검하는 것이 좋습니다.

📌 배너 광고

화면 하단이나 상단에 고정적으로 노출되는 광고입니다.

XML 레이아웃 예시

xml
<com.google.android.gms.ads.AdView
    android:id="@+id/adView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111"/>

Kotlin 코드 예시

kotlin
val adRequest = AdRequest.Builder().build()
binding.adView.loadAd(adRequest)

📌 전면 광고

앱 전환 시점이나 게임 종료 후 전체 화면에 노출되는 광고입니다.

Kotlin 코드 예시

kotlin
var mInterstitialAd: InterstitialAd? = null

InterstitialAd.load(this,
    "ca-app-pub-3940256099942544/1033173712",
    AdRequest.Builder().build(),
    object : InterstitialAdLoadCallback() {
        override fun onAdLoaded(ad: InterstitialAd) {
            mInterstitialAd = ad
            mInterstitialAd?.show(this@MainActivity)
        }
        override fun onAdFailedToLoad(error: LoadAdError) {
            mInterstitialAd = null
        }
    })

📌 보상형 광고

사용자가 광고를 끝까지 시청하면 게임 아이템, 포인트 등 보상을 제공할 수 있습니다.

Kotlin 코드 예시

kotlin
RewardedAd.load(this,
    "ca-app-pub-3940256099942544/5224354917",
    AdRequest.Builder().build(),
    object : RewardedAdLoadCallback() {
        override fun onAdLoaded(ad: RewardedAd) {
            ad.show(this@MainActivity) { rewardItem ->
                val rewardAmount = rewardItem.amount
                val rewardType = rewardItem.type
                // 보상 지급 로직
            }
        }
        override fun onAdFailedToLoad(error: LoadAdError) {}
    })

⚠️ 추가 주의사항

  • 반드시 테스트 광고 ID로 개발 및 테스트 진행 후, 출시 시 실제 광고 단위 ID로 교체하세요.
  • 광고 노출 시점은 사용자 경험을 해치지 않도록 신중히 선택해야 합니다.
  • 보상형 광고는 보상 지급 로직을 명확히 구현해야 사용자 불만을 방지할 수 있습니다.

 

인앱 결제를 통해 광고를 제거하는 방법은 구매 여부를 확인해 광고 로딩을 차단하는 로직을 추가하는 방식으로 구현합니다. 즉, 사용자가 결제를 완료하면 앱 내에서 광고를 불러오지 않도록 조건문을 걸어두는 것이 핵심입니다.

📌 구현 절차

  • 인앱 결제 설정 Google Play Console에서 인앱 상품(예: "광고 제거")을 등록합니다. SKU(상품 ID)를 발급받습니다.
  • BillingClient 연동 앱에 BillingClient를 추가해 결제 상태를 확인할 수 있도록 합니다.
  • gradle
    implementation 'com.android.billingclient:billing:6.0.1'
    
  • 구매 확인 로직 결제 성공 시 SharedPreferences 또는 로컬 DB에 구매 상태를 저장합니다.
  • kotlin
    val prefs = getSharedPreferences("app_prefs", MODE_PRIVATE)
    prefs.edit().putBoolean("remove_ads", true).apply()
    
  • 광고 로딩 조건 처리 광고를 불러오기 전에 구매 여부를 확인합니다.
  • kotlin
    val prefs = getSharedPreferences("app_prefs", MODE_PRIVATE)
    val removeAds = prefs.getBoolean("remove_ads", false)
    
    if (!removeAds) {
        val adRequest = AdRequest.Builder().build()
        binding.adView.loadAd(adRequest)
    }
    

⚠️ 주의사항

  • 구매 복원 처리 사용자가 앱을 재설치하거나 기기를 변경했을 때 구매 내역을 복원할 수 있도록 queryPurchasesAsync()를 반드시 구현해야 합니다.
  • UI 반영 광고 제거가 적용되면 광고 뷰를 숨기거나 레이아웃을 재배치해 사용자 경험을 개선해야 합니다.
  • 테스트 환경 실제 결제 전에는 Google Play의 테스트 계정을 사용해 결제 흐름을 검증해야 합니다.

✅ 요약:

  1. Google Play Console에서 "광고 제거" 인앱 상품 등록
  2. BillingClient로 결제 상태 확인
  3. 구매 성공 시 remove_ads = true 저장
  4. 광고 로딩 전에 조건문으로 광고 차단

 

📌 안드로이드 앱에 결제기는 넣는 방법

안드로이드 앱에 결제 기능을 넣으려면 Google Play 결제 라이브러리(Play Billing Library, PBL)를 반드시 사용해야 하며, 현재는 버전 5 이상이 필수입니다. 앱 코드에 결제 라이브러리를 추가하고, Google Play Console에서 판매할 상품(인앱 구매·구독)을 등록한 뒤 API와 연결해 결제 흐름을 구현해야 합니다.

주요 단계

  • Google Play 개발자 계정 앱을 유료로 배포하거나 인앱 결제를 제공하려면 개발자 계정이 필요합니다. 결제 프로필을 연결해야 실제 판매가 가능합니다.
  • Play Billing 라이브러리 추가 build.gradle에 종속 항목을 추가합니다. 예시:Kotlin을 쓴다면 billing-ktx 모듈을 함께 추가하면 코루틴 지원을 받을 수 있습니다.
  • groovy
    implementation "com.android.billingclient:billing:6.0.1"
    
  • 상품 등록 및 구성 Google Play Console에서 관리 제품(일회성 구매) 또는 구독 상품을 생성합니다. 각각 고유한 제품 ID, 제목, 설명, 가격을 설정해야 합니다.
  • BillingClient 초기화 앱 실행 시 BillingClient를 초기화하고 Google Play에 연결합니다. 결제 버튼 클릭 시 등록된 상품 ID를 불러와 결제를 진행합니다.
  • 구매 확인 및 처리 PurchasesUpdatedListener를 통해 결제 성공 여부를 확인하고, 구매한 상품을 앱 내에서 언락하거나 구독 상태를 반영합니다.
  • 서버 검증 및 환불 처리 Google Play Developer API를 사용해 서버에서 구매를 검증하고 환불·구독 관리 기능을 구현할 수 있습니다.

결제 방식 비교

방식특징사용 예시
인앱 구매 (일회성) 한 번 결제 후 영구 사용 광고 제거, 프리미엄 기능
구독 (정기 결제) 자동 갱신, 월/년 단위 과금 음악/영상 스트리밍, 뉴스 앱
소비성 상품 여러 번 구매 가능 게임 내 코인, 아이템
비소비성 상품 한 번 구매 후 유지 앱 업그레이드, 기능 언락
 
 

주의할 점

  • 2023년 11월 이후 모든 앱 업데이트는 PBL v5 이상 필수입니다.
  • Google Play 외부 결제 시스템은 정책 위반이 될 수 있으므로 반드시 Play Billing을 사용해야 합니다.
  • 테스트 시에는 내부 테스트 트랙을 활용해 실제 결제 없이 흐름을 검증할 수 있습니다.