sean.jin
Spark Code Blog
sean.jin
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발공부
      • Kotlin
      • LeetCode
      • Algorithm
      • React
    • 주식차트
    • 책리뷰
    • 유틸리티

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 아빠와 딸의 주식투자 레슨
  • 부의 추월차선
  • 책추천
  • 경제
  • 주식투자
  • 초보
  • 트리플 위칭데이
  • 책리뷰
  • 변동성
  • 오
  • 책
  • 쿼드러플위칭데이
  • 주식책리뷰
  • 네마녀의날
  • 자기개발
  • 주식입문자

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sean.jin

Spark Code Blog

[Kotlin] Google AdMob 앱 수익창출 -  광고 달기 배너달기 / 버튼클릭시 전면광고
개발공부/Kotlin

[Kotlin] Google AdMob 앱 수익창출 - 광고 달기 배너달기 / 버튼클릭시 전면광고

2021. 6. 3. 11:00
반응형
[Kotlin] Google AdMob 앱 수익창출 - 광고 달기 / 배너달기/ 버튼클릭시 전면광고


목표

전면광고 / 배너 광고

구글 AdMob에서 광고 단위 설정

  • 구글 AdMob을 가입해줍니다.
  • 홈으로 들어오면 구글AdMob 페이지에서 광고를 설정할 앱을 추가해줍니다.

 

  • 플랫폼과 PlayStore에 등록 여부를 선택해줍니다.

  • 앱 이름을 설정해준 후 확인.

 

 

  • 바로 광고 단위를 만들어보겠습니다. 

 

배너 추가하기

  • 저는 activity_main 하단에 배너를 추가해 보도록 하겠습니다.

  • 식별 가능하도록 광고에 이름을 붙여준 후 1번: 앱 ID 2번: 광고 단위 ID 코드를 기억해둡니다. 

  • 이제 이 두 ID를 만든 앱에 적용하겠습니다. 
  • 테스트 할 때는 "2번 ID"는 구글에서 제공하는 테스트 아이디를 써주세요
  • 배너용 test ID ca-app-pub-3940256099942544/6300978111
  • 전면광고용 test ID ca-app-pub-3940256099942544/1033173712
  • Manifests파일 안에 AppId를 적용해줍니다.
  • manifests
<application>
	<meta-data
        	//이곳에 google AdMob에서 받은 AppID를 넣어줍니다.
            android:name="com.google.android.gms.ads.APPLICATION_ID"
            android:value="고유AppId를 여기에넣어주세요"/>

</application>
  • Manifests파일안에 AppId를 적용해줍니다.
  • Google ads 라이브러리를 Build.gradele.app에 추가해줍니다.
  • build.gradle(App)
 dependencies {
 //google admob
    implementation 'com.google.android.gms:play-services-ads:19.0.0'
 }
  • xml에 배너 위치를 지정해줍니다.
  • activity_main.xml
 <com.google.android.gms.ads.AdView
    android:id="@+id/adView"
  	android:layout_width="match_parent"
  	android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    app:adSize="BANNER"//adsize 설정은 필수입니다.
    app:adUnitId="ca-app-pub-8358259317968297/5006131431" //배너의 adUnitId를 여기에 넣어줍니다.
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent">

</com.google.android.gms.ads.AdView>
  • MainActivity에서 배너를 실행될 수 있도록 합니다.
  • MainActivity
class MainActivity : AppCompatActivity() {

//추가 시작
	lateinit var mAdView : AdView
//추가 끝
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        //추가 시작
        //banner
        MobileAds.initialize(this) {}
        val adRequest = AdRequest.Builder().build()
        mAdView.loadAd(adRequest)
        //추가 끝

버튼 클릭 시 전면 광고 띄우기

  • 배너를 추가했던 것처럼 광고 단위를 googleAdMob페이지로 돌아가서 추가해줍니다. 

  • 앱 ID는 위에서 Manifest에 적용해주었기 때문에 전면광고 단위 ID만 기억하시면 됩니다.

  • 전면광고 단위 ID를 mainActivity에 추가해줍니다. 
  • MainActivity
 class MainActivity : AppCompatActivity() {

	//추가 시작
    private var mInterstitialAd: InterstitialAd? = null
	//추가끝
    
 	override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
        //추가 시작
        //전면광고 설정을 해줍니다.
        InterstitialAd.load(this,"ca-app-pub-3940256099942544/1033173712", adRequest, object : InterstitialAdLoadCallback() {
            override fun onAdFailedToLoad(adError: LoadAdError) {
                mInterstitialAd = null //광고 불러오기 실패했을때 null값을 반환
            }

            override fun onAdLoaded(interstitialAd: InterstitialAd) {
                mInterstitialAd = interstitialAd //광고 load됬을때 인스턴스된 mInterestitialad를 interestitialAd로 바꿈
            }
        })
        추가 끝
        
        
        
        
  • Full Screen Contents Callback
  • MainActivity
mInterstitialAd?.fullScreenContentCallback = object: FullScreenContentCallback() {
            override fun onAdDismissedFullScreenContent() {
                Log.d("TAG", "Ad was dismissed.")
            }

            override fun onAdFailedToShowFullScreenContent(adError: AdError?) {
                Log.d("TAG", "Ad failed to show.")
            }

            override fun onAdShowedFullScreenContent() {
                Log.d("TAG", "Ad showed fullscreen content.")
                mInterstitialAd = null;
            }
        }
  • 클릭 시 전면광고가 나오게 하겠습니다.
  • MainActivity
button.setOnClickListener {
      if (mInterstitialAd != null) {
         mInterstitialAd?.show(this)} //광고를 보여줍니다.
      else {
      Toast.makeText(applicationContext,"광고 로드 실패", Toast.LENGTH_SHORT).show()//광고를 불러오지 못했을때
      }
 }

이렇게 전면광고와 배너까지 만들어보았습니다. 앱을 배포하실때는 꼭 testID를 googleAdmob에서 받은 고유아이디로 바꿔서 업로드 하셔야합니다. 


 

시작하기  |  Android  |  Google Developers

Android 앱을 제작 중인 Google AdMob 게시자를 위한 모바일 광고 SDK입니다.

developers.google.com

 

반응형

'개발공부 > Kotlin' 카테고리의 다른 글

[Kotlin] 코루틴 Coroutine 사용법 및 개념 정리 - GlobalScope, GlobalScope.launch, Delay, Dispatcher, Coroutine Context - 1편  (1) 2021.06.11
[Kotlin] Collection 정리 list, set, map 차이 - HashMap, hashmapof, mutableMap, setOf, mutableSetOf,ArrayListof,listof 사용법 및 차이  (0) 2021.06.10
[Kotlin] Material Design Date Picker - 날짜 선택기 사용법, 특정 구간날짜 비활성화  (0) 2021.05.31
[Kotlin] RecyclerView에 LiveData/ViewModel 적용하기 - 화면전환후 데이터유지 - RecyclerView 3  (0) 2021.05.29
[Kotlin] RecyclerView에 setOnClickListener 추가 삭제하기 - RecyclerView 2  (0) 2021.05.28
    '개발공부/Kotlin' 카테고리의 다른 글
    • [Kotlin] 코루틴 Coroutine 사용법 및 개념 정리 - GlobalScope, GlobalScope.launch, Delay, Dispatcher, Coroutine Context - 1편
    • [Kotlin] Collection 정리 list, set, map 차이 - HashMap, hashmapof, mutableMap, setOf, mutableSetOf,ArrayListof,listof 사용법 및 차이
    • [Kotlin] Material Design Date Picker - 날짜 선택기 사용법, 특정 구간날짜 비활성화
    • [Kotlin] RecyclerView에 LiveData/ViewModel 적용하기 - 화면전환후 데이터유지 - RecyclerView 3
    sean.jin
    sean.jin
    앱개발, 알고리즘, JS, Kotlin, 미국 취업준비

    티스토리툴바