Android Studio 廣告 - 獎勵廣告

 以下是整合 Google 獎勵廣告程式說明 所寫的程式碼,並且加上註解,已經確定在手機上可以使用,自己當作備份參考,有興趣的也可以直接拿去試試看

public class MainActivity2 extends AppCompatActivity {
private RewardedAd mRewardedAd;
private final String TAG = "MainActivity2";
private final String adsWait = "等待廣告播放中...";
private final String adsFail = "廣告投放失敗";
private final String btnBack = "返回主選單";

TextView textView;
Button button;

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

textView = findViewById(R.id.textView);
textView.setText(adsWait);
//結束視窗
button = findViewById(R.id.button);
button.setText(btnBack);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});

AdRequest adRequest = new AdRequest.Builder().build();
RewardedAd.load(this, "ca-app-pub-3940256099942544/5224354917",
adRequest, new RewardedAdLoadCallback() {
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
// Handle the error.
Log.d(TAG, loadAdError.toString());
mRewardedAd = null;
//顯示失敗,可以返回主選單
adsFail();
}

@Override
public void onAdLoaded(@NonNull RewardedAd rewardedAd) {
//正常步驟 1.
//載入廣告
mRewardedAd = rewardedAd;
Log.d(TAG, "Ad was loaded.");
//開始廣告播放及監聽
adsShow();
}
});
}

//開始廣告播放及監聽
void adsShow(){
if (mRewardedAd != null) {
Activity activityContext = MainActivity2.this;

mRewardedAd.setFullScreenContentCallback(new FullScreenContentCallback() {
//使用者按下廣告
@Override
public void onAdClicked() {
// Called when a click is recorded for an ad.
Log.d(TAG, "Ad was clicked.");
}

//正常步驟 5.
//使用者關閉視窗
@Override
public void onAdDismissedFullScreenContent() {
// Called when ad is dismissed.
// Set the ad reference to null so you don't show the ad a second time.
Log.d(TAG, "Ad dismissed fullscreen content.");
mRewardedAd = null;
finish();
}

@Override
public void onAdFailedToShowFullScreenContent(AdError adError) {
// Called when ad fails to show.
Log.e(TAG, "Ad failed to show fullscreen content.");
mRewardedAd = null;
//顯示失敗,可以返回主選單
adsFail();
}

//正常步驟 3.
//廣告展示撥放
@Override
public void onAdImpression() {
// Called when an impression is recorded for an ad.
Log.d(TAG, "Ad recorded an impression.");
}

//正常步驟 2.
//顯示廣告視窗
@Override
public void onAdShowedFullScreenContent() {
// Called when ad is shown.
Log.d(TAG, "Ad showed fullscreen content.");
}
});

mRewardedAd.show(activityContext, new OnUserEarnedRewardListener() {
//正常步驟 4.
//使用者獲得獎勵
@Override
public void onUserEarnedReward(@NonNull RewardItem rewardItem) {
// Handle the reward.
Log.d(TAG, "The user earned the reward.");
int rewardAmount = rewardItem.getAmount();
String rewardType = rewardItem.getType();
}
});
} else {
Log.d(TAG, "The rewarded ad wasn't ready yet.");
//顯示失敗,可以返回主選單
adsFail();
}
}

//顯示失敗,可以返回主選單
void adsFail(){
textView.setText(adsFail);
button.setVisibility(View.VISIBLE);
}
}

以下是實際使用的畫面



留言

這個網誌中的熱門文章

Javascript Dialog 自訂輸入視窗 (五) 回傳資料事件及處理

RMMV 雜記 - 角色及劇情