Android - 앱에 구글 애드몹 네이티브 광고 넣기 (Kotlin)

업데이트:

애드몹

애드몹은 구글이 제공하는 광고 서비스 입니다.
애드몹이 제공하는 광고에는 몇 가지 존재합니다.

image

  1. 배너 광고

  2. 전면 광고

  3. 리워드 광고

  4. 네이티브 광고

이 중에서 집중해야할 것은 네이티브 광고 입니다.
네이티브 광고는 플랫폼 고유의 UI 구성요소를 통해 사용자에게 제공되는 광고입니다.

따라서 네이티브 광고는 사용자 환경에서 앱을 사용할 때, 앱의 구조를 무너뜨리지 않고 시각적 디자인과 어울리는 형식으로 표시될 수 있습니다.

이러한 네이티브 광고는 앱의 UI 디자인과 어울리는 형식으로 맞춤 설정을 할 수 있기 때문에 다른 광고보다 수익성이 좋다고 볼 수도 있습니다.


네이티브 광고 종류

네이티브 광고로는 다음과 같이 소형, 중형이 있습니다.

image

개발자 앱 UI와 더 어울리는 쪽으로 선택하여 광고를 삽입할 수 있습니다.


광고 삽입 과정

1. 애드몹 앱 추가

https://admob.google.com/intl/ko_ALL/home/

image

우선 애드몹에 구글 로그인을 한 후, 좌측에 앱 추가 버튼을 통해 애드몹에 앱을 추가해야 합니다.

다음 링크를 통해 몇 가지 절자를 따르면 간단하게 앱을 쉽게 추가할 수 있습니다.

광고단위는 네이티브 광고로 선택해줍니다.


앱을 추가했다면 내 앱에 보시면 다음과 같이 등록되어있음을 확인할 수 있습니다. 여기서 다음 앱ID를 기록해둡니다.

image


마찬가지로 광고 단위의 1개 운영중을 클릭하면 광고 Id가 나오는데 그것도 기록해둡니다.

image


2. 네이티브 템플릿 설치

https://github.com/googleads/googleads-mobile-android-native-templates

우선 다음 링크로가서 네이티브 템플릿을 zip 형식으로 다운로드 받습니다.


image

그리고 모듈을 import해서 가져와줍니다.

여기서 알집파일 안에 있는 nativetemplates로 지정합니다.


3. 내부 설정

모듈을 성공적으로 가져왔다면 이제 그래들에 몇 가지 코드를 삽입해야 합니다.

앱 수준 그래들

implementation project(':nativetemplates')
implementation 'com.google.android.gms:play-services-ads:19.0.0'


프로젝트 수준 그래들

buildscript {
    
    repositories {
        google()
        jcenter()
        
    }
    dependencies {
        classpath 'com.google.gms:google-services:4.3.2'
        classpath 'com.android.tools.build:gradle:3.6.1'
        

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            url "https://maven.google.com"

        }
        
    }
}


AndroidManifest.xml

매니페스트에는 애드몹에 앱을 추가할 때, 앱 ID를 넣어줍니다.

<manifest>
    <application>
        <!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
        <meta-data
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
    </application>
</manifest>


4. 광고 삽입

이제 광고를 삽입해봅시다.

우선 네이티브 템플릿 광고뷰를 불러옵니다.
원하는 사이즈의 뷰를 사용하여 개발중인 앱 레이아웃에 삽입하여 사용할 수 있습니다.

여기서 주의해야할 점은 저 뷰들은 항상 사이즈가 match_parent가 되어야 합니다.

작은사이즈

<com.google.android.ads.nativetemplates.TemplateView
      android:id="@+id/my_template"
      app:gnt_template_type="@layout/gnt_small_template_view"
      android:layout_width="match_parent"
      android:layout_height="match_parent" />


중간사이즈

<com.google.android.ads.nativetemplates.TemplateView
        android:id="@+id/my_template"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:gnt_template_type="@layout/gnt_medium_template_view"/>


코드 삽입

  1. 우선 광고를 불러올 adLoader 객체를 만들어줍니다.
private var adLoader: AdLoader? = null


  1. 광고 생성 메소드 정의

광고 생성을 하나의 메소드로 정의하였습니다.

AdLoader.Builder의 파라미터에는 본인의 광고 id를 넣어줍니다.

fun createAd() {
        MobileAds.initialize(this)
        adLoader = AdLoader.Builder(this, "광고 id")
            .forUnifiedNativeAd { ad : UnifiedNativeAd ->
                val template: TemplateView = exitView.findViewById(R.id.tpAdmob)
                template.setNativeAd(ad)
            }
            .withAdListener(object : AdListener() {
                override fun onAdFailedToLoad(errorCode: Int) {
                    // Handle the failure by logging, altering the UI, and so on.
                }
            })
            .withNativeAdOptions(
                NativeAdOptions.Builder()
                    // Methods in the NativeAdOptions.Builder class can be
                    // used here to specify individual options settings.
                    .build())
            .build()
    }


참고로 플레이스토어 정식 출시 이전에는 테스트 ID로 진행하시는 것이 좋습니다.
그렇지 않을 경우, 구글에서 정상적인 광고로 보지않을 수 있어서 개발자 계정이 정지될 우려가 있습니다.

image


  1. 광고 호출

마지막으로 광고 생성 함수츨 호출해지고 광고를 불러오면 됩니다.

createAd()
adLoader?.loadAd(AdRequest.Builder().build())


  1. 광고 삽입 완료

다음과 같이 광고가 앱 다이얼로그 레이아웃에 삽입되었습니다.
이처럼 애드몹 네이티브 광고를 활용하면 UI 구조를 흐트려놓지 않고도 광고를 효과적으로 배치할 수 있습니다.

image


  • 참고자료: https://deumdroid.tistory.com/71

댓글남기기