안드로이드/자바

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

우늬 2017. 9. 3. 19:20
반응형




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



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

애드몹 배너광고 달기

애드몹 보상형 광고 달기

애드몹 네이티브 광고 달기



 

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

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

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

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

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

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




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.
   
}
});




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

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

감사합니다.

반응형