본문 바로가기

AOS - Java

[안드로이드/Android] 애드몹 보상형 광고 달기

반응형
SMALL

애드몹에 리워드 광고 등록 후 


* 애드몹을 이용하기 위해선 SDK Manager 에 Google Repository가 설치되어 있어야 합니다. 

Tools - Android - SDK Manager - SDK Tools - Google Repository


1. project 레벨 gradle 수정

allprojects {

    repositories {

        jcenter()

        maven {

            url "https://maven.google.com"

        }

    }

}



2. app 레벨 gradle sdk 추가

compile 'com.google.android.gms:play-services-ads:10.0.1'



3. 매니페스트 수정

[권한 추가]

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

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


[메타데이터 추가]

    <meta-data

    android:name="com.google.android.gms.version"

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


<meta-data

    android:name="com.google.android.gms.ads.APPLICATION_ID"

    android:value=“ADMOB_APP_ID”/>

-> 애드몹에 등록된 앱 ID


[구글 애드몹 액티비티 추가]

<activity

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

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

    android:theme="@android:style/Theme.Translucent" />



4. strings.xml  추가

<string name="ad_unit_id">리워드 광고 단위 id</string>



5. 광고 세팅

private RewardedVideoAd mRewardedVideoAd;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);


MobileAds.initialize(this, getResources().getString(R.string.ad_unit_id));


mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);

mRewardedVideoAd.setRewardedVideoAdListener(new RewardedVideoAdListener() {

    @Override

    public void onRewarded(RewardItem reward) {

        Toast.makeText(getApplicationContext(), "onRewarded! currency: " + reward.getType() + "  amount: " +

                reward.getAmount(), Toast.LENGTH_SHORT).show();


        // 사용자에게 보상할 내용

    }


    @Override

    public void onRewardedVideoAdLeftApplication() {

        Toast.makeText(getApplicationContext(), "VideoAdLeftApplication", Toast.LENGTH_SHORT).show();

    }


    @Override

    public void onRewardedVideoAdClosed() {

        Toast.makeText(getApplicationContext(), "VideoAdClosed", Toast.LENGTH_SHORT).show();

    }


    @Override

    public void onRewardedVideoAdFailedToLoad(int errorCode) {

        Toast.makeText(getApplicationContext(), “VideoAdFailedToLoad", Toast.LENGTH_SHORT).show();

    }


    @Override

    public void onRewardedVideoAdLoaded() {

        Toast.makeText(getApplicationContext(), "VideoAdLoaded", Toast.LENGTH_SHORT).show();

    }


    @Override

    public void onRewardedVideoAdOpened() {

        Toast.makeText(getApplicationContext(), "VideoAdOpened", Toast.LENGTH_SHORT).show();

    }


    @Override

    public void onRewardedVideoStarted() {

        Toast.makeText(getApplicationContext(), "VideoStarted", Toast.LENGTH_SHORT).show();

    }

});


//광고 미리 로드

loadRewardedVideoAd();


}


private void loadRewardedVideoAd() {

    mRewardedVideoAd.loadAd(getResources().getString(R.string.ad_unit_id), new AdRequest.Builder().build());

}



6. 광고 로드

if (mRewardedVideoAd.isLoaded()) {

    mRewardedVideoAd.show();

}




애드몹 에러코드

0: 앱에 등록한 광고 아이디와 애드몹에서 생성된 광고 아이디가 다를 때 나는 오류

1 : 광고 아이디의 '~' 부분을 '/' 로 변경 안해서 나는 오류


반응형
LIST