본문 바로가기
안드로이드

안드로이드 어플에 Admob 광고 넣기

by 목가 2014. 12. 7.
반응형

안드로이드 어플에 Admob 광고 넣기!!!

약간은 복잡할 수 도있고, 잘 안될 수 도 있다....그래도 해보자!!!


1. 안드로이드 ADT 에 Eclipse 를 실행해서 Android 프로젝트를 새로 만들자.

프로젝트를 생성할 때 가장 주의할 점은 Minimum Required SDK 인데, API 레벨을 가장 높은 21로 잡을 경우 어플을 실행하는 에뮬레이터 or 장치(안드로이드폰등)의 소프트웨어 버전도 가장 높아야한다. 따라서 Minimun Required SDK 는 약간 내 장치보다는 약간 낮은 레벨로 잡고, 장치와 비슷한 수준으로 빌드 레벨을 설정하자. 

필자는 갤럭시 노트2를 사용하고 있고, 버전이 4.4.2이기 때문에 그림과 같이 API 레벨을 설정하였다.


Next 를 계속누르고, Finish 하면 아래와 같이 프로젝트가 생성된다.

2. Google Service 프로젝트를 내 작업공간 폴더에 복사한 후, 프로젝트를 import 시킨다. 

 - ADT 폴더에 SDK 로 들어가보면 이전에 extras 로 설치한 google service 폴더가 있을 것이다. 

 경로는 대략 아래와 같으니 참고해서 복사해오자.

경로 : adt-bundle-windows-x86_64-20140702\sdk\extras\google\google_play_services\libproject\google-play-services_lib


복사를 했으면 Import 를 하자. 

File -> Import -> Android -> Existing Android Code Into Workspace 선택하고 next -> Browse 눌러서 복사해혼 google service lib 폴더를 선택하고 Copy projects into workspace 를 체크한 후에 finish 하면 import 가 완료된다.



3. AdMobTest 프로젝트에서 마우스 우클릭하여 properties를 선택한다. 그리고 google service lib 를 추가한다.

4. 이제 반왔다...소스 코드를 수정하자. 3개의 코드를 수정해야 하는데, 일단은 테스트이니 아래 소스코드를 참고해서 수정하면 된다. 

 1) MainActivity.java

package com.example.admobtest;

import android.app.Activity;

import android.os.Bundle;

import android.view.Menu;

import android.view.MenuItem;

import android.widget.LinearLayout;

import com.google.android.gms.ads.*;


public class MainActivity extends Activity {

private AdView adView;

private static final String AD_UNIT_ID = "당신의 Admob 에서 생성된 광고 ID";

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        

        // adView를 만듭니다.

        adView = new AdView(this);

        adView.setAdUnitId(AD_UNIT_ID);

        adView.setAdSize(AdSize.BANNER);


        // android:id="@+id/mainLayout" 속성을 지정했다고 가정하고

        // LinearLayout을 찾습니다.

        LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayout);


        // 레이아웃에 adView를 추가합니다.

        layout.addView(adView);


        // 기본 요청을 시작합니다.

        AdRequest adRequest = new AdRequest.Builder()

        .addTestDevice(AdRequest.DEVICE_ID_EMULATOR)

        .addTestDevice("당신의 장치번호")        //필자의 경우 갤럭시 노트2의 장치 번호를 넣음 

        .build();

        // 광고 요청으로 adView를 로드합니다.

        adView.loadAd(adRequest);

      }


      @Override

      public void onPause() {

        adView.pause();

        super.onPause();

      }


      @Override

      public void onResume() {

        super.onResume();

        adView.resume();

      }


      @Override

      public void onDestroy() {

        adView.destroy();

        super.onDestroy();

      }


    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

        // Inflate the menu; this adds items to the action bar if it is present.

        getMenuInflater().inflate(R.menu.main, menu);

        return true;

    }


    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

        // Handle action bar item clicks here. The action bar will

        // automatically handle clicks on the Home/Up button, so long

        // as you specify a parent activity in AndroidManifest.xml.

        int id = item.getItemId();

        if (id == R.id.action_settings) {

            return true;

        }

        return super.onOptionsItemSelected(item);

    }

}


 2) activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/linearLayout"
              android:orientation="vertical"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_marginLeft="10dp"
              android:layout_marginTop="100dp">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:text="@string/hello_world" />

</LinearLayout>

 3) AdmobTestManifest

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    package="com.example.admobtest"     // 당신의 프로젝트 명으로 변경하세요

    android:versionCode="1"    

    android:versionName="1.0" >


    <uses-sdk

        android:minSdkVersion="16"                // 당신의 Android 프로젝트 생성시 API 레벨을 넣어줏에ㅛ

        android:targetSdkVersion="19" />


    <application

        android:allowBackup="true"

        android:icon="@drawable/ic_launcher"

        android:label="@string/app_name"

        android:theme="@style/AppTheme" >

        <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>

        

        <activity android:name="com.google.android.gms.ads.AdActivity"

                  android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

    <meta-data android:name="com.google.android.gms.version"

               android:value="@integer/google_play_services_version" />

    </application>

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

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

</manifest>


5. 결과


사진을 덕지 덕지 붙여서 이해하기 쉽게 만들고 싶었으나....스크롤 압박으로 인해 글로 해결을 봤습니다.

추후에 업데이트를...




반응형

댓글