본문 바로가기

Android

android adam, admob 광고달기 순서

반응형

계속 쓸것 같아서 만들어 봤습니다.



1. AndroidManifest.xml 추가

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

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



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

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

        <!-- Interstitial 광고를 사용하기 위해서는 반드시 이 부분을 추가해야한다. -->

<activity android:name="net.daum.adam.publisher.impl.AdInterstitialActivity"

android:configChanges="orientation|keyboardHidden"

android:screenOrientation="portrait" />


2. layout.xml 추가

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

    xmlns:tools="http://schemas.android.com/tools"

    xmlns:ads="http://schemas.android.com/apk/res-auto"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:paddingBottom="@dimen/activity_vertical_margin"

    android:paddingLeft="@dimen/activity_horizontal_margin"

    android:paddingRight="@dimen/activity_horizontal_margin"

    android:paddingTop="@dimen/activity_vertical_margin"

    android:orientation="vertical" >


광고 넣을 부분에 아래사항 추가


<FrameLayout 

android:id="@+id/adLayout"

android:layout_width="match_parent"

android:layout_height="wrap_content">            

<com.google.android.gms.ads.AdView 

android:id="@+id/adAdmobView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

ads:adSize="BANNER"

ads:adUnitId="각자 코드 삽입"/>

<net.daum.adam.publisher.AdView

android:id="@+id/adAdamView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</FrameLayout>


3. java file 추가

AdControl.getInstance().InitBanner(findViewById(R.id.adAdamView), findViewById(R.id.adAdmobView));

AdControl.getInstance().InitInterstitial(this);


4. adControl.java file 내용

public class AdControl {


private static AdControl instance;

private View mAdamView;

private View mAdmobView;

private boolean mAdamInterstitial = false;

public static AdControl getInstance(){

if(instance == null){

instance = new AdControl();

}

return instance;

}


public void InitInterstitial(Activity _activity){

AdamControl.getInstance().InitInterstitialAdam(_activity);

AdmobControl.getInstance().InitInterstitialAdmob(_activity);

}

public void DisplayInterstitial(){

if(AdamControl.getInstance().mAdInterstitial.isReady())

AdamControl.getInstance().DisplayInterstitial();

else

AdmobControl.getInstance().DisplayInterstitial();

}

public void InitBanner(View _adamView, View _admobView){

mAdamView = _adamView;

mAdmobView = _admobView;

AdamControl.getInstance().InitBannerAdam(mAdamView);

}

public void Destroy(){

AdamControl.getInstance().Destroy();

AdmobControl.getInstance().Destroy();

}

private void ShowAdamView(){

mAdamView.setVisibility(View.VISIBLE);

mAdmobView.setVisibility(View.INVISIBLE);

}

private void ShowAdmobView(){

mAdmobView.setVisibility(View.VISIBLE);

mAdamView.setVisibility(View.INVISIBLE);

}

Handler mADHandler = new Handler(){

public void handleMessage(Message msg) {

if( msg.what == 0){

//adam 실패

AdmobControl.getInstance().InitBannerAdmob(mAdmobView);

ShowAdmobView();

}

if( msg.what == 1){

//adam 성공

ShowAdamView();

}

}

};

}


5. AdamControl.java



public class AdamControl {



private static AdamControl instance;

AdInterstitial mAdInterstitial = null;

private AdView adView = null;

public static AdamControl getInstance(){

if(instance == null){

instance = new AdamControl();

}

return instance;

}

public void Destroy(){

if (adView != null) {

adView.destroy();

adView = null;

}

if (mAdInterstitial != null) {

mAdInterstitial = null;

}

}

public void InitInterstitialAdam(Activity _activity){

// 1. 전면형 광고 객체 생성

mAdInterstitial = new AdInterstitial(_activity);

// 2. 전면형 광고 클라이언트 ID를 설정한다.

mAdInterstitial.setClientId("각자 key 삽입");

// 3. (선택)전면형 광고 다운로드시에 실행할 리스너

mAdInterstitial.setOnAdLoadedListener(new OnAdLoadedListener() {

@Override

public void OnAdLoaded() {

Log.d("jwm", "전면광고가 로딩되었습니다.");

}

});

// 4. (선택)전면형 광고 다운로드 실패시에 실행할 리스너

mAdInterstitial.setOnAdFailedListener(new OnAdFailedListener() {

@Override

public void OnAdFailed(AdError error, String errorMessage) {

Log.d("jwm", "전면광고 " + errorMessage);

// Toast.makeText(InterstitialActivity.this, errorMessage, Toast.LENGTH_LONG).show();

}

});

// 5. (선택)전면형 광고를 닫을 시에 실행할 리스너

mAdInterstitial.setOnAdClosedListener (new OnAdClosedListener() {

@Override

public void OnAdClosed() {

Log.d("jwm", "전면광고를 닫았습니다. ");

}

});

}

public void DisplayInterstitial(){

// 6. 전면형 광고를 불러온다.

mAdInterstitial.loadAd();

}

public void InitBannerAdam(View _view) {


boolean isLoad = false;

// Ad@m sdk 초기화 시작

adView = (AdView) _view;

adView.setClientId("각자 key 삽입"); //배너


// 광고 리스너 설정

// 1. 광고 클릭시 실행할 리스너

adView.setOnAdClickedListener(new OnAdClickedListener() {

@Override

public void OnAdClicked() {

Log.d("jwm", "광고를 클릭했습니다.");

}

});

// 2. 광고 내려받기 실패했을 경우에 실행할 리스너

adView.setOnAdFailedListener(new OnAdFailedListener()

{

@Override

public void OnAdFailed(AdError error, String message) {

Log.d("jwm", "adam" + message);

AdControl.getInstance().mADHandler.sendEmptyMessage(0);

}

});

// 3. 광고를 정상적으로 내려받았을 경우에 실행할 리스너

adView.setOnAdLoadedListener(new OnAdLoadedListener()

{

@Override

public void OnAdLoaded() {

Log.d("jwm", "광고가 정상적으로 로딩되었습니다.");

AdControl.getInstance().mADHandler.sendEmptyMessage(1);

}

});

// 4. 광고를 불러올때 실행할 리스너

adView.setOnAdWillLoadListener(new OnAdWillLoadListener() {

@Override

public void OnAdWillLoad(String url) {

Log.d("jwm", "광고를 불러옵니다. : " + url);

}

});

// 5. 전면형 광고를 닫았을때 실행할 리스너

adView.setOnAdClosedListener(new OnAdClosedListener()

{

@Override

public void OnAdClosed() {

Log.d("jwm", "광고를 닫았습니다.");

}

});

// 할당 받은 clientId 설정

// adView.setClientId(“TestClientId”);

// 광고 갱신 주기를 12초로 설정

adView.setRequestInterval(12);

// 광고 영역에 캐시 사용 여부 : 기본 값은 true

adView.setAdCache(false);

// Animation 효과 : 기본 값은 AnimationType.NONE

adView.setAnimationType(AnimationType.FLIP_HORIZONTAL);

adView.setVisibility(View.VISIBLE);

}

}


6. AdmobControl.java



public class AdmobControl {


private static AdmobControl instance;

private AdView adView = null;

private InterstitialAd interstitial = null;

public static AdmobControl getInstance(){

if(instance == null){

instance = new AdmobControl();

}

return instance;

}

public void Destroy(){

if (adView != null) {

adView.destroy();

adView = null;

}

if (interstitial != null) {

interstitial = null;

}

}

public void InitInterstitialAdmob(Context _context){

interstitial = new InterstitialAd(_context);

interstitial.setAdUnitId("각자 key 삽입");

AdRequest adRequest1 = new AdRequest.Builder().build();

interstitial.loadAd(adRequest1);

}

public void InitBannerAdmob(View _view){

adView = (AdView) _view;

adView.setAdListener(new AdListener() {

public void onAdLoaded() {

adView.bringToFront();

}

});

AdRequest adRequest = new AdRequest.Builder().build();

adView.loadAd(adRequest);

}

public void DisplayInterstitial(){

if(interstitial.isLoaded()){

interstitial.show();

}

}

}


'Android' 카테고리의 다른 글

이클립스 개발환경 배경색상 폰트 바꾸기  (0) 2014.11.08
android 간단한 값 저장 SharedPreferences Class  (0) 2014.11.06
flat design site  (0) 2014.11.04
android webview 간단 사용법  (0) 2014.11.03
android 롤리팝 color  (0) 2014.11.02