2

我在使用 Applovin 和 Chartboost 实施 AdMob 奖励视频中介时被困了 3 天,代码完全找到了,但是当我启动应用程序时,它显示“onRewardedVideoAdFailedToLoad”并且广告不会显示。以下是我的代码,如果我在代码中有任何错误,请帮助我。

import com.applovin.sdk.AppLovinSdk;
import com.chartboost.sdk.Chartboost;
import com.google.ads.mediation.chartboost.ChartboostAdapter;
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 Activity implements RewardedVideoAdListener {
private Button rewarded_video;
private RewardedVideoAd mAd;

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

    AppLovinSdk.initializeSdk(getApplicationContext());
    AppLovinIncentivizedInterstitial myIncent = AppLovinIncentivizedInterstitial.create(this);
    myIncent.preload(null);

    Chartboost.startWithAppId(this, "xxxxxx", "xxxxxx");
    Chartboost.onCreate(this);

    MobileAds.initialize(this, APP_ID);
    mAd = MobileAds.getRewardedVideoAdInstance(this);
    mAd.setRewardedVideoAdListener(this);

    Bundle bundle = new Bundle();
    bundle.putBoolean("mute_audio", true);
    AdRequest adRequest = new AdRequest.Builder()
            .addNetworkExtrasBundle(ChartboostAdapter.class, bundle)
            .addNetworkExtrasBundle(ApplovinAdapter.class, bundle)
            .build();
    mAd.loadAd(AD_UNIT_ID, adRequest);

    rewarded_video = (Button) findViewById(R.id.rewarded_interstitial);
    rewarded_video.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            if (mAd.isLoaded()) {
                mAd.show();
            }
        }
    });

}
@Override
public void onResume() {
    mAd.resume(this);
    super.onResume();
    Chartboost.onResume(this);
}
@Override
public void onPause() {
    mAd.pause(this);
    super.onPause();
    Chartboost.onPause(this);
}
@Override
public void onDestroy() {
    mAd.destroy(this);
    super.onDestroy();
    Chartboost.onDestroy(this);
}
@Override
public void onStop() {
    super.onStop();
    Chartboost.onStop(this);
}


@Override
public void onBackPressed() {
    // If an interstitial is on screen, close it.
    if (Chartboost.onBackPressed())
        return;
    else
        super.onBackPressed();
}



@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();
    //rewarded_video.setVisibility(View.GONE);
}

@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 onRewarded(RewardItem reward) {

}

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

非常感谢您的热心帮助。

4

1 回答 1

2

您是在尝试通过 AdMob 调解 AppLoving 和 Chartboost,还是尝试在 Admob 之外调用 AppLovin 和 Chartboost SDK?

看起来您正在尝试分别初始化 AppLovin 和 Chartboost SDK,然后尝试在这两个广告源未经过中介的情况下对 AdMob 本身使用显示调用。我最后一次检查,AdMob 本身不支持奖励视频,而是依赖其他广告网络资源来显示奖励视频,这可能是您没有得到任何东西的原因。顺便说一句,您已经在 AdMob 的控制面板中设置了所有内容,是吗?(如设置中介来源并设置适当的广告单元)

为了让现在的代码能够正常工作,您需要让 Chartboost 或 AppLovin 自己的广告调用来显示奖励视频,而不是 AdMob。如果您想进行调解,AdMob的网站上有一个指南可以帮助您。他们还为 AppLovin及其所有经批准的集成合作伙伴提供了指南。

希望这可以帮助。

于 2016-09-14T20:35:04.310 回答