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 에 넣기
- library 추가 :
- <project_path>/libs 에 GoogleAdMobAdsSdk-6.4.1.jar 를 copy 한다.
- File > Project Structure >> Libraries >> + >> lib/GoogleAdMobAdsSdk-6.4.1 선택
-
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"/>
- 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]
댓글 없음:
댓글 쓰기