Skip to content

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);
      }

});