接入文档 2.2 - uc-union/union-ads-sdk-demo GitHub Wiki

接入文档 - 2.2


1. SDK介绍

详见 Home

2.环境配置

最低系统要求为Android 11。

注意: SDK采用aar格式, 并且发布在 这里

2.1. Android Studio (强烈推荐)

如使用Eclipse作为开发环境,请直接阅读 2.2. Eclipse

build.gradle文件中加入下述repositories信息,可以参考 build.gradle第22-24行

repositories {
    maven {
        url 'https://raw.githubusercontent.com/uc-union/union-ads-maven-repository/master'
    }
}

添加dependencies依赖(通常是在app/build.gradle中定义),可以参考 app/build.gradle第44行

dependencies {
    compile 'com.ucweb.union.ads:unionads:2.2.+'
}

2.2. Eclipse

注意: 如果开发者是使用Android Studio,可以跳过本节

把aar下载到本地并解压得到如下目录布局

unionads_xxx.aar
    |--(目录)
    |--AndroidManifest.xml
    |--proguard.txt
    |--classes.jar

并按照下述步骤操作:

  1. classes.jar改名成unionads.jar并放到libs目录中

  2. AndroidManifest.xml的内容合并到应用开发者自己工程的AndroidManifest.xml

  3. proguard.txt的内容合并到应用开发者自己工程的proguard.pro

2.3. 聚合第三方广告网络

Union广告SDK支持聚合Facebook和AdMob的广告,开发者可根据自己的需求选择聚合其中的一个或多个。

3. 广告API接入说明

详细的API说明详见 API说明-2.2

3.1. 初始化SDK

必须在应用程序ApplicationonCreate()中调用UnionAdsSdk.start()以启动和初始化广告SDK

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        ...
        UnionAdsSdk.start(this);
    }
}

注意: 如果应用没有定义Application,需要自己派生一个并在AndroidManifest.xml中定义

更多例子代码请参考: UnionAdsSdkSampleApp & AndroidManifest.xml

3.2. 条幅广告(Banner)

条幅广告是以Android的View的形式提供,以方便应用开发者可以灵活的设置广告的位置和大小。

条幅广告的使用代码示例如下

final BannerAdView adView = new BannerAdView(MainActivity.this);
adView.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded(UnionAd ad) {
    }
    @Override
    public void onAdClosed(UnionAd ad) {
    }
    @Override
    public void onAdShowed(UnionAd ad) {
    }
    @Override
    public void onAdClicked(UnionAd ad) {
    }
    @Override
    public void onAdError(UnionAd ad, AdError adError) {
    }
});
AdRequest adRequest = AdRequest.newBuilder()
        .pub("ssr@debugbanner")
        .build();
adView.loadAd(adRequest);

注意: 目前条幅广告仅支持源码调用方式的API, 不支持直接在xml文件中配置的使用方式。

更多例子代码请参考: BannerFragment

3.3. 插屏广告(Interstitial)

广告SDK以弹出对话框获或全屏UI的形式提供插屏广告。

插屏广告的使用代码示例如下

final InterstitialAd interstitial = new InterstitialAd(MainActivity.this);  
interstitial.setAdListener(new AdListener() {
    @Override
    public void onAdLoaded(UnionAd ad) {
        interstitial.show();
    }
    @Override
    public void onAdClosed(UnionAd ad) {
    }
    @Override
    public void onAdShowed(UnionAd ad) {
    }
    @Override
    public void onAdClicked(UnionAd ad) {
    }
    @Override
    public void onAdError(UnionAd ad, AdError adError) {
    }
});
AdRequest adRequest = AdRequest.newBuilder()
        .pub("ssr@debuginterstitial")
        .build();
interstitial.loadAd(adRequest);

注意: 在onAdLoaded的时候要调用广告InterstitialAdshow()方法,否则广告不会展示。

更多例子代码请参考: InterstitialFragment

3.4. 原生广告(Native Ad)

原生广告是广告SDK提供的可定制性最强的广告,广告SDK只将广告相关的资源返回给应用开发者,由应用开发者自定义其位置,大小和排版。需要注意的是,由于广告SDK内部需要处理一些广告相关的事件,需要应用开发者通过registerViewForInteraction将最终展现广告的View与原生广告关联起来。

原生广告在发起请求的时候如果使用AdRequestOption.requestCoverImageSize()指定广告的大小(广告封面大图的大小),广告SDK会找出与该尺寸最接近的广告返回。

注意: 默认情况下,原生广告不会加载图片资源,如有需要,应用开发者可以使用SDK提供的ImageDownloader来加载图片资源。

原生广告的使用代码示例如下

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

更多例子代码请参考: NativeFragment

4. 常见问题

详见 常见问题和解答

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