广点通文档
不知道注册成功之后是不是有更详细的文档,暂未知, 我自己注册的还未通过
找到的教程
这个有点过时, 里面一些用法跟我现在的不一样, 不过很详细
1 jar包
我的jar包版本为GDTUnionSDK.4.18.569.min.jar, 应该是注册后从官网下载的
2 权限
"android.permission.INTERNET" />
"android.permission.ACCESS_NETWORK_STATE" />
"android.permission.ACCESS_WIFI_STATE" />
"android.permission.READ_PHONE_STATE" />
"android.permission.ACCESS_COARSE_LOCATION" />
"android.permission.ACCESS_COARSE_UPDATES" />
"android.permission.WRITE_EXTERNAL_STORAGE" />
复制代码
3 Manifest
"com.qq.e.ads.ADActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
"com.qq.e.comm.DownloadService"
android:exported="false" />
复制代码
我们之前的老项目没有加这两个, 但是广告正常显示, 迁移到新项目后无法显示, 加上这两个就正常了
MultiProcessFlag.setMultiProcess(true)
复制代码
这个我也不知道干嘛的
4 开屏广告
new SplashAD(options.mActivity, options.mViewGroup, options.mView, options.mAppId, options.mAdId,
new SplashADListener() {
@Override
public void onADDismissed() {
listener.onADDismissed();
}
@Override
public void onNoAD(AdError error) {
listener.onNoAD(new AdError(error.getErrorCode(), "GDT"+error.getErrorMsg()));
}
@Override
public void onADPresent() {
listener.onADPresent();
}
@Override
public void onADClicked() {
LogUtil.e("onADClicked");
}
@Override
public void onADTick(long l) {
listener.onADTick(l);
}
@Override
public void onADExposure() {
listener.onADExposure();
}
}, options.mShowTime);
复制代码
- 参数1: 当前activity
- 参数2: 广告容器,我们用的FramLayout
- 参数3: 跳过按钮
- 参数4,5: appid和adid //后台创建应用时生成
- 参数6: 结果回调
- 参数7: 广告展示时间(单位毫秒)
5 原生广告
private NativeExpressAD mAd;
private NativeExpressADView mAdView;
mAd = new NativeExpressAD(options.mActivity, new ADSize(ADSize.FULL_WIDTH, ADSize.AUTO_HEIGHT),
options.mAppId, options.mAdId, new NativeExpressAD.NativeExpressADListener() {
@Override
public void onNoAD(AdError error) {
listener.onNoAD(new com.qmsh.adlibrary.common.AdError(error.getErrorCode(), error.getErrorMsg()));
}
@Override
public void onADLoaded(List list) {
LogUtil.e("onADLoaded");
if (list == null || list.size() <= 0) {
listener.onNoAD(new com.qmsh.adlibrary.common.AdError(0, "没返回广告"));
return;
}
if (mAdView != null) {
mAdView.destroy();
}
mAdView = list.get(0);
// 广告可见才会产生曝光,否则将无法产生收益。
options.mViewGroup.removeAllViews();
options.mViewGroup.addView(mAdView);
mAdView.render();
}
@Override
public void onRenderFail(NativeExpressADView nativeExpressADView) {
LogUtil.e("onRenderFail");
}
@Override
public void onRenderSuccess(NativeExpressADView nativeExpressADView) {
LogUtil.e("onRenderSuccess");
}
@Override
public void onADExposure(NativeExpressADView nativeExpressADView) {
listener.onADExposure();
}
@Override
public void onADClicked(NativeExpressADView nativeExpressADView) {
LogUtil.e("onADClicked");
}
@Override
public void onADClosed(NativeExpressADView nativeExpressADView) {
LogUtil.e("onADClosed");
if (mAd != null) {
mAd.loadAD(1);
}
}
@Override
public void onADLeftApplication(NativeExpressADView nativeExpressADView) {
LogUtil.e("onADLeftApplication");
}
@Override
public void onADOpenOverlay(NativeExpressADView nativeExpressADView) {
LogUtil.e("onADOpenOverlay");
}
@Override
public void onADCloseOverlay(NativeExpressADView nativeExpressADView) {
LogUtil.e("onADCloseOverlay");
}
});
// 注意:如果您在联盟平台上新建原生模板广告位时,选择了“是”支持视频,那么可以进行个性化设置(可选)
if (options.isVideo) //是否是视频由后台返回
mAd.setVideoOption(new VideoOption.Builder()
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI)//WIFI环境下可以自动播放视频
.setAutoPlayMuted(true) // 自动播放时为静音
.build());
mAd.loadAD(1); //一次拉取的广告条数:范围1-30
复制代码
- 参数1: 当前activity
- 参数2: 广告位大小
- 参数3,4: appid和adid
- 参数5: 结果回调
Option配置
这个是我们自己创建的类, 方便封装广告参数
public class AdLoadOptions {
@NonNull
public Activity mActivity;
@NonNull
public String mAppId;//应用id
@NonNull
public String mAdId;//广告id
@NonNull
public ViewGroup mViewGroup;//装载广告的容器
public int mShowTime = 5000;//显示时间(默认5s)
public boolean isVideo;//是否是视频广告
public View mView; //腾讯广告用
public Class mTargetClazz;//瑞狮开屏需要用到广告
}
复制代码
开屏广告布局样例
"1.0" encoding="utf-8"?>
"http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
type="android.view.View"/>
"onClick"
type="android.view.View.OnClickListener" />
"match_parent"
android:layout_height="match_parent">
"@+id/lyt_splash"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white">
"@+id/logo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" />
"@+id/adv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/logo" />
"@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/logo"
android:onClick="@{onClick}"
android:scaleType="centerCrop" />
"@+id/btn_skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="26dp"
android:layout_marginRight="20dp"
android:onClick="@{onClick}"
android:paddingBottom="2dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="2dp"
android:text="跳过"
android:textColor="#FF666666"
android:textSize="@dimen/text_size_normal"
app:btnCornerRadius="12dp"
app:btnSolidColor="#fff"
app:btnStrokeColor="#FFBEBEBE"
app:btnStrokeWidth="1dp" />
复制代码