# ADSuyi广告聚合SdkDemo-Android **Repository Path**: admobile_top/ADSuyiSdkDemo-Android ## Basic Information - **Project Name**: ADSuyi广告聚合SdkDemo-Android - **Description**: ADSuyi广告聚合SdkDemo-Android - **Primary Language**: Unknown - **License**: GPL-3.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-01 - **Last Updated**: 2025-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Suyi聚合广告SDK ——接入文档 V4.0.2.06112 # Suyi聚合广告SDK 介绍 ``` SDK名称: Suyi聚合广告SDK 开发者: 杭州艾狄墨搏信息服务有限公司 更新日期: 2025-05-28 功能介绍: Suyi聚合广告SDK 集成了多种广告类型和主流广告平台,提供广告数据统计功能,帮助开发者轻松实现应用内广告的接入和管理,提升应用盈利和用户体验。 ``` [SDK 下载地址](https://doc.admobile.top/AndroidSDK/SuyiSDK.zip) [查看更新日志](https://doc.admobile.top/ssp/4changelog/1-androidchangelog.html) [查看接入文档](https://doc.admobile.top/ssp/pages/suyisdkand/) [隐私政策](https://www.admobile.top/privacyPolicy.html) [合规指引](https://doc.admobile.top/ssp/1Start/7_compliance_guide.html) [用户协议](https://doc.admobile.top/ssp/pages/contract/) ## 1. 概述 ### 1.1 概述 尊敬的开发者朋友,欢迎您使用Suyi聚合广告SDK 。通过本文档,您可以快速完成多平台广告SDK的集成。 **注意:本SDK仅支持中国大陆地区**;如需发布到Google Play,请勿引入本SDK及相关依赖文件。 ### 1.2 Suyi聚合广告SDK 组成结构 Suyi聚合广告SDK 主要由**ADSuyi核心SDK(简称ADSuyiSdk)**和一个或多个**三方平台适配器SDK(简称AdapterSdk)**组成,开发者可以自由的在后台配置中选择需要接入的三方广告平台,然后导入所对应的AdapterSdk,其中**艾狄墨搏平台的AdapterSdk是必须导入的**。 ### 1.3 三方广告平台名称概述 | Name | 平台名称 | 平台别称 | | ------- | ------------ | ---------- | | tianmu | 天目 | 天目 | | gdt | 优量汇 | 广点通 | | toutiao | 穿山甲 | 头条 | | baidu | 百度 | 百青藤 | | ksad | 快手 | 快手 | | hwpps | 华为广告 | 华为广告联盟 | | jadyun | 京东广告 | 京媒 | | iqy | 爱奇艺 | 爱奇艺 | | gromore | gromore | gromore | ### 1.4 ADSuyi必添包容量 | Name | 大小 | 版本号 | | ------------ | ---- | ------------- | | ADSuyi基础包 | 0.43M | V4.0.2.06112 | | OAID | 1.10M | V1.0.25 | | OAID适配器 | 0.01M | V1.0.25.12122 | ### 1.5 三方广告平台适配器+三方广告sdk总容量 | Name | 容量 | 版本号 | 备注 | | --------- | ----- | ------------------ |------ | | tianmu | 2.14M | v3.0.2.08071 | | | gdt | 2.01M | v4.650.1520.08061 | | | toutiao | 8.22M | v7.0.1.2.08061 | | | baidu | 1.98M | v9.40.08061 | 仅支持AndroidX | | ksad | 5.08M | v4.6.30.1.07211 | | | hwpps | 1.01M | v13.4.78.301.06131 | | | jadyun | 1.41M | v2.6.32.07211 | 仅支持AndroidX | | iqy | 1.00M | v1.17.001.94.08061 | | | gromore | — | v7.0.1.2.08222 | | ## 2. 支持的广告类型
类型 | 简介 | 适用场景 |
---|---|---|
开屏广告 | 开屏广告以APP启动作为曝光时机的模板广告,需要将开屏广告视图添加到承载的广告容器中,提供5s可感知广告展示 | APP启动界面常会使用开屏广告 |
横幅广告 | 横幅广告是横向贯穿整个可视页面的模板广告,需要将横幅广告视图添加到承载的广告容器中 | 任意界面的固定位置,不建议放在RecyclerView、List这种滚动布局中当item |
信息流广告 | 信息流广告集合原生自渲染广告和模板广告两种,可以通过后台配置和SDK相关方法判断进行不同的渲染,以满足不同的样式需求 | 信息流列表,轮播控件,固定位置都是较为适合 |
激励视频广告 | 将短视频融入到APP场景当中,用户观看短视频广告后可以给予一些应用内奖励 | 常出现在游戏的复活、任务等位置,或者网服类APP的一些增值服务场景 |
全屏视频广告 | 类似激励视频,与激励视频不同的是,全屏视频广告在观看一定时长后即可跳过广告,无需全部观看完成,有视频跳过回调,但是没有激励回调 | 常出现在游戏的复活、任务等位置,或者网服类APP的一些增值服务场景 |
插屏广告 | 插屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插屏广告时,用户可以选择点击广告,访问其目标网址,也可以将其关闭并返回应用 | 在应用执行流程的自然停顿点,适合投放这类广告 |
Draw视频广告 | 类似小视频一样的视频广告 | 类似小视频列表的场景 |
非标广告 |
PS :AppId通过后台配置生成,初始化必须在主线程中进行,SDK暂不支持多进程。
### 6.2 开屏广告示例 开屏广告建议在闪屏页进行展示,开屏广告的宽度和高度取决于容器的宽高,都是会撑满广告容器;**开屏广告的高度必须大于等于屏幕高度(手机屏幕完整高度,包括状态栏之类)的75%**,否则可能会影响收益计费(优量汇的开屏甚至会影响跳过按钮的回调)。 #### 6.2.1 开屏广告主要 API **ADSuyiSplashAd** cn.admobiletop.adsuyi.ad.ADSuyiSplashAd | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiSplashAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。| | ADSuyiSplashAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。| | ADSuyiSplashAd(Activity activity, ViewGroup container) | 构造方法。参数说明:activity(当前页面activity对象)、container(展示广告视图的父容器)。| | ADSuyiSplashAd(Fragment fragment, ViewGroup container) | 构造方法。参数说明:fragment(当前页面fragment对象)、container(展示广告视图的父容器)。| | setLocalExtraParams(ADSuyiExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。| | setImmersive(boolean isImmersive) | 设置沉浸效果。参数说明:isImmersive(true:沉浸,false:不沉浸, 目前仅影响默认跳过按钮位置)。| | setSkipView(View skipView) | 设置跳过按钮。参数说明:skipView(自定义跳过按钮)。| | setSkipView(View skipView, long countDownTime) | 设置跳过按钮。参数说明:skipView(自定义跳过按钮)、countDownTime([3000ms~5000ms],默认5000ms)。| | setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。| | setListener(ADSuyiSplashAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。| | loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。| | loadOnly(String posId) | 仅请求广告不展示。参数说明:posId(广告位ID)。| | loadAd(String posId, ADSuyiNetworkRequestInfo requestInfo) | 请求打底广告并展示,目前支持优量汇、穿山甲、百度、快手。参数说明:posId(广告位ID)、requestInfo(打底广告对象,接口地址[Gitee地址](https://gitee.com/admobile_top/ADSuyiSdkDemo-Android/blob/main/README-ADSuyiNetworkRequestInfo.md))。| | showSplash() | 展示广告。使用loadOnly方法去加载广告时,可在onAdReceive回调后去展示广告。| | showSplash(ViewGroup container) | 展示广告。参数说明:container(广告展示父容器)。通过ADSuyiSplashAd(Activity activity)、ADSuyiSplashAd(Fragment fragment)构造广告对象,并使用loadOnly方法加载广告时,可在onAdReceive回调后调用该方法去展示广告。| | release() | 释放广告。| **ADSuyiExtraParams** cn.admobiletop.adsuyi.ad.entity.ADSuyiExtraParams | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiExtraParams.Builder().build() | 构造方法。| | adSize(ADSuyiAdSize adSize) | 设置开屏视图宽高。参数说明:adSize(设置整个广告视图预期宽高(目前仅穿山甲(头条)平台需要,没有接入穿山甲(头条)可不设置),单位为px,如果不设置穿山甲(头条)开屏广告视图将会以满屏幕进行填充)。| | setAdShakeDisable(boolean adShakeDisable) | 设置传感器禁用。参数说明:adShakeDisable(true:禁用、false:可用,默认:false)。| **ADSuyiAdSize** cn.admobiletop.adsuyi.ad.entity.ADSuyiAdSize | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiAdSize(int width, int height) | 构造方法。参数说明:信息流模板和自渲染均继承自该类
cn.admobiletop.adsuyi.ad.data.ADSuyiNativeAdInfo | 方法名 | 介绍 | | ------------ | ---- | | isNativeExpress() | 广告类型,返回boolean类型,true模板类型,false自渲染类型。| | getPlatform() | 获取三方广告平台名称,返回String类型。| | getECPM() | 获取ECPM,返回Double类型(单位:元)。| | getEcpmPrecision() | ECPM类型,返回String类型(accurate:精准、platform_assignment:平台指定、estimate:估算)。|当isNativeExpress返回true时,可强转为ADSuyiNativeExpressAdInfo类,否则转为ADSuyiNativeFeedAdInfo类
**模板广告对象ADSuyiNativeExpressAdInfo继承自ADSuyiNativeAdInfo** cn.admobiletop.adsuyi.ad.data.ADSuyiNativeExpressAdInfo | 方法名 | 类型 | 介绍 | | ------------ | ---- | ---- | | getNativeExpressAdView() | View | 获取的是整个模板广告视图。| | render(ViewGroup container) | void | 渲染视图,调用该方法才能响应曝光、点击等操作,影响广告收益。参数说明:container(承载广告的容器,不能为空)| **自渲染广告对象ADSuyiNativeFeedAdInfo继承自ADSuyiNativeAdInfo** cn.admobiletop.adsuyi.ad.data.ADSuyiNativeFeedAdInfo | 方法名 | 类型 | 介绍 | | ------------ | ---- | ---- | | getTitle() | String | 获取广告标题,可能为空。| | getDesc() | String | 获取广告描述,可能为空。| | getActionType() | int | 获取广告交互类型,未知:-1,应用内打开落地页:0,浏览器打开落地页:1,下载类型:2,拨打电话:3。| | getCtaText() | String | 广告交互按钮文案,可能为空。| | getIconUrl() | String | 广告图标地址,可能为空。| | getImageUrl() | String | 图片地址,可能为空。。| | getImageUrlList() | List\注意广告对象的获取是异步的,请在onAdReceive回调后展示广告
> 激励视频广告示例详情 [Gitee地址](https://gitee.com/admobile_top/ADSuyiSdkDemo-Android/blob/main/app/src/main/java/cn/admobiletop/adsuyidemo/activity/ad/RewardVodAdActivity.java) > ### 6.6 全屏视频广告示例 全屏视频广告是类似激励视频样式的广告形式,与激励视频不同之处在于全屏视频广告播放一定时间时间后即可跳过,同时全屏视频广告拥有跳过回调不具备奖励回调。 #### 6.6.1 全屏视频广告主要 API **ADSuyiFullScreenVodAd** cn.admobiletop.adsuyi.ad.ADSuyiFullScreenVodAd | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiFullScreenVodAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。| | ADSuyiFullScreenVodAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。| | setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。注:仅debug模式为true时生效。| | setListener(ADSuyiFullScreenVodAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。| | setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。| | loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。| | release() | 释放广告。| **ADSuyiExtraParams** cn.admobiletop.adsuyi.ad.entity.ADSuyiExtraParams | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiExtraParams.Builder().build() | 构造方法。| | setVideoWithMute(boolean isMute) | 视频静音设置。参数说明:isMute(true:静音、false:不静音,默认:true)。| | setAdShakeDisable(boolean adShakeDisable) | 设置传感器禁用。参数说明:adShakeDisable(true:禁用、false:可用,默认:false)。| **ADSuyiFullScreenVodAdListener** cn.admobiletop.adsuyi.ad.listener.ADSuyiFullScreenVodAdListener | 方法名 | 介绍 | | ------------ | ---- | | onAdReceive(ADSuyiFullScreenVodAdInfo adInfo) | 广告加载成功回调。| | onAdExpose(ADSuyiFullScreenVodAdInfo adInfo) | 广告曝光回调。| | onAdClick(ADSuyiFullScreenVodAdInfo adInfo) | 广告点击回调。| | onAdClose(ADSuyiFullScreenVodAdInfo adInfo) | 广告关闭回调。| | onVideoCache(ADSuyiFullScreenVodAdInfo adInfo) | 广告缓存成功回调。部分渠道不会回调该方法,请在onAdReceive做广告展示处理| | onVideoComplete(ADSuyiFullScreenVodAdInfo adInfo) | 广告播放完毕回调。| | onVideoError(ADSuyiFullScreenVodAdInfo adInfo, ADSuyiError error) | 视频播放错误回调。| | onAdFailed(ADSuyiError error) | 广告获取失败回调。| **ADSuyiFullScreenVodAdInfo** cn.admobiletop.adsuyi.ad.data.ADSuyiFullScreenVodAdInfo | 方法名 | 介绍 | | ------------ | ---- | | showFullScreenVod(Activity activity) | 展示广告。参数说明:activity(当前页面activity对象)。| | getPlatform() | 获取三方广告平台名称,返回String类型。| | getECPM() | 获取ECPM,返回Double类型(单位:元)。| | getEcpmPrecision() | ECPM类型,返回String类型(accurate:精准、platform_assignment:平台指定、estimate:估算)。| #### 6.6.2 全屏视频广告加载并展示 ```java ADSuyiFullScreenVodAd fullScreenVodAd = new ADSuyiFullScreenVodAd(this); // 设置全屏视频监听 fullScreenVodAd.setListener(new ADSuyiFullScreenVodAdListener() { @Override public void onAdReceive(ADSuyiFullScreenVodAdInfo adInfo) { // 广告获取成功回调... // 全屏视频广告对象一次成功拉取的广告数据只允许展示一次 // 广告展示 adInfo.showFullScreenVod(Activity activity); } @Override public void onVideoCache(ADSuyiFullScreenVodAdInfo adInfo) { // 部分渠道不会回调该方法,请在onAdReceive做广告展示处理 // 广告视频缓存成功回调... } @Override public void onVideoComplete(ADSuyiFullScreenVodAdInfo adInfo) { // 广告观看完成回调... } @Override public void onVideoError(ADSuyiFullScreenVodAdInfo adInfo, ADSuyiError adSuyiError) { // 广告播放错误回调... } @Override public void onAdExpose(ADSuyiFullScreenVodAdInfo adInfo) { // 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败 } @Override public void onAdClick(ADSuyiFullScreenVodAdInfo adInfo) { // 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败 } @Override public void onAdClose(ADSuyiFullScreenVodAdInfo adInfo) { // 广告点击关闭回调 } @Override public void onAdFailed(ADSuyiError error) { // 广告获取失败回调... } }); // 加载全屏视频广告 fullScreenVodAd.loadAd(String posId); ```注意广告对象的获取是异步的,请在onAdReceive回调后展示广告
> 全屏视频广告示例详情 [Gitee地址](https://gitee.com/admobile_top/ADSuyiSdkDemo-Android/blob/main/app/src/main/java/cn/admobiletop/adsuyidemo/activity/ad/FullScreenVodAdActivity.java) > ### 6.7 插屏广告示例 插屏广告是移动广告的一种常见形式,在应用流程中弹出,当应用展示插屏广告时,用户可以选择点击广告,也可以将其关闭并返回应用。 #### 6.7.1 插屏广告主要 API **ADSuyiInterstitialAd** cn.admobiletop.adsuyi.ad.ADSuyiInterstitialAd | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiInterstitialAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。| | ADSuyiInterstitialAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。| | setLocalExtraParams(ADSuyiExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。| | setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。注:仅debug模式为true时生效。| | setListener(ADSuyiInterstitialAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。| | setSceneId(String sceneId) | 设置广告场景id,用于区分同一个广告位在不同场景下使用的数据。参数说明:sceneId(场景ID)。| | loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。| | release() | 释放广告。| **ADSuyiExtraParams** cn.admobiletop.adsuyi.ad.entity.ADSuyiExtraParams | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiExtraParams.Builder().build() | 构造方法。| | setVideoWithMute(boolean isMute) | 视频静音设置。参数说明:isMute(true:静音、false:不静音,默认:true)。| | setAdShakeDisable(boolean adShakeDisable) | 设置传感器禁用。参数说明:adShakeDisable(true:禁用、false:可用,默认:false)。| **ADSuyiInterstitialAdListener** cn.admobiletop.adsuyi.ad.listener.ADSuyiInterstitialAdListener | 方法名 | 介绍 | | ------------ | ---- | | onAdReceive(ADSuyiInterstitialAdInfo adInfo) | 广告加载成功回调。| | onAdExpose(ADSuyiInterstitialAdInfo adInfo) | 广告曝光回调。| | onAdClick(ADSuyiInterstitialAdInfo adInfo) | 广告点击回调。| | onAdClose(ADSuyiInterstitialAdInfo adInfo) | 广告关闭回调。| | onAdReady(ADSuyiInterstitialAdInfo adInfo) | 广告准备完毕回调。部分渠道不会回调该方法,请在onAdReceive做广告展示处理| | onAdFailed(ADSuyiError error) | 广告获取失败回调。| **ADSuyiInterstitialAdInfo** cn.admobiletop.adsuyi.ad.data.ADSuyiInterstitialAdInfo | 方法名 | 介绍 | | ------------ | ---- | | showInterstitial(Activity activity) | 展示广告。参数说明:activity(当前页面activity对象)。| | getPlatform() | 获取三方广告平台名称,返回String类型。| | getECPM() | 获取ECPM,返回Double类型(单位:元)。| | getEcpmPrecision() | ECPM类型,返回String类型(accurate:精准、platform_assignment:平台指定、estimate:估算)。| #### 6.7.2 插屏广告加载并展示 ```java ADSuyiInterstitialAd interstitialAd = new ADSuyiInterstitialAd(Activity activity); // 设置插屏广告监听 interstitialAd.setListener(new ADSuyiInterstitialAdListener() { @Override public void onAdReceive(ADSuyiInterstitialAdInfo adInfo) { // 广告获取成功回调... // 插屏广告对象一次成功拉取的广告数据只允许展示一次 // 展示广告 adInfo.showInterstitial(Activity activity); } @Override public void onAdReady(ADSuyiInterstitialAdInfo adInfo) { // 部分渠道不会回调该方法,请在onAdReceive做广告展示处理 // 广告准备完毕回调... } @Override public void onAdExpose(ADSuyiInterstitialAdInfo adInfo) { // 广告展示回调,有展示回调不一定是有效曝光,如网络等情况导致上报失败 } @Override public void onAdClick(ADSuyiInterstitialAdInfo adInfo) { // 广告点击回调,有点击回调不一定是有效点击,如网络等情况导致上报失败 } @Override public void onAdClose(ADSuyiInterstitialAdInfo adInfo) { // 广告点击关闭回调 } @Override public void onAdFailed(ADSuyiError error) { // 广告获取失败回调... } }); // 加载插屏广告 interstitialAd.loadAd(String posId); ```注意广告对象的获取是异步的,请在onAdReceive回调后展示广告
> 插屏广告示例详情[Gitee地址](https://gitee.com/admobile_top/ADSuyiSdkDemo-Android/blob/main/app/src/main/java/cn/admobiletop/adsuyidemo/activity/ad/interstitial/InterstitialAdActivity.java) > ### 6.8 DrawVod广告示例 类似抖音、快手小视频一样的沉浸式视频广告类型 #### 6.8.1 DrawVod广告主要 API **ADSuyiDrawVodAd** cn.admobiletop.adsuyi.ad.ADSuyiDrawVodAd | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiDrawVodAd(Activity activity) | 构造方法。参数说明:activity(当前页面activity对象)。| | ADSuyiDrawVodAd(Fragment fragment) | 构造方法。参数说明:fragment(当前页面fragment对象)。| | setLocalExtraParams(ADSuyiExtraParams extraParams) | 设置额外参数。参数说明:extraParams(广告额外参数)。| | setOnlySupportPlatform(String platform) | 设置广告定向,仅请求某一渠道。参数说明:platform(渠道名)。注:仅debug模式为true时生效。| | setListener(ADSuyiDrawVodAdListener listener) | 设置广告相关状态。参数说明:listener(广告状态监听器)。| | setVideoListener(ADSuyiDrawVodVideoListener listener) | 设置广告视频相关状态。参数说明:listener(广告状态监听器)。| | loadAd(String posId) | 请求广告并展示。参数说明:posId(广告位ID)。| | release() | 释放广告。| **ADSuyiExtraParams** cn.admobiletop.adsuyi.ad.entity.ADSuyiExtraParams | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiExtraParams.Builder().build() | 构造方法。| | adSize(ADSuyiAdSize adSize) | 设置开屏视图宽高。参数说明:adSize(设置整个广告视图预期宽高)。| | setAdShakeDisable(boolean adShakeDisable) | 设置传感器禁用。参数说明:adShakeDisable(true:禁用、false:可用,默认:false)。| **ADSuyiAdSize** cn.admobiletop.adsuyi.ad.entity.ADSuyiAdSize | 方法名 | 介绍 | | ------------ | ---- | | ADSuyiAdSize(int width, int height) | 构造方法。参数说明: