Segments and Placements


Segments are used to track statistics for various user categories and to manage ads for this categories. A segment is a fraction of audience unified by restrictions: e.g. by gender, age or any other parameter known to the app and directed to Appodeal SDK. Additional ad management settings can be applied to each segment. Read more on segments in our FAQ.

Once user segments have been created, they can then be analyzed and used to configure ads.

To create new segment, go here.

Manual Filters

Manual Filters allow to group users by any available metric. E.g., you know the sources that directed users to your app and you want to track the statistics for such sources — create a segment for each source and mark each user with its source.

To create such a segment you have to give our SDK the name and value:  

Appodeal.setCustomFilter(name, value);
Value can be boolean, numeric or string-based.


Appodeal.setCustomFilter("levels_played", 3);

Bought In-Apps and In-Apps Amount Filters

Bought In-Apps allows to group users by the fact of purchasing in-apps. This will help you adjust the ads for such users or turn them off if needed. 

In-Apps Amount filter allows you to group users who’ve made a particular amount of in-app purchases.

Please submit the purchase info via Appodeal SDK to make these settings work correctly.

Appodeal.trackInAppPurchase(this, 5.0, "USD");

If you have no segments all users will be matched to default segment.

If you have multiple segments, their order is important. Only the first segment in which rules are matched to the user will apply. All of the rest will be ignored.


Appodeal SDK allows you to tag each impression with different placement. Read more on placements in our FAQ.

To show an ad with placement, you have to call show method like this:, adTypes, placementName);

//for NativeAds
nativeAdView.registerView(NativeAd nativeAd, placementName)

To check if ad can be shown for the specific placement use:

if(Appodeal.canShow(adTypes, placementName)) {
    //, Appodeal.YOUR_AD_TYPE);

//for NativeAds
if(nativeAd.canShow(String placementName)) {
//for custom NativeAd
  // nativeAdView.registerView(NativeAd nativeAd);
//for NativeAd templates
  // nativeAdView.setNativeAd(NativeAd nativeAd)

You can configure your impression logic for each placement.

If you have no placements, or call with placement that do not exist, the impression will be tagged with 'default' placement and its settings will be applied.


Placement settings affect ONLY ad presentation, not loading or caching.