안드로이드 애드몹 리워드 광고 누르고 다음 액티비티로 넘어가기
1. 먼저 build gradle (app)에서 선언해줍니다.
implementation 'com.google.android.gms:play-services-ads:19.1.0'
2. maifests 에 애플리케이션 아이디와 광고
<application
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-3940256099942544~3347511713" />
</application>
3. xml 코드 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"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center"
android:text="Rewarded Ads Example\n\n메인화면"
android:textColor="#000"
android:textSize="30dp" />
<Button
android:layout_gravity="center"
android:id="@+id/Ad_Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="광고 버튼"/>
</LinearLayout>
4. xml 코드 두번째 액티비티 activity_second.xml
광고를 보면 두번째 액티비로 넘어왔다. 메인으로 돌아가기 버튼을 누르면 다시 첫번째 메인액티비티로 돌아간다.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".SecondActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="120dp"
android:text="메인으로 돌아가기"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="172dp"
android:text="2번째 액티비티"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
</androidx.constraintlayout.widget.ConstraintLayout>
자바 코드 MainActivity.java
package com.jwlee.rewarded_admob;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.initialization.InitializationStatus;
import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;
import com.google.android.gms.ads.rewarded.RewardItem;
import com.google.android.gms.ads.rewarded.RewardedAd;
import com.google.android.gms.ads.rewarded.RewardedAdCallback;
import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;
public class MainActivity extends AppCompatActivity {
boolean isLoading;
private static final String AD_UNIT_ID = "ca-app-pub-3940256099942544/5224354917";
private RewardedAd rewardedAd;
private String TAG = "Rewarded";
Button Ad_Button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Ad_Button = findViewById(R.id.Ad_Button);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
loadRewardedAd();
startrewardAD();
Ad_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showRewardedVideo();
}
});
}
private void loadRewardedAd() {
if (rewardedAd == null || !rewardedAd.isLoaded()) {
rewardedAd = new RewardedAd(this, AD_UNIT_ID);
isLoading = true;
rewardedAd.loadAd(
new AdRequest.Builder().build(),
new RewardedAdLoadCallback() {
@Override
public void onRewardedAdLoaded() {
// Ad successfully loaded.
MainActivity.this.isLoading = false;
}
@Override
public void onRewardedAdFailedToLoad(int errorCode) {
// Ad failed to load.
MainActivity.this.isLoading = false;
}
});
}
}
private void startrewardAD() {
// Hide the retry button, load the ad, and start the timer.
if (!rewardedAd.isLoaded() && !isLoading) {
loadRewardedAd();
}
}
private void showRewardedVideo() {
if (rewardedAd.isLoaded()) {
RewardedAdCallback adCallback =
new RewardedAdCallback() {
@Override
public void onRewardedAdOpened() {
// Ad opened.
Toast.makeText(MainActivity.this, "onRewardedAdOpened", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedAdClosed() {
// Ad closed.
Toast.makeText(MainActivity.this, "onRewardedAdClosed", Toast.LENGTH_SHORT).show();
// Preload the next video ad.
MainActivity.this.loadRewardedAd();
}
@Override
public void onUserEarnedReward(RewardItem rewardItem) {
// User earned reward.
Toast.makeText(MainActivity.this, "onUserEarnedReward", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
startActivity(intent);
finish();
}
@Override
public void onRewardedAdFailedToShow(int errorCode) {
// Ad failed to display
Toast.makeText(MainActivity.this, "onRewardedAdFailedToShow", Toast.LENGTH_SHORT).show();
}
};
rewardedAd.show(this, adCallback);
}
}
}
자바코드 SecondActivity
package com.jwlee.rewarded_admob;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class SecondActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
});
}
}
'기타 ETC > Android Studio' 카테고리의 다른 글
허프(D. L. Huff)는 상권분석에서 결정론적인 접근보다 확률론적인 접근이 필요하다고 보았다. (0) | 2021.01.04 |
---|---|
[Android] CountDownTime 주기적 실행 타이머 (0) | 2020.12.08 |
안드로이드 애드몹 보상형 광고 간단하게 만들어 보기 (0) | 2020.11.25 |
주간 달력 만들기 (0) | 2020.10.11 |
안드로이드 TTS(TextToSpeech) 음성출력 사용하기 (0) | 2020.07.22 |