Skip to content

广告过滤

在移动广告投放过程中,不同广告源、渠道、ECPM 可能因各种因素(如用户画像、设备信息、地域限制、广告质量等)影响最终的广告效果。开发者可以使用SDK的过滤功能实现对特定广告的过滤。

广告过滤的作用

提升广告匹配度:‌根据用户的设备信息、地域、行为等,过滤不适合的广告源,提高广告投放精准度 ‌优化收益:‌过滤低 ECPM 广告源占用展示机会 ‌屏蔽不合规广告:‌根据政策、广告内容审核要求,屏蔽不符合规范的广告 降低无效请求 ‌降低无效请求:‌减少无效的广告请求,优化流量分发,提高广告加载速度

广告过滤的关键条件

在客户端进行广告过滤时,可以基于以下条件进行筛选:

广告源过滤

依据广告源的历史表现,如填充率、ECPM、展示点击率,优先选择高收益、高匹配度的广告源 过滤掉历史低收益、填充率低的广告源

ECPM 过滤

设定 ECPM(每千次展示收益)门槛值,低于该门槛的广告将被屏蔽 按广告源历史数据动态调整 ECPM 阈值

渠道过滤

针对不同投放渠道(如 优量汇、快手、穿山甲、快手,国内联盟广告等)进行筛选,避免无效或低收益的渠道

竞价类型过滤

针对不同的竞价类型(如 固价、服务器端竞价、客户端竞价)进行过滤,调整不同竞价模式的权重

三方广告源广告类型过滤

针对多广告类型优选和原生转场景,如果想要过滤混出的广告,可以通过设置过滤三方广告源广告类型实现。 注意该过滤维度主要用于混出场景,除混出场景外请谨慎使用。

广告过滤代码样例

注意:过滤代码调用时机 Load广告前、Load广告之后、show之前都可以进行过滤代码执行,只要广告对象还没show 都可以进行过滤

1. Android平台代码样例 (需版本号>=V4.0.0)

瀑布流过滤常量字段说明
WMWaterfallFilter.KEY_CHANNEL_ID渠道ID (枚举见下面介绍)
WMWaterfallFilter.KEY_ADN_PLACEMENT_ID广告源ID(代码位ID)
WMWaterfallFilter.KEY_BIDDING_TYPE竞价类型
WMWaterfallFilter.NORMAL 普通广告源
WMWaterfallFilter.S2S 服务端竞价广告源
WMWaterfallFilter.C2S 客户端竞价广告源
WMWaterfallFilter.KEY_E_CPM渠道ecpm 价格
WMWaterfallFilter.KEY_ADN_PLACEMENT_SUB_TYPE渠道子广告类型
1 激励
2 开屏
4 插屏
5 原生
7 横幅
WMWaterfallFilter.KEY_ADN_PLACEMENT_RENDER_TYPE渠道渲染类型
0 对应广告类型模版渲染
1 原生自渲染

1.1 过滤关键词(需版本号>=V4.0.0)

关键词说明
equalTo等于的关系
or或的关系:开启一个新的过滤表达式了
and与的关系:不开启新的过滤表达式:可写可不写
in渠道的广告位集合
addFilter添加一个过滤器
greaterThanEqual大于等于,只针对价格维度进行过滤
lessThanEqual小于等于,只针对价格维度进行过滤
greaterThan大于,只针对价格维度进行过滤
lessThan小于,只针对价格维度进行过滤
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")
    .equalTo(WMWaterfallFilter.KEY_ADN_PLACEMENT_SUB_TYPE, "1")//过滤渠道子广告类型 (1激励 2开屏 4插屏 5原生 7banner)
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMWaterfallFilter.KEY_ADN_PLACEMENT_RENDER_TYPE, "1")//过滤渠道子广告渲染类型( 1使用原生自渲染 0使用对应广告类型渲染)
    );

2. 移除指定广告位过滤器 (需版本号>=V4.2.1)

java
    WindMillAd.sharedAds().removeFilterWithPlacementIds(tobidId1);//可以传多个TobidId

3. 清除全部过滤器 (需版本号>=V4.0.0)

java
    WindMillAd.sharedAds().removeFilters();

4. 广告对象级广告源过滤器设置 (需版本号>=V4.6.10)

java
  WMRewardAdRequest request = new WMRewardAdRequest(PLACEMENT_ID, USER_ID, OPTIONS);

  WMRewardAd rewardAd = new WMRewardAd(activity,request);
  WMAdFilter wmFilter = new WMAdFilter();//针对这个广告对象进行的过滤

  wmFilter.equalTo(WMAdFilter.KEY_CHANNEL_ID, "16")//gdt渠道id
    .equalTo(WMAdFilter.KEY_ADN_PLACEMENT_ID, "123")//渠道的广告位id
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_CHANNEL_ID, "13")//csj渠道id
    .and()//与的关系:不开启新的过滤表达式:可写可不写
    .equalTo(WMAdFilter.KEY_ADN_PLACEMENT_ID, "456")//渠道的广告位id
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_CHANNEL_ID, "19")//快手渠道id
    .in(WMAdFilter.KEY_ADN_PLACEMENT_ID, Arrays.asList("123", "456", "789"))//渠道的广告位集合
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_CHANNEL_ID, "21")//百度渠道id
    .or()//或的关系:开启一个新的过滤表达式了
    .in(WMAdFilter.KEY_ADN_PLACEMENT_ID, Arrays.asList("123", "456", "789"))
    .or()//或的关系:开启一个新的过滤表达式了
    .in(WMAdFilter.KEY_CHANNEL_ID, Arrays.asList("19", "13", "16"))
    .or()//或的关系:开启一个新的过滤表达式了
    .in(WMAdFilter.KEY_BIDDING_TYPE, Arrays.asList(WMAdFilter.C2S, WMAdFilter.S2S, WMAdFilter.NORMAL))
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_BIDDING_TYPE, WMAdFilter.C2S)
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_BIDDING_TYPE, WMAdFilter.S2S)
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_BIDDING_TYPE, WMAdFilter.NORMAL)
    .or()//或的关系:开启一个新的过滤表达式了
    .greaterThanEqual(WMAdFilter.KEY_E_CPM, "50") //大于等于50 
    .lessThanEqual(WMAdFilter.KEY_E_CPM, "100") //且小于等于100
    .or()//或的关系:开启一个新的过滤表达式了
    .lessThanEqual(WMAdFilter.KEY_E_CPM, "50")
    .or()//或的关系:开启一个新的过滤表达式了
    .greaterThanEqual(WMAdFilter.KEY_E_CPM, "100")
    .or()//或的关系:开启一个新的过滤表达式了
    .equalTo(WMAdFilter.KEY_E_CPM, "50");
  rewardAd.setFilter(wmFilter);

4. 渠道ID映射表 (WMNetworkConfig)

广告网络广告网络Id
MOBVISTA(Mintegral)1
Vungle4
Applovin5
Unityadsq6
ironSource7
Sigmob9
Admob11
TOUTIAO13
GDT16
KUAISHOU19
KLEVIN20
BAIDU21
GROMORE22
ADSCOPE27
QUMENG28
TAPTAP29
PANGLE30
APPLOVIN_MAX31
REKLAMUP33
ADMATE (美数)35
HONOR36
INMOBI37
VIVOADN38
BILLOWLINK39
OCTOPUS (章鱼)41
MERCURY (倍业)42