MCPcopy Index your code
hub / github.com/bayescom/EasyAds-Android

github.com/bayescom/EasyAds-Android @1.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.2.1 ↗ · + Follow
1,098 symbols 2,839 edges 122 files 104 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

EasyAds-Android 快速指引

1. 支持的SDK平台及广告位

SDK平台 开屏 激励视频 横幅 插屏(弹窗) 模板信息流 全屏视频 draw信息流
穿山甲
优量汇
百青藤
快手

2. 快速接入

下面介绍EasyAds的快速接入方法,开发中也可以参考Example下的示例工程,快速了解。

2.1 引入SDK

方式一(推荐): 使用Gradle 添加依赖,在项目根目录的build.gradle 文件中添加 JitPack 仓库

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

在项目module目录下的build.gradle 文件中添加SDK内容依赖

    dependencies {
       //EasyAds sdk(必须)
        implementation "com.github.bayescom:EasyAds-Android:1.1"

        //穿山甲广告SDK(建议)
        implementation(name: "open_ad_sdk_4908", ext: "aar")
        //优量汇广告SDK(建议)
        implementation(name: "GDTSDK_4492", ext: "aar")
        //百度广告SDK(可选)
        implementation(name: "Baidu_MobAds_SDK_9241", ext: "aar")
        //快手广告SDK(可选)
        implementation(name: "kssdk-ad-3334", ext: "aar")
    }

方式二

EasyAds项目以Library的形式导入APP项目工程。

2.2 SDK分发策略配置

配置SDK的分发策略,可方便的实现流量的切分操作,实现多SDK的混合执行策略。

在EasyAds中,我们通过JSON文件的方式配置SDK的分发策略,开发者可根据自身流量分发的需求,按照EasyAds中提供的JSON配置格式及方法设置流量分发策略。

以开屏广告对接穿山甲和优量汇两个SDK为例,配置选择80%流量穿山甲->优量汇的顺序请求,20%流量优量汇->穿山甲的顺序请求,配置如下所示。

其中,suppliers字段下配置媒体在穿山甲和优量汇平台申请的广告代码位信息,rules字段下配置流量分发策略及比例;

策略JSON的配置说明详细见:SDK策略配置JSON说明

不同广告位的JSON策略配置示例见:不同广告位JSON配置示例

{
  "rules": [
    {
      "tag": "A",
      "sort": [
        1,
        2
      ],
      "percent": 80
    },
    {
      "tag": "B",
      "sort": [
        2,
        1
      ],
      "percent": 20
    }
  ],
  "suppliers": [
    {
      "tag": "csj",
      "adspotId": "穿山甲广告位ID",
      "appId": "穿山甲应用ID",
      "index": 1
    },
    {
      "tag": "ylh",
      "adspotId": "优量汇广告位ID",
      "appId": "优量汇应用ID",
      "index": 2
    }
  ]
}

注: 为了方便开发者配置流量分发策略,我们也提供了在线可视化的便捷工具EasyTools,方便生成广告位的策略配置JSON。

2.3 获取广告

以下步骤,为获取广告的必要步骤,适用于所有广告位。 不同广告位置的不同实现,可参考Example示例

2.3.1 初始化广告对象

初始化广告对象EasyAdXXX,以开屏为例

EasyAdSplash easySplash = new EasyAdSplash(mActivity, adContainer, listener);

2.3.2 设置执行策略

调用共有方法setData(String strategyJson),给当前位置广告赋予执行策略,即2.2步骤中生成的SDK分发策略配置。

easySplash.setData(FileUtil.getJson(mActivity, "splash_config.json"));

2.3.3 调用获取广告

方式一:请求并展示广告

easySplash.loadAndShow();

方式二:先发起请求广告:

easySplash.loadOnly();

待广告成功拉取后,开发者可根据业务需求在合适的时机,决定调用展示广告方法。(注意:广告会存在有效期,过久未调用展示,会导致广告失效)

easySplash.show();

2.3.4 各广告位集成实现

3. 进阶设置

3.1 SDK全局配置

App多广告位情况下,想要优化SDK的广告位配置,可参考SDK全局配置优化管理你的众多广告位。

3.2 自定义广告SDK渠道

想要使用其他的广告SDK,自定义广告SDK渠道可以帮你轻松加入任何广告SDK。

4. SDK错误码 & 常见问题

调试遇到问题?欢迎查询SDK错误码及常见问题FAQ,帮助你快速解决对接中遇到的问题。

SDK错误码

常见问题

技术支持

QQ群: EasyAds开源社区群

QQ群二维码:

image

邮件技术支持:easyads@bayescom.com

Extension points exported contracts — how you extend this code

AdCoreAction (Interface)
广告加载核心调用方法,对外聚合调用和内部adapter调用,方法命名一致 [4 implementers]
easyads/src/main/java/com/easyads/itf/AdCoreAction.java
SplashCallBack (Interface)
开屏跳转回调 [2 implementers]
example/src/main/java/com/easyads/demo/EasyADController.java
AnimationCallBack (Interface)
(no doc) [3 implementers]
easyylh/src/main/java/com/easyads/supplier/ylh/SplashZoomOutManager.java
AnimationCallBack (Interface)
(no doc) [3 implementers]
easycsj/src/main/java/com/easyads/supplier/csj/CSJSplashClickEyeManager.java
ZoomCall (Interface)
(no doc) [5 implementers]
easyads/src/main/java/com/easyads/utils/EASplashPlusManager.java
BaseCallBack (Interface)
(no doc) [1 implementers]
example/src/main/java/com/easyads/demo/utils/BaseCallBack.java
BaseEnsureListener (Interface)
(no doc) [5 implementers]
easyads/src/main/java/com/easyads/itf/BaseEnsureListener.java
OnViewPagerListener (Interface)
(no doc) [1 implementers]
example/src/main/java/com/easyads/demo/draw/OnViewPagerListener.java

Core symbols most depended-on inside this repo

high
called by 255
easyads/src/main/java/com/easyads/utils/EALog.java
handleFailed
called by 92
easyads/src/main/java/com/easyads/core/EABaseSupplierAdapter.java
getActivity
called by 59
easyads/src/main/java/com/easyads/core/EasyAdBaseAdspot.java
e
called by 53
easyads/src/main/java/com/easyads/utils/EALog.java
logAndToast
called by 51
example/src/main/java/com/easyads/demo/EasyADController.java
getInstance
called by 41
easyads/src/main/java/com/easyads/EasyAdsManger.java
parseErr
called by 33
easyads/src/main/java/com/easyads/model/EasyAdError.java
simple
called by 30
easyads/src/main/java/com/easyads/utils/EALog.java

Shape

Method 960
Class 109
Interface 27
Enum 2

Languages

Java100%

Modules by API surface

easyads/src/main/java/com/easyads/core/EasyAdBaseAdspot.java36 symbols
example/src/main/java/com/easyads/demo/EasyADController.java27 symbols
easycsj/src/main/java/com/easyads/supplier/csj/CsjSplashAdapter.java26 symbols
example/src/main/java/com/easyads/demo/DrawActivity.java25 symbols
easyylh/src/main/java/com/easyads/supplier/ylh/YlhFullScreenVideoAdapter.java24 symbols
easybd/src/main/java/com/easyads/supplier/baidu/BDNativeExpressAdapter.java24 symbols
easyads/src/main/java/com/easyads/core/reward/EasyAdRewardVideo.java23 symbols
easyads/src/main/java/com/easyads/core/EABaseSupplierAdapter.java23 symbols
example/src/main/java/com/easyads/demo/utils/UIUtils.java21 symbols
easyads/src/main/java/com/easyads/core/splash/EasyAdSplash.java21 symbols
easyylh/src/main/java/com/easyads/supplier/ylh/YlhNativeExpressAdapter.java20 symbols
easyks/src/main/java/com/easyads/supplier/ks/KSRewardVideoAdapter.java20 symbols

For agents

$ claude mcp add EasyAds-Android \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact