原生广告 - uc-union/union-ads-sdk-demo GitHub Wiki

接入指南

注意: 务必保证SDK已经初始化,请参考 SDK初始化 在使用原生广告的时候,必须在原生广告中加入U盟角标(通过NativeAdAssets.getAdMarkView获取),否则会导致审核不通过.

原生广告是广告SDK提供的可定制性最强的广告,广告SDK只将广告相关的资源返回给应用开发者,由应用开发者自定义其位置,大小和排版。

原生广告的使用代码示例如下,完整代码可以参考 NativeFragment.java

final NativeAd nativeAd = new NativeAd(
        MainActivity.this);
nativeAd.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded(Ad ad) {
        NativeAdAssets assets = nativeAd.getNativeAdAssets();
        /* ... */
    }
    @Override
    public void onAdClosed(Ad ad) {
    }
    @Override
    public void onAdShowed(Ad ad) {
    }
    @Override
    public void onAdClicked(Ad ad) {
    }
    @Override
    public void onAdError(Ad ad, AdError adError) {
    }
});
AdRequest adRequest = AdRequest.newBuilder()
        .pub(<Pub>)
        .build();
nativeAd.loadAd(adRequest);

注意:

  1. onAdLoaded的回调后才从NativeAd中通过getNativeAdAssets方法获取广告素材NativeAdAssets,否则会返回null
  1. <Pub>为广告位的唯一标识,请从U盟前台或BD处获取

注册View

SDK将自动记录展示并处理点击。请务必使用NativeAd实例注册展示广告的View,以便让SDK知晓并处理展示和点击。

通过下述接口注册View:

registerViewForInteraction(ViewGroup parent, View... clickable)

parent为所有点击元素clickable的容器。

图片过滤

默认情况下,可以通过NativeAdAssetsgetCovers()获取全部cover的NativeAdAssets.Image,开发者需要根据需求选取合适图片展示。

SDK提供了ImageFilter来帮助开发者简化图片的过滤,通过传入希望的图片宽高(dp)以过滤出合适的NativeAdAssets.Image:

ImageFilter.filter(List<NativeAdAssets.Image> images, int width, int height)

当没有符合输入尺寸的图片时,ImageFiler可能返回null

图片加载

NativeAdAssets.Image只包含图片宽高、图片URL等必要的信息,因此开发者需要自己下载图片二进制数据并解码成Bitmap对象

SDK提供了ImageDownloader来帮助开发者简化图片下载和展示的。

ImageDownloader提供了两种使用方式:

  1. 下载图片并异步返回Drawable,使用例子如下:

    ImageDownloader.downloadImage(image, new ImageDownloader.Delegate() {
        @Override
        public void onSuccess(Drawable drawable) {
        }
    
        @Override
        public void onFail() {
        }
      })
  2. 下载图片并填充到ImageView中,提供如下两个不同签名的接口:

    ImageDownloader.downloadAndDisplayImage(NativeAdAssets.Image image, ImageView imageView)
    ImageDownloader.downloadAndDisplayImage(NativeAdAssets.Image image, ImageView imageView, Drawable fallback)

    fallback为当图片下载失败时,填充的默认Drawable

DEMO

运行包含上述代码的Demo项目,您应该会看到如下内容:

原生广告示例

后续步骤

  • 查看 常见问题 以了解接入过程中常见问题的解决方法

  • 查看 API说明 以了解详细的API说明

⚠️ **GitHub.com Fallback** ⚠️