广告SDK | 推荐版本 | 包大小增量 |
---|---|---|
穿山甲 | 3.0.0.3 | 1.6MB |
广点通 | 4.211.1081 | 1.3MB |
百度联盟 | 5.9.1 | 0.9MB |
Inmobi | 7.4.4 | 0.5MB |
GETUI_BX_ANDROID_SDK/
|- 变现SDK接入文档.pdf
|- 变现SDK权限说明.pdf
|- README.pdf
|- Demo 工程/
| |- BX_SDK_Demo_AS_official/ (AndroidStudio 标准集成 Demo 工程)
BX_SDK_Demo_AS_official/
|- app/ (项目主模块)
| |- libs/ (第三方库)
| |- src/ (代码目录)
| |- build.gradle (模块级 gradle 文件)
|- gradle/
|- build.gradle (顶层 gradle 文件)
|- settings.gradle
| ......
注:其中 “......
” 表示省略其他与本教程无关的内容,以下 “......
” 表示相同意义,不再重复说明。
maven {
url "http://mvn.gt.igexin.com/nexus/content/repositories/releases/"
}
app/build.gradle
文件中的 android.defaultConfig
下添加 manifestPlaceholders
manifestPlaceholders = [
GETUI_APPID: "your GETUI_APPID",
GT_INSTALL_CHANNEL: "your GT_INSTALL_CHANNEL",
CSJ_APP_ID: "your CSJ_APP_ID", // 穿山甲官网申请
GDT_APP_ID: "your GDT_APP_ID", // 广点通官网申请
BaiduMobAd_APP_ID: "your BaiduMobAd_APP_ID", // 百度联盟官网申请
INMOBI_APP_ID: "your INMOBI_APP_ID" // InMobi官网申请
]
// 变现SDK 核心库
implementation 'com.getui:bxsdk:2.1.0.0'
// 如果需要接入广点通SDK,需接入bxsdk-gdt
implementation 'com.getui:bxsdk-gdt:4.211.1081'
// 如果需要接入穿山甲SDK,需接入bxsdk-csj
implementation 'com.getui:bxsdk-csj:3.0.0.3'
// 如果需要接入百度联盟SDK,需接入bxsdk-baidu
implementation 'com.getui:bxsdk-bd:5.9.1'
// 如果需要接入Inmobi SDK,需接入bxsdk-inmobi、picasso
implementation 'com.getui:bxsdk-inmobi:7.4.4'
implementation 'com.squareup.picasso:picasso:2.71828'
// gtc 为个推公司公共代码库,如果已经接入的个推其他产品内已经包含 gtc ,则无需再次引入
implementation 'com.getui:gtc:3.0.1.0'
如果您的应用需要在 Android7.0 及以上环境运行,请在 AndroidManifest 中添加如下代码:
如果集成百度SDK,请在AndroidManifest.xml
配置如下参数:
<provider
android:name="com.baidu.mobads.openad.BdFileProvider"
android:authorities="${applicationId}.bd.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/bd_file_paths" />
</provider>
并在项目结构下的 res 目录下添加一个 xml 文件夹,再新建一个bd_file_paths.xml
的文件,文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="bdpath" path="bddownload/" />
<external-path name="bdpathsd" path="bddownload/" />
</paths>
如果集成穿山甲SDK,请在AndroidManifest.xml
配置如下参数:
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/csj_file_paths" />
</provider>
并在项目结构下的 res 目录下添加一个 xml 文件夹,再新建一个csj_file_paths.xml
的文件,文件内容如下:
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<!--为了适配所有路径可以设置 path = "." -->
<external-path name="tt_external_root" path="." />
<external-path name="tt_external_download" path="Download" />
<external-files-path name="tt_external_files_download" path="Download" />
<files-path name="tt_internal_file_download" path="Download" />
<cache-path name="tt_internal_cache_download" path="Download" />
</paths>
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void init(Context context) |
context:应用的 ApplicationContext
BXManager.getInstance().init(context);
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void setDebug(boolean isDebug) |
BXManager.getInstance().setDebug(boolean isDebug);
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public String getVersion() |
BXManager.getInstance().getVersion();
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startBannerAD(Activity activity,ViewGroup container, String gtAdId, BXConfig config, BXBannerListener listener) |
调用示例:
BXConfig config = new BXConfig.Builder()
//设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
//设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
//设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startBannerAD(this,llAdContainer, "⼴告id", config, new BXBannerListener() {
@Override
public void loadError(int type, String message) {
//加载失败,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.d(TAG,"loadError:"+message);
}
@Override
public void loadSuccess(int type ,View bannerView) {
//加载成功,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.e(TAG,"loadSuccess"+type);
}
@Override
public void onAdShow() {
//广告展示
Log.d(TAG,"onAdShow");
}
@Override
public void onAdClick() {
//广告被点击
Log.d(TAG,"onAdClick");
}
@Override
public void onAdClosed() {
//广告被关闭
Log.d(TAG,"onAdClosed");
}
@Override
public void onAdTimeOut() {
//加载广告超时
Log.d(TAG,"onAdTimeOut");
}
});
BXBannerListener回调对象
public interface BXBannerListener {
//加载失败
void loadError(int type, String message);
//加载成功
void loadSuccess(int type,View bannerView);
//广告展示
void onAdShow();
//广告被点击
void onAdClick();
//广告被关闭
void onAdClosed();
//广告加载超时
void onAdTimeOut();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startSplashAD(Activity activity, ViewGroup viewGroup, String gtAdId, BXConfig config, BXSplashAdListener listener) |
BXConfig config = new BXConfig.Builder()
// 设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
// 设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
// 设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startSplashAD(this, container, "⼴告id", config, new BXSplashAdListener() {
@Override
public void loadError(int type, String message) {
// 加载失败,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.d(TAG,"loadError:"+message);
}
@Override
public void loadSucceed(int type) {
// 加载成功,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.d(TAG,"loadSucceed"+type);
}
@Override
public void onAdShow() {
// 广告展示
Log.d(TAG,"onAdShow");
}
@Override
public void onAdClick() {
//广告被点击
Log.d(TAG,"onAdClick");
}
@Override
public void onAdDismiss() {
//广告被关闭
Log.d(TAG,"onAdDismiss");
}
@Override
public void onAdTimeOut() {
//加载超时
Log.d(TAG,"onAdTimeOut");
}
});
BXSplashAdListener回调对象
public interface BXSplashAdListener {
//加载失败
void loadError(int type, String message);
//加载成功
void loadSucceed(int type);
//广告展示
void onAdShow();
//广告被点击
void onAdClick();
//广告被关闭
void onAdDismiss();
//加载超时
void onAdTimeOut();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startInterstitialAD(Activity activity, String gtAdId, BXConfig config, BXInterstitialListener listener) |
初始化插屏广告
调用示例:
BXConfig config = new BXConfig.Builder()
//设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
//设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
//设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startInterstitialAD(this, "⼴告id", config, new BXInterstitialListener() {
@Override
public void loadError(int type, String message) {
//加载失败
Log.d(TAG,"当前渠道:"+type+",loadError"+message);
}
@Override
public void loadSuccess(int type,BXInterstitialAd bxInterstitialAd) {
//加载成功
Log.e(TAG,"loadSuccess:"+type);
bxInterstitialAd.show();
}
@Override
public void onAdShow() {
//广告展示
Log.e(TAG,"onAdShow");
}
@Override
public void onAdClick() {
//广告被点击
Log.e(TAG,"onAdClick");
}
@Override
public void onAdClosed() {
//广告被关闭
Log.e(TAG,"onAdClosed");
}
@Override
public void onAdTimeOut() {
//广告加载超时
Log.e(TAG,"onAdTimeOut");
}
@Override
public void onVideoComplete() {
//全屏视频广告播放完成
Log.e(TAG,"onVideoComplete");
}
@Override
public void onSkippedVideo() {
//全屏视频广告被跳过
Log.e(TAG,"onSkippedVideo");
}
@Override
public void onAdVideoBarClick() {
//全屏视频广告广告相关的View被点击
Log.e(TAG,"onAdVideoBarClick");
}
});
BXInterstitialListener回调对象
public interface BXInterstitialListener {
//广告加载失败
void loadError(int type, String message);
//广告加载成功
void loadSuccess(int type ,BXInterstitialAd bxInterstitialAd);
//广告被展示
void onAdShow();
//广告被点击
void onAdClick();
//广告被关闭
void onAdClosed();
//广告加载超时
void onAdTimeOut();
//全屏视频广告播放完成
void onVideoComplete();
//全屏视频广告被跳过
void onSkippedVideo();
//全屏视频广告广告相关的View被点击
void onAdVideoBarClick();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startRewardVideoAD(Activity activity, String gtAdId, BXConfig config, BXRewardVideoAdListener listener) |
调用示例:
BXConfig config = new BXConfig.Builder()
//设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
//设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
//设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startRewardVideoAD(this, "⼴告id", config, new BXRewardVideoAdListener() {
@Override
public void loadError(int type, String message) {
//加载失败
Log.e(TAG,"loadError:"+message);
}
@Override
public void loadSuccess(int type,BXRewardVideo bxRewardVideo) {
//加载成功
Log.e(TAG,"loadSuccess");
//展示广告
bxRewardVideo.show();
}
@Override
public void onAdTimeOut() {
//广告加载超时
Log.e(TAG,"onAdTimeOut");
}
@Override
public void onAdShow() {
//广告被展示
Log.e(TAG,"onAdShow");
}
@Override
public void onAdClick() {
//广告被点击
Log.e(TAG,"onAdClick");
}
@Override
public void onAdDismiss() {
//广告被关闭
Log.e(TAG,"onAdDismiss");
}
@Override
public void onRewardVideoCached() {
//广告被缓存成功
Log.e(TAG,"onRewardVideoCached");
}
@Override
public void onVideoComplete() {
//广告视频播放完毕
Log.e(TAG,"onVideoComplete");
finish();
}
@Override
public void onSkippedVideo() {
//广告被点击跳过
Log.e(TAG,"onSkippedVideo");
}
@Override
public void onRewardVerify() {
//视频广告播完验证奖励有效性回调
Log.e(TAG,"onRewardVerify");
}
});
BXRewardVideoAdListener回调对象
public interface BXRewardVideoAdListener {
// 加载失败
void loadError(int type, String message);
//加载成功
void loadSuccess(int type ,BXRewardVideo bxRewardVideo);
// 超时
void onAdTimeOut();
// 展示
void onAdShow();
// 点击
void onAdClick();
// 广告关闭
void onAdDismiss();
// 视频缓存
void onRewardVideoCached();
// 播放完成
void onVideoComplete();
// 点击跳过
void onSkippedVideo();
// 视频广告播完验证奖励有效性回调
void onRewardVerify();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startNativeAD(Activity activity, String gtAdId, BXConfig config, BXNativeAdListener listener) |
BXConfig config = new BXConfig.Builder()
//设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
//设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
//设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startNativeAD(this, "⼴告id",config, new BXNativeAdListener() {
@Override
public void loadError(int type, String message) {
//加载失败,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.d(TAG,"loadError");
}
@Override
public void loadSuccess(int type,List<BXNativeAd> bxNativeAdList) {
//加载成功,type是最终失败的广告渠道,例如type==BXConsts.TYPE_CSJ,则是穿山甲渠道
Log.d(TAG,"loadError");
}
@Override
public void onAdTimeOut() {
//加载超时
Log.d(TAG,"onAdTimeOut");
}
@Override
public void onAdClosed(BXNativeAd bxNativeAd) {
//信息流广告被关闭
Log.d(TAG,"onAdClosed");
}
@Override
public void onAdShow() {
//广告被展示
Log.d(TAG,"onAdShow");
}
@Override
public void onAdClick(BXNativeAd bxNativeAd) {
//广告被点击
Log.d(TAG,"onAdClick");
}
});
BXNativeAdListener回调对象
public interface BXNativeAdListener {
// 加载失败
void loadError(int type,String message);
// 加载成功
void loadSuccess(int type ,List<BXNativeAd> bxNativeAdList);
// 加载达到设置的超时时间,加载超时
void onAdTimeOut();
// 信息流广告被关闭
void onAdClosed(BXNativeAd bxNativeAd);
// 信息流广告被展示
void onAdShow();
// 信息流广告被点击
void onAdClick(BXNativeAd bxNativeAd);
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startDrawAD(Activity activity, String gtAdId, BXConfig config, @NonNull BXDrawListener bxDrawListener) |
调用示例:
BXConfig config = new BXConfig.Builder()
//设置广告素材的高度(仅穿山甲有效)
.setExpressViewHeight(300f)
//设置广告素材的宽度(仅穿山甲有效)
.setExpressViewWidth(500f)
//设置请求超时时间,请求超时时间必须>=500毫秒,否则不会生效
.setAdTimeOut(1000)
.build();
BXManager.getInstance().startDrawAD(this, "⼴告id", config, new BXDrawListener() {
@Override
public void loadError(int type, String message) {
//加载失败
Log.d(TAG,"loadError:"+message);
}
@Override
public void loadSuccess(int type, List<BXDrawAd> bxDrawAdList) {
//加载成功
Log.d(TAG,"loadSuccess");
BXDrawAd bxDrawAd =bxDrawAdList.get(0);
//渲染广告
bxDrawAd.render();
}
@Override
public void onAdTimeOut() {
//加载广告超时
Log.d(TAG,"onAdTimeOut");
}
@Override
public void onAdClicked(View view, int type) {
//广告被点击
Log.d(TAG,"onAdClicked");
}
@Override
public void onAdShow(View view, int type) {
//广告被展示
Log.d(TAG,"onAdShow");
}
@Override
public void onRenderFail(View view, String msg, int code) {
//广告渲染失败
Log.d(TAG,"onRenderFail");
}
@Override
public void onRenderSuccess(View view, float width, float height) {
//广告渲染成功
Log.d(TAG,"onRenderSuccess");
}
});
BXDrawListener回调对象
public interface BXDrawListener {
//加载失败
void loadError(int type, String message);
//加载成功
void loadSuccess(int type, List<BXDrawAd> bxDrawAdList);
//超时
void onAdTimeOut();
//广告被点击
void onAdClicked(View view, int type);
//广告被展示
void onAdShow(View view, int type);
//广告渲染失败
void onRenderFail(View view, String msg, int code);
//广告渲染成功
void onRenderSuccess(View view, float width, float height);
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startButtonAd(Activity activity, ViewGroup adContainer, String gtAdId, BXButtonListener listener) |
BXManager.getInstance().startButtonAd(activity, adContainer, "广告id", new BXButtonListener() {
@Override
public void onAdShow() {
// 按钮广告展示回调
Log.d(TAG,"onAdShow");
}
@Override
public void onAdFailed(int type,String msg) {
// 按钮广告加载失败回调
Log.d(TAG,"onAdFailed");
}
@Override
public void onAdClicked() {
// 按钮广告被点击回调
Log.d(TAG,"onAdClicked");
}
});
BXButtonListener回调对象
public interface BXButtonListener {
//⼴告展示
void onAdShow();
//⼴告加载失败
void onAdFailed(int type,String msg);
//⼴告点击
void onAdClicked();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startFloatAd(Activity activity, ViewGroup adContainer, String gtAdId, BXButtonListener listener) |
BXManager.getInstance().startFloatAd(activity, adContainer, "广告id", new BXButtonListener() {
@Override
public void onAdShow() {
//浮标广告展示回调
Log.d(TAG,"onAdShow");
}
@Override
public void onAdFailed(int type,String msg) {
//浮标广告加载失败回调
Log.d(TAG,"onAdFailed");
}
@Override
public void onAdClicked() {
//浮标广告被点击回调
Log.d(TAG,"onAdClicked");
}
BXButtonListener回调对象
public interface BXButtonListener {
//⼴告展示
void onAdShow();
//⼴告加载失败
void onAdFailed(int type,String msg);
//⼴告点击
void onAdClicked();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void startAdvanceFeedAD(Activity activity, View view, String gtAdId, BXAdvanceFeedListener listener) |
接口 | public void startAdvanceFeedAD(Activity activity, List |
初始化自渲染广告
BXManager.getInstance().startAdvanceFeedAD(activity, view, "广告id", new BXAdvanceFeedListener() {
@Override
public void onLoadAd() {
//加载自渲染广告完成
Log.d(TAG,"onLoadAd");
}
@Override
public void onAdFailed(int type,String msg) {
//加载自渲染广告失败
Log.d(TAG,"onAdFailed");
}
@Override
public void onAdClicked(View view) {
//绑定自渲染广告的view被点击
Log.d(TAG,"onAdClicked");
}
});
BXAdvanceFeedListener回调对象
public interface BXAdvanceFeedListener {
//加载自渲染广告完成
void onLoadAd();
//加载自渲染广告失败
void onAdFailed(int type,String msg);
//绑定自渲染广告的view被点击
void onAdClicked(View view);
// 自渲染广告显示
void onAdShow();
}
类名 | com.getui.bxsdk.BXManager |
---|---|
接口 | public void setTag(BXTag[] tags, BXTagListener bxTagListener) |
设置标签
BXTag[] tags = new BXTag[5];
String[] tagName = new String[]{"tag1","tag2","tag3"};
for (int i = 0;i<tagName.length;i++){
BXTag bxTag = new BXTag();
bxTag.setName(tagName[i]);
tags[i] = bxTag;
}
BXManager.getInstance().setTag(tags, new BXTagListener() {
@Override
public void onResult(int resultCode,String resultMsg) {
Log.d("TAG","TAG组设置结果:"+resultMsg);
}
});
BXAdvanceFeedListener回调对象
public interface BXTagListener {
// Tag结果设置的回调
void onResult(int resultCode,String resultMessage);
}
resultCode说明
resultCode | resultMessage |
---|---|
50005 | 标签数量超限,最大单词上传Tag数组长度为10 |
50006 | 单个标签长度超限,单个标签最大字符串长度为64个字符 |
50007 | 当天操作setTag接口频次超限,当天最大调用频次为10 |
50008 | tag中含有非法字符 |
40001 | 接口调用间隔频次间隔小于5s |
设置标签成功 |