본문 바로가기

안드로이드/자바

[안드로이드/Android] 애드몹 전면광고 달기

반응형




개인앱에 광고를 달아서 티끌을 모아봅시다! 



다른 광고 포스팅은 아래링크를 참고하시면 됩니다.

애드몹 배너광고 달기

애드몹 보상형 광고 달기

애드몹 네이티브 광고 달기



 

앱을 통한 수익구조는 여러 방향이 있지만, 저 같이 초보자들이 올리는  작은 개인 앱들은 

많은 수익구조를 생각하기 어렵습니다.

그래도 페북 및 애드몹 말고도 여러 구조가 있지만 

오늘은 애드몹 광고에 대해 알아보겠습니다.

이전 포스팅에서 언급한 [애드몹] 배너광고 달기 와 일부 내용이 겹칠 수 있습니다.

그래도 전면광고를 검색해서 오신 분들을 위해 모든 과정을 담도록 하겠습니다. 




1. 회원가입 & 앱추가


 여기로 이동해 애드몹에 회원가입/로그인 과정을 거칩니다.

그리고 좌측 앱 - > 앱추가 버튼을 눌러 아래와 같은 화면에서 개발중이거나, 이미 출시한 앱의 내용을 작성하고 

추가 합니다.



2. 광고 단위 추가


다른 앱을 사용하시면서 이미 알고 계신분도 있으시겠지만

애드몹 광고는 배너 / 전면 / 네이티브 / 리워드 전면  4가지 종류가 있습니다.

4가지중 하나를 선택하시면 상세 정보를 입력하게 되는데 

크게 조정할 것 없이 디폴트 값들로 진행하시면 될 것 같습니다.

더 자세한 정보가 필요하신 분들은 애드몹 공식 사이트를 이용해주세요.




3. Google Repository 설치 

 

애드몹을 사용하기 위해선 SDK Manager 에 Google Repository가 설치된 상태여야 합니다.

Tool - > Android - > SDK Manager - > SDK Tools -> Google Repository




4. 프로젝트 레벨 gradle 수정(2018.02.18 추가)

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



5. SDK 추가 

 

gradle(App) 에 구글 애드몹을 사용하기 위한 sdk 를 추가합니다.

아래와 같이 google service 의 ads만 따로 명시한 이유는 

구글 services의 sdk가 많은 내용을 담고 있기 때문에 

해당 프로젝트에서 사용할 부분만 골라서 추가하는게 

프로젝트가 클수록 용이합니다.


compile 'com.google.android.gms:play-services-ads:10.0.1'


6. AndroidManifest.xml 수정


광고 또한 네트워크를 통해 불러 오기때문에 

아래와 같은 권한 2가지를 설정해줘야합니다.

그리고 메타데이터와 구글 애드몹 엑티비티를 추가합니다.


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="wony.makestroy">

...

 <uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />



<application
...
android:theme="@style/NoTitle">

</provider>

<activity android:name=".View.Activity.MainActivity">

<meta-data

android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />


<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...

 <activity

android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />



</application>

</manifest>


7. string.xml 수정 


광고 단위 생성시 받은 광고 ID를 'id'대신 채워넣습니다. 


<resources>
<string name="app_name">MakeStroy</string>

<string name="ad_unit_id">id</string>
</resources>


8. 광고 초기화 및 호출


엑티비티가 많지는 않지만 싱글톤으로 여러 엑티비티에서 

편하게 불러 올 수 있도록 작성해봤습니다.



public class AdsFull {

private static InterstitialAd adFull;

private static AdsFull instance = null;
private static Context context;

public AdsFull(Context context) {
this.context = context;
}

public static AdsFull getInstance(Context context) {


if (instance == null) {
instance = new AdsFull(context);
adFull = new InterstitialAd(context);
setAds();
}

return instance;
}


private static void setAds() {

AdRequest adRequest = new AdRequest.Builder().build(); //새 광고요청
adFull = new InterstitialAd(context);
adFull.setAdUnitId(context.getResources().getString(R.string.ad_unit_id));
adFull.loadAd(adRequest); //요청한 광고를 load 합니다.

adFull.setAdListener(new AdListener() { //전면 광고의 상태를 확인하는 리스너 등록

@Override
public void onAdClosed() { //전면 광고가 열린 뒤에 닫혔을 때
AdRequest adRequest = new AdRequest.Builder().build(); //새 광고요청
adFull.loadAd(adRequest); //요청한 광고를 load 합니다.
}
});
}


public void show() {

if(isShowAds()){//조건부 메소드
if(!Common.isAds){
if (adFull == null)
setAds();
adFull.show();
}
}


}


}


9. 주의사항 (2017.11.20 추가) 

 

애드몹 광고를 사용할때 구글에서 권장하는 가이드 라인을 따르지 않으면 

광고가 노출되지 않거나 수익에 대한 불이익이 있을 수 있습니다.

그러므로 몇가지 권고사항을 추려서 말씀드립니다.


  • 앱이 실행된 바로 직후, 앱이 종료된 후에는 노출되면 안됩니다.

  • 앱이 백그라운드에서 실행중일때는 노출되면 안됩니다.

  • 어린이를 대상으로 하는 앱은 광고가 적합하지 않습니다.

  • 페이지와 페이지 사이에 배치해야 합니다.

  • 사용자 시선이 앱을 향해 있을때만 광고가 노출되어야 합니다. 

  • 앱 컨텐츠가 있을때만 광고가 노출되어야 합니다.

10. 리스너 (2017.11.28 추가 )

 

몇가지 이벤트를 체크할 수 있는 리스너를 제공합니다.

    • onAdLoaded() : 광고 로딩이 끝났을때 실행됩니다.
    • onAdFailedToLoad() : 광고 로드가 실패 했을때 에러코드를 파라미터로 갖고 실행됩니다.
      • ERROR_CODE_INTERNAL_ERROR: 광고 서버에서 잘못된 응답과 같은 내부 에러시 
      • ERROR_CODE_INVALID_REQUEST: 잘못된 광고 ID를 넣었을때와 같이 광고 요청 에러시
      • ERROR_CODE_NETWORK_ERROR: 광고 요청시 네트워크상 에러시
      • ERROR_CODE_NO_FILL: 광고 요청은 성공했지만 광고가 부족했을때 
    • onAdOpened() : 광고가 디바이스 스크린 위에 보여질때 실행됩니다.
    • onAdLeftApplication() : 사용자가 다른 앱을 클릭했을때 실행됩니다.
    • onAdClosed() : 사용자가 광고를 취소 했을때 실행됩니다.

실질적으로 테스트를 거치지 않고 애드몹 공식 문서를 의역했습니다.

추가적인 자료를 원하시는 분은 링크에서 확인해주세요.


mInterstitialAd.setAdListener(new AdListener() {
   
@Override
   
public void onAdLoaded() {
       
// Code to be executed when an ad finishes loading.
   
}

   
@Override
   
public void onAdFailedToLoad(int errorCode) {
       
// Code to be executed when an ad request fails.
   
}

   
@Override
   
public void onAdOpened() {
       
// Code to be executed when the ad is displayed.
   
}

   
@Override
   
public void onAdLeftApplication() {
       
// Code to be executed when the user has left the app.
   
}

   
@Override
   
public void onAdClosed() {
       
// Code to be executed when when the interstitial ad is closed.
   
}
});




이상으로 애드몹 전면 광고 달기에 대한 포스팅을 마칩니다.

문의사항 및 이의사항에 대해서는 댓글이나 방명록으로 남겨주시면 확인후 신속하게 처리하겠습니다.

감사합니다.

반응형