Menu

Advanced

● Custom Filtering Rules

💡Tips

  • TopOn SDK version requirement: v6.4.60 or later
objectivec Copy
/**
 * Adds a custom filtering rule to a placement
 * @param filter The filter criteria object
 * @param placementID The placement ID (multiple placements can share one filter)
 */
[[ATSDKGlobalSetting sharedManager] addFilter:(ATAdCustomFilter *)filter forPlacementID:(NSString *)placementID];
  • Click here to find the ID of each ad network
  • networkFirmIDs, biddingModes, networkSlotIDs, and ecpmItem can be combined as needed to create filtering rules (iOS also supports adSourceIDs for filtering by TopOn ad source ID)
objectivec Copy
// Removes custom filtering rules from the specified placements
[[ATSDKGlobalSetting sharedManager] removeFilterWithPlacementIDs:@[@"your placement id"]];

// Removes all custom filtering rules
[[ATSDKGlobalSetting sharedManager] removeAllFilters];

● Example 1

Filtering rule: All of the following criteria must be met:

  1. Ad network restriction
    • Target ad network IDs: Ad Network 1 and Ad Network 2
  2. Bidding type restriction
    • Filtered types: bidding ads (C2S/S2S) and non-bidding ads (NORMAL) (that is, both real-time bidding and non-bidding ad types are excluded)
  3. Ad network placement restriction
    • Target ad network placement IDs: Placement 1 and Placement 2
    • (Corresponding to the ad network's NetworkSlotID field)
  4. Price range restriction (⚠️If the price range is set to ≤10 and ≥50, it is considered invalid)
    • Currency: USD
    • Price range: ≥10 and ≤50
objectivec Copy
ATAdCustomFilter *filter = [[ATAdCustomFilter alloc] init];
filter
    .networkFirmIDs(@[@(1), @(2)]) // Filters out the specified ad network IDs: Ad Network 1 and Ad Network 2
    .biddingModes(@[@(ATAdCustomFilterBiddingModeNormal), @(ATAdCustomFilterBiddingModeS2S), @(ATAdCustomFilterBiddingModeC2S)]) // Filters out both bidding and non-bidding types
    .networkSlotIDs(@[@"Ad Network Placement 1", @"Ad Network Placement 2"]) // Filters out the specified ad network placement IDs
    .ecpmItem([[ATAdCustomFilterEcpmItem alloc] initWithMoreThenPrice:@"10" // Greater than or equal to 10
                                                        lessThenPrice:@"50" // Less than or equal to 50
                                                             currency:ATBiddingCurrencyTypeUS]); // Uses USD and filters out the price range [10, 50]

[[ATSDKGlobalSetting sharedManager] addFilter:filter forPlacementID:@"your placement id"];

● Example 2

Filtering rule: Condition 1 or Condition 2 must be met (💡connect conditions with .orFilter())

Condition 1

  1. Ad network restriction
    • Target ad network IDs: Ad Network 1 and Ad Network 2
  2. Bidding type restriction
    • Filtered type: non-bidding ads (NORMAL)
  3. Ad network placement restriction
    • Target ad network placement IDs: Placement 1 and Placement 2
    • (Corresponding to the ad network's NetworkSlotID field)
  4. Price range restriction
    • Currency: CNYCents (Chinese yuan cents)
    • Price range: ≤5000

Condition 2

  1. Ad network restriction
    • Target ad network ID: Ad Network 3
  2. Bidding type restriction
    • Filtered types: bidding ads (C2S/S2S)
  3. Ad network placement restriction
    • Target ad network placement ID: Placement 1 (corresponding to the ad network's NetworkSlotID field)
  4. Price range restriction
    • Currency: CNY (Chinese yuan)
    • Price range: ≥10
objectivec Copy
ATAdCustomFilter *filter = [[ATAdCustomFilter alloc] init];
filter
    // Condition 1
    .networkFirmIDs(@[@(1), @(2)]) // Filters out the specified ad network IDs: Ad Network 1 and Ad Network 2
    .biddingModes(@[@(ATAdCustomFilterBiddingModeNormal)]) // Filters out non-bidding types
    .networkSlotIDs(@[@"Ad Network Placement 1", @"Ad Network Placement 2"]) // Filters out the specified ad network placement IDs
    .ecpmItem([[ATAdCustomFilterEcpmItem alloc] initWithMoreThenPrice:nil
                                                        lessThenPrice:@"5000" // Less than or equal to 5000
                                                             currency:ATBiddingCurrencyTypeCNYCents]) // Uses Chinese yuan cents
    .orFilter()
    // Condition 2
    .networkFirmIDs(@[@(3)]) // Filters out the specified ad network ID: Ad Network 3
    .biddingModes(@[@(ATAdCustomFilterBiddingModeS2S), @(ATAdCustomFilterBiddingModeC2S)]) // Filters out bidding types
    .networkSlotIDs(@[@"Ad Network Placement 1"]) // Filters out the specified ad network placement ID
    .ecpmItem([[ATAdCustomFilterEcpmItem alloc] initWithMoreThenPrice:@"10" // Greater than or equal to 10
                                                        lessThenPrice:nil
                                                             currency:ATBiddingCurrencyTypeCNY]); // Uses Chinese yuan

[[ATSDKGlobalSetting sharedManager] addFilter:filter forPlacementID:@"your placement id"];
Previous
One-Click Mute
Next
Privacy Policy
Last modified: 2026-09-08Powered by