You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用ironSource SDK激励广告无法展示问题求助

解决ironSource激励广告无法展示的问题

一、优先处理Google Play服务缺失问题

多数广告聚合平台(包括ironSource)依赖Google Play服务才能正常拉取广告,你的模拟器缺少Google Play是核心诱因之一:

  • 更换带Google Play标识的Android模拟器:在Android Studio的AVD管理器中,选择标注「Google Play」的系统镜像(如Pixel系列镜像)
  • 更新模拟器内的Google Play服务:打开模拟器的Google Play应用,检查并完成服务更新

二、修正广告加载与展示逻辑

你当前代码在初始化后立即调用loadRewardedVideo(),但未等待广告加载完成就触发展示,直接导致「无可用广告」错误:

  1. 监听广告加载状态:在onAdAvailable回调中标记广告就绪,onAdUnavailable中标记广告未就绪
  2. 展示前校验广告状态:调用showRewardedVideo()前,通过IronSource.isRewardedVideoAvailable()或自定义变量判断是否有可用广告

修改后的关键代码示例:

private boolean isRewardedAdReady = false;

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

    IronSource.init(this, "197be235d");

    IronSource.setLevelPlayRewardedVideoListener(new LevelPlayRewardedVideoListener() {
        @Override
        public void onAdAvailable(AdInfo adInfo) {
            isRewardedAdReady = true; // 标记广告就绪
        }

        @Override
        public void onAdUnavailable() {
            isRewardedAdReady = false; // 标记广告未就绪
        }

        // 其他回调保持原有实现...
    });

    // 初始化完成后再触发加载
    IronSource.loadRewardedVideo();
}

public void radst(View view) {
    // 展示前先检查广告状态
    if (isRewardedAdReady || IronSource.isRewardedVideoAvailable()) {
        IronSource.showRewardedVideo("DefaultRewardedVideo");
        isRewardedAdReady = false; // 重置标记避免重复展示
    } else {
        // 提示用户广告暂不可用,或触发重新加载
        IronSource.loadRewardedVideo();
    }
}

三、检查其他配置细节

  • 后台配置一致性:确认ironSource后台的展示位名称(如DefaultRewardedVideo)与代码中完全匹配,广告单元已激活
  • SDK集成完整性:确保已添加必要权限(INTERNET、ACCESS_NETWORK_STATE),以及配置的第三方广告源SDK已正确集成
  • 测试模式开启:测试阶段需在ironSource后台开启测试模式,或使用官方提供的测试广告ID,避免因流量不足导致无广告
  • 生命周期正确性:确认所有Activity的onResume()和onPause()中都正确调用IronSource.onResume(this)和IronSource.onPause(this)(你的代码这部分已正确实现)

四、补充日志排查

在相关回调中添加日志,获取更精准的错误信息:

@Override
public void onAdShowFailed(IronSourceError error, AdInfo adInfo) {
    Log.e("IronSource", "广告展示失败: " + error.getErrorMessage() + ", 错误码: " + error.getErrorCode());
}

@Override
public void onAdUnavailable() {
    Log.w("IronSource", "无可用激励广告");
}

内容的提问来源于stack exchange,提问作者prog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 08:18:32