[컴][안드로이드 ] admob 사용법, 설치하기

AdMob 설치하기 / AdMob 사용법



Updates

아래 경로에서 android studio 에서 gradle 을 이용해서 adMob 을 사용하는 법을 알려준다.

Google Repository 설치

먼저 SDK Manager 를 이용해서 Google Repository 를 설치하자.
Google Repository 가 google-play artifact 를 가지고 있는데 이 녀석이 Google Play Services SDK 를 위한 resource 와 compiled Java Code 를 가지고 있다.

Google Mobile Ads SDK 는 Google Play services SDK 안에 포함되어 있다.



com.google.android.gms:play-services

Google Play Services 를 사용한다.
app.build.gradle 에 아래처럼 dependency 를 추가해 준다.
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:21.+'
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.+@aar'
    compile 'com.google.android.gms:play-services:6.+'

}


AndroidManifest.xml

AndroidManifest.xml 에 아래 사항 추가
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.google.android.gms.example.bannerexample" >

    <!-- Include required permissions for Google Mobile Ads to run-->
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <!--This meta-data tag is required to use Google Play Services.-->
        <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <!--Include the AdActivity configChanges and theme. -->
        <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>



Strings.xml

strings.xml 에 Ad Unit Id 추가, 굳이 여기에 정의하지 않고, 바로 View 에 string 으로 넣어도 된다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My Application</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
    <string name="banner_ad_unit_id">ca-app-pub-3940256099942544/6300978111</string>
</resources>

ca-app-pub-3940256099942544/6300978111 은 test 용 ID 이다.



AdView 추가

이전과 package 명이 달라졌다.

<com.google.android.gms.ads.AdView
                xmlns:ads="http://schemas.android.com/apk/res-auto"
                android:id="@+id/adView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                ads:adUnitId="xxxxxxeerfef3333"
                ads:adSize="BANNER"/>

ads:testDevices / ads:loadAdOnCreate
attributes 는 이제 없어졌다.



MainActivity 에 추가


package ...
import ...
import ...
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
public class MainActivity extends ActionBarActivity {

    ...

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
AdView mAdView = (AdView) findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);
}

    ...
}

위처럼 MainActivity 에서 AdView 를 호출해 줘야 한다.



 ---------------------------------------------------------




intelliJ 에 AdMob 을 설치해 보자. 아래 자료를 바탕으로 이야기 한다.




AdMob 에 가입하고, SDK 를 download 하고, AdMob 을 설치하면 된다.


AdMob sdk

AdMob sdk 다운로드는 여기에서 할 수 있다.
Android 1.5 이상 버전이 필요하다.


AdMod을 App 에 넣기

  1. library 추가
    • <project_path>/libs 에 GoogleAdMobAdsSdk-6.4.1.jar 를 copy 한다.
    • File > Project Structure >> Libraries >> + >> lib/GoogleAdMobAdsSdk-6.4.1 선택
  2. Activity 추가, 네트워크 권한 추가 : AndroidManifest.xml 에 code 추가
    <activity android:name="com.google.ads.AdActivity"
                android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  3. AdView 추가
    • AdView 를 추가하자. xml 로 넣을 수도 있고, code 로 넣을 수도 있다.
      <com.google.ads.AdView
                      xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
                      android:id="@+id/adView"
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      ads:adUnitId="MY_AD_UNIT_ID"
                      ads:adSize="BANNER"
                      ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"
                      ads:loadAdOnCreate="true"/>
    • adUnitId : adUnitId 에 "게시자 ID" 를 넣으면 된다.
    • adSize : android phone 이라면 BANNER 를 사용해야 한다. tablet 은 다르다. ref. 1을 참고하자.
    • testDevices :
      • emulator 에서 사용할 것이라면 아래처럼 사용하면 된다.
        ads:testDevices="TEST_EMULATOR"
      • 자신의 폰에서 test 를 할 것이라면, 한 번 실행하고, logcat 으로 device id 를 확인해서 적어야 한다.
        ads:testDevices="TEST_DEVICE_ID"
      • 두가지 경우를 모두 적어 놓을 수도 있다.
        ads:testDevices="TEST_EMULATOR, TEST_DEVICE_ID"



AdMob ID, 게시자 ID 찾기


TEST_DEVICE_ID

AdMob 을 설치한 후에 폰의 log 를 확인하면 아래와 같은 log 를 확인할 수 있다.

  • INFO/Ads(14656): To get test ads on this device, call adRequest.addTestDevice("2A413DFEAE76ACD3E4DB2847C6570D0E");

이 ID 를 source code 에 등록하면 된다.


광고가 보이지 않는 경우

onFailedToReceiveAd()

광고가 보이지 않는 경우가 있다. 그런 경우 logcat 을 확인하면, 아래와 같은 메시지를 볼 수 있다.

  • onFailedToReceiveAd(Ad request successful, but no ad returned due to lack of ad inventory.)

이 경우는 코드상의 문제는 없으나, adMob 자체에서 보내줄 광고가 없는 경우라고 한다.[ㄱref. 2]

너비 320dp

만약 banner 인 경우에 너비가 320dp 보다 작은 경우에 광고가 보여지지 않을 수 있다.



Reference

  1. Banner size
  2. onFailedToReceiveAd(Ad request successful, but no ad returned due to lack of ad inventory when using admob with adwhirl, StackOverflow

댓글 없음:

댓글 쓰기