Android Studio/java

51. [안드로이드/JAVA] 구글 애드몹 보상형광고 넣기

drizzle0925 2025. 1. 23. 07:13
728x90

안드로이드 스튜디오에서 새 프로젝트를 생성합니다.

 

 

Empty Activity를 선택합니다. (다른거 선택해도 무관합니다)

 

 

Name을 정해주고, Minimun SDK는 API19로 했습니다.

설정을 완료하셨다면 Finish를 눌러주세요.

 

 

 

bulid gradle (project)에 아래 코드를 추가합니다.

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

 

 

 

build gradle (module)에 아래 코드를 추가합니다.

implementation 'com.google.android.gms:play-services-ads:11.8.0'

 

res > layout > activity_main.xml에 아래 코드를 추가합니다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="가지고 있는 코인"
        android:textSize="30sp"
        android:textStyle="bold"/>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/text_view"
        android:text="0"
        android:textSize="50sp"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/button"
        android:text="광고 보고 코인 받기"
        android:textSize="20sp"
        android:layout_marginTop="20dp"/>
</LinearLayout>

 

 

MainActivity.java

package com.example.rewardtest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
    RewardedVideoAd rewardedVideoAd;
    TextView textView;
    Button button;
    int coins;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text_view);
        button = findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (rewardedVideoAd.isLoaded()) {
                    rewardedVideoAd.show();
                }
            }
        });

        MobileAds.initialize(this, "ca-app-pub-1811269372362017~4664640683");
        rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
        rewardedVideoAd.setRewardedVideoAdListener(this);
        loadAds();
    }

    private void loadAds() {
        rewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build());
    }

    @Override
    public void onRewardedVideoAdLoaded() {

    }

    @Override
    public void onRewardedVideoAdOpened() {

    }

    @Override
    public void onRewardedVideoStarted() {

    }

    @Override
    public void onRewardedVideoAdClosed() {

    }

    @Override
    public void onRewarded(RewardItem rewardItem) {
        coins = coins + 50;
        textView.setText(""+coins);

    }

    @Override
    public void onRewardedVideoAdLeftApplication() {

    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {

    }



    @Override
    protected void onResume() {
        rewardedVideoAd.resume(this);
        super.onResume();
    }

    protected void onPause() {
        rewardedVideoAd.pause(this);
        super.onPause();
    }

    @Override
    protected void onDestroy() {
        rewardedVideoAd.destroy(this);
        super.onDestroy();
    }
}

 

구동화면

좌 : 광고 열람하기 > 광고 재생완료 후 종료

우 : 광고 열람하기 > 뒤로가기버튼 클릭


보완사항

1) 한번 광고 열람시 재열람이 불가함

2) 어플실행 직후 광고재생버튼을 눌렀을 경우 광고가 재생되지 않는 문제

(어플을 실행시킨후 잠시 기다리고 나서 광고버튼을 누르면 바로 광고가 재생됨)

 

728x90