SDK初始化说明
1. SDK初始化配置
java
WindMillAd ads = WindMillAd.sharedAds();
ads.setAdult(true);//是否成年(可选参数,默认是成年用户)
ads.setPersonalizedAdvertisingOn(true);//是否开启个性化推荐接口(可选参数,默认是开启)
ads.setDebugEnable(false);//true开启、false关闭(默认开启)
ads.startWithAppId(this, "appId");
ads.startWithAppId(this, "appId",windMillAdInitListener); // WindMillAdInitListener 初始化回调,会把初始化异常信息在fail返回
2. 中国大陆权限授权接口(仅针对中国大陆)
java
/**
* 主动READ_PHONE_STATE,WRITE_EXTERNAL_STORAGE,ACCESS_FINE_LOCATION 权限授权请求
*
* READ_PHONE_STATE:允许应用访问设备的电话状态信息,包括设备的电话号码、手机网络类型、设备的状态等
* WRITE_EXTERNAL_STORAGE:外部存储权限
* ACCESS_FINE_LOCATION:运动轨迹权限(位置权限)
*
*/
WindMillAd.requestPermission(this);
3. App的自定义规则
java
Map<String, String> customMap = new HashMap<>();
customMap.put("user_source", "huawei");// 流量安装来源:oppo、华为等,开发者自己传
customMap.put("channel", "toutiao");// 买量渠道:穿山甲、快手、sigmob等
customMap.put("sub_channel", "toutiao");// 买量子渠道:穿山甲、快手、sigmob等
WindMillAd.sharedAds().initCustomMap(customMap); // App的自定义规则为全局设置,对全部Placement有效
4. PlacementId的自定义规则
java
Map<String, String> customMap = new HashMap<>();
customMap.put("user_source", "huawei");// 流量安装来源:oppo、华为等,开发者自己传
customMap.put("channel", "toutiao");// 买量渠道:穿山甲、快手、sigmob等
customMap.put("sub_channel", "toutiao");// 买量子渠道:穿山甲、快手、sigmob等
WindMillAd.sharedAds().initPlacementCustomMap(placementId, customMap);; // Placement的自定义规则为全局设置,只针对单个PlacementId有效
5. 过滤指定广告平台(废弃)
建议在广告load前调用。(Banner、原生广告在show之前调用无效)
java
List<String> networkFirmIdList = new ArrayList<>();
networkFirmIdList.add(String.valueOf(WMNetworkConfig.GDT));
WindMillAd.sharedAds().setFilterNetworkFirmIdList(placementId, networkFirmIdList);//placementId为聚合广告位ID,networkFirmIdList为广告平台对应的ID
WindMillAd.sharedAds().setFilterNetworkFirmIdList(placementId, new ArrayList<>());//可用此方法清除之前的设置
6. 过滤指定广告平台及广告平台下的广告位
建议在广告load前调用。
瀑布流过滤常量字段 | 说明 |
---|---|
WMWaterfallFilter.KEY_CHANNEL_ID | 渠道ID |
WMWaterfallFilter.KEY_ADN_PLACEMENT_ID | 渠道广告位ID |
WMWaterfallFilter.KEY_BIDDING_TYPE | 竞价类型 WMWaterfallFilter.NORMAL 普通广告源 WMWaterfallFilter.S2S 服务端竞价广告源 WMWaterfallFilter.C2S 客户端竞价广告源 |
WMWaterfallFilter.KEY_E_CPM | 渠道ecpm 价格 |
java
/**
* 下面构造了过滤表达式例子的含义为:
*
* 1、针对聚合广告位id:88888888 过滤gdt渠道下的广告位id:123
* 2、针对聚合广告位id:88888888 过滤csj渠道下的广告位id:456
* 3、针对聚合广告位id:88888888 过滤ks渠道下的广告位id集合:123、456、789
* 4、针对聚合广告位id:88888888 过滤bd整个渠道
* 5、针对聚合广告位id:88888888 过滤该瀑布流下的123、345、789等三方渠道的广告位id,与渠道无关
* 6、针对聚合广告位id:88888888 过滤该瀑布流下的ks、csj、gdt等三方渠道
* 7、针对聚合广告位id:88888888 过滤该瀑布流下的客户端bidding、服务端bidding、普通广告源(相当于过滤整个瀑布流)
* 8、针对聚合广告位id:88888888 过滤该瀑布流下的客户端bidding的三方广告源
* 9、针对聚合广告位id:88888888 过滤该瀑布流下的服务端bidding的三方广告源
* 10、针对聚合广告位id:88888888 过滤该瀑布流下的非bidding的普通三方广告源
* 11、针对聚合广告位id:88888888 过滤该瀑布流下价格在50-100之间的三方广告源
* 12、针对聚合广告位id:88888888 过滤该瀑布流下价格小于等于50的三方广告源
* 13、针对聚合广告位id:88888888 过滤该瀑布流下价格大于等于100的三方广告源
* 14、针对聚合广告位id:88888888 过滤该瀑布流下价格等于50的三方广告源
*/
WindMillAd.sharedAds().addFilter(new WMWaterfallFilter("88888888")//针对这个聚合广告位进行的过滤
.equalTo(WMWaterfallFilter.KEY_CHANNEL_ID, "16")//gdt渠道id
.equalTo(WMWaterfallFilter.KEY_ADN_PLACEMENT_ID, "123")//渠道的广告位id
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_CHANNEL_ID, "13")//csj渠道id
.and()//与的关系:不开启新的过滤表达式:可写可不写
.equalTo(WMWaterfallFilter.KEY_ADN_PLACEMENT_ID, "456")//渠道的广告位id
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_CHANNEL_ID, "19")//快手渠道id
.in(WMWaterfallFilter.KEY_ADN_PLACEMENT_ID, Arrays.asList("123", "456", "789"))//渠道的广告位集合
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_CHANNEL_ID, "21")//百度渠道id
.or()//或的关系:开启一个新的过滤表达式了
.in(WMWaterfallFilter.KEY_ADN_PLACEMENT_ID, Arrays.asList("123", "456", "789"))
.or()//或的关系:开启一个新的过滤表达式了
.in(WMWaterfallFilter.KEY_CHANNEL_ID, Arrays.asList("19", "13", "16"))
.or()//或的关系:开启一个新的过滤表达式了
.in(WMWaterfallFilter.KEY_BIDDING_TYPE, Arrays.asList(WMWaterfallFilter.C2S, WMWaterfallFilter.S2S, WMWaterfallFilter.NORMAL))
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_BIDDING_TYPE, WMWaterfallFilter.C2S)
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_BIDDING_TYPE, WMWaterfallFilter.S2S)
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_BIDDING_TYPE, WMWaterfallFilter.NORMAL)
.or()//或的关系:开启一个新的过滤表达式了
.greaterThanEqual(WMWaterfallFilter.KEY_E_CPM, "50") //大于等于50
.lessThanEqual(WMWaterfallFilter.KEY_E_CPM, "100") //且小于等于100
.or()//或的关系:开启一个新的过滤表达式了
.lessThanEqual(WMWaterfallFilter.KEY_E_CPM, "50")
.or()//或的关系:开启一个新的过滤表达式了
.greaterThanEqual(WMWaterfallFilter.KEY_E_CPM, "100")
.or()//或的关系:开启一个新的过滤表达式了
.equalTo(WMWaterfallFilter.KEY_E_CPM, "50")
);
WindMillAd.sharedAds().removeFilters();//可用此方法清空全部过滤条件
7. 支持多进程
java
WindMillAd ads = WindMillAd.sharedAds();
ads.setSupportMultiProcess(true);
8. 支持微信小程序
java
WindMillAd ads = WindMillAd.sharedAds();
ads.setWxOpenAppId(”your wxOpenAppId“);
9. 渠道初始化监听
onNetworkInitBefore:初始化前回调 仅支持穿山甲、Gromore、百度
onNetworkInitSuccess:初始化成功回调 仅支持穿山甲、Gromore、快手、GDT、MTG、百度渠道
onNetworkInitFailed:初始化失败回调 仅支持穿山甲、Gromore、快手、GDT、MTG、百度渠道
参数 | 说明 |
---|---|
channel_id | 渠道ID |
error_code | 错误码 |
error_msg | 错误信息 |
initInstance | 初始化渠道实例: 穿山甲、Gromore: TTAdConfig.Builder 百度渠道: BDAdConfig.Builder |
java
WindMillAd ads = WindMillAd.sharedAds();
ads.setNetworkInitListener(new WMNetworkInitListener() {
@Override
public void onNetworkInitBefore(int channel_id, Object initInstance) {
Log.d("Sigmob", "----------onNetworkInitBefore----------" + channel_id + " ---initInstance--- " + initInstance);
}
@Override
public void onNetworkInitSuccess(int channel_id) {
Log.d("Sigmob", "----------onNetworkInitSuccess----------" + channel_id);
}
@Override
public void onNetworkInitFailed(int channel_id, int error_code, String error_msg) {
Log.d("Sigmob", "----------onNetworkInitFailed----------" + channel_id + ":" + error_code + ":" + error_msg);
}
});