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

设置NativeAd竖屏宽高比后仅视频广告生效,图片广告异常求助

解决方案:原生图片广告强制竖屏宽高比

1. 先搞懂API的实际作用

setMediaAspectRatio(MediaAspectRatio.PORTRAIT)这个配置只对视频广告有强制约束,对图片广告来说,它只是个给AdMob的请求偏好,实际返回的广告还是要看平台的可用库存,所以没法单靠这个API让图片广告都变成竖屏。

2. 手动给图片加布局约束

加载到原生广告后,直接给图片视图设置固定的竖屏宽高比,比如常用的9:16或3:4:

// 拿到加载好的原生广告后处理图片视图
NativeAd nativeAd = ...; // 已加载完成的原生广告实例
ImageView mediaView = (ImageView) nativeAd.getMediaContent().getImageView();
if (mediaView != null) {
    // 以9:16竖屏比例为例,适配你的布局容器
    ConstraintLayout.LayoutParams params = (ConstraintLayout.LayoutParams) mediaView.getLayoutParams();
    params.dimensionRatio = "9:16";
    mediaView.setLayoutParams(params);
    // 加个缩放模式避免图片拉伸变形
    mediaView.setScaleType(ImageView.ScaleType.CENTER_CROP);
}

3. 过滤不符合比例的广告

如果必须严格只展示竖屏图片,加载后先检查图片实际宽高比,不符合就直接弃掉请求下一条:

@Override
public void onNativeAdLoaded(NativeAd nativeAd) {
    MediaContent mediaContent = nativeAd.getMediaContent();
    if (mediaContent != null && mediaContent.hasImage()) {
        AdImage adImage = mediaContent.getImage();
        float aspectRatio = (float) adImage.getHeight() / adImage.getWidth();
        // 这里设定竖屏阈值,比如大于1.5就是3:5及以上的竖屏比例
        if (aspectRatio < 1.5f) {
            nativeAd.destroy();
            loadNextNativeAd(); // 调用你的广告加载方法请求新广告
            return;
        }
    }
    // 符合要求再展示广告
    showNativeAd(nativeAd);
}

4. 检查AdMob后台配置

登录AdMob后台找到你的原生广告单元,看看有没有开启竖屏素材筛选:

  • 进入广告单元设置页
  • 在「广告素材选项」里找宽高比筛选,勾选竖屏相关选项(不同地区后台界面可能有差异)

内容的提问来源于stack exchange,提问作者Shailendra Pratap Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 20:45:51