admob 广告代码参考 安卓 奖励视频

Initialize rewarded video ads

JAVA

KOTLIN

  
  
package ...

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


public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
   
private RewardedVideoAd mRewardedVideoAd;

   
@Override
   
protected void onCreate(Bundle savedInstanceState) {
       
super.onCreate(savedInstanceState);
        setContentView
(R.layout.activity_main);
       
MobileAds.initialize(this,
           
"ca-app-pub-3940256099942544~3347511713");

       
// Use an activity context to get the rewarded video instance.
        mRewardedVideoAd
= MobileAds.getRewardedVideoAdInstance(this);
        mRewardedVideoAd
.setRewardedVideoAdListener(this);

   
}
   
...
}
Note:  It's important to use an Activity context instead of an Application context when calling MobileAds.getRewardedVideoAdInstance(). If your ad placement is configured for medation, this context is passed to mediation adapters, and several adapters require an Activity context to load ads.

RewardedVideoAd object can be retrieved using MobileAds.getRewardedVideoAdInstance().

To be notified of rewarded video lifecycle events, you must implementRewardedVideoAdListener. The rewarded ad listener is set using thesetRewardedVideoAdListener() method. This listener is automatically notified of events from all the networks you're mediating. For example, you are notified of a user being rewarded for watching a video through the onRewarded() method on RewardedVideoAdListener.

Request rewarded video ad

Note:  Make all calls to the Mobile Ads SDK on the main thread.

JAVA

KOTLIN

  
  
@Override
protected void onCreate(Bundle savedInstanceState) {
   
super.onCreate(savedInstanceState);
    setContentView
(R.layout.activity_main);
   
MobileAds.initialize(this,
       
"ca-app-pub-3940256099942544~3347511713");

   
// Use an activity context to get the rewarded video instance.
    mRewardedVideoAd
= MobileAds.getRewardedVideoAdInstance(this);
    mRewardedVideoAd
.setRewardedVideoAdListener(this);

   
loadRewardedVideoAd();
}

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

Adhering to the singleton design of RewardedVideoAd, requests to load an ad should be mRewardedVideoade to the shared instance.

It is highly recommended to call loadAd() as early as possible (for example, in the onCreate()method of your Activity) to allow videos to be preloaded.

Always test with test ads

When building and testing your apps, make sure you use test ads rather than live, production ads. Failure to do so can lead to suspension of your account.

The easiest way to load test ads is to use our dedicated test ad unit ID for Android rewarded video:

ca-app-pub-3940256099942544/5224354917

It's been specially configured to return test ads for every request, and you're free to use it in your own apps while coding, testing, and debugging. Just make sure you replace it with your own ad unit ID before publishing your app.

For more information about how the Mobile Ads SDK's test ads work, see Test Ads.

Set up event notifications

The SDK provides the RewardedVideoAdListener interface, which has methods corresponding to the events in a rewarded video ad's lifecycle. Have your app define a class that implements this interface and pass it to setRewardedVideoAdListener prior to loading an ad.

The code example in Initialize rewarded video ads already shows how to declare that your class implements RewardedVideoAdListener and set the listener on the RewardedVideoAd object. Here is a sample implementation of the listener methods:

JAVA

KOTLIN

  
  
@Override
public void onRewarded(RewardItem reward) {
   
Toast.makeText(this, "onRewarded! currency: " + reward.getType() + "  amount: " +
            reward
.getAmount(), Toast.LENGTH_SHORT).show();
   
// Reward the user.
}

@Override
public void onRewardedVideoAdLeftApplication() {
   
Toast.makeText(this, "onRewardedVideoAdLeftApplication",
           
Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdClosed() {
   
Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdFailedToLoad(int errorCode) {
   
Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdLoaded() {
   
Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoAdOpened() {
   
Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
}

@Override
public void onRewardedVideoStarted() {
   
Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
}

Display an ad

JAVA

KOTLIN

  
  
if (mRewardedVideoAd.isLoaded()) {
    mRewardedVideoAd
.show();
}

We recommend that you ensure a rewarded video ad has completed loading before attempting to display it. The isLoaded() method indicates if the rewarded video ad request has been successfully fulfilled.

Forward lifecycle events

To forward the parent Activity's lifecycle events to the RewardedVideoAd object, call the resume()pause(), and destroy() methods in the parent Activity's onResume()onPause(), and onDestroy() methods respectively.

Here is an example of Activity lifecycle event forwarding:

JAVA

KOTLIN

  
  
@Override
public void onResume() {
    mRewardedVideoAd
.resume(this);
   
super.onResume();
}

@Override
public void onPause() {
    mRewardedVideoAd
.pause(this);
   
super.onPause();
}

@Override
public void onDestroy() {
    mRewardedVideoAd
.destroy(this);
   
super.onDestroy();
}

Additional resources

Samples on GitHub

Mobile Ads Garage video tutorials

Codelab

Next steps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值