💡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, andecpmItemcan be combined as needed to create filtering rules (iOS also supportsadSourceIDsfor 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:
- Ad network restriction
- Target ad network IDs: Ad Network 1 and Ad Network 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)
- Ad network placement restriction
- Target ad network placement IDs: Placement 1 and Placement 2
- (Corresponding to the ad network's
NetworkSlotIDfield)- Price range restriction (⚠️If the price range is set to ≤10 and ≥50, it is considered invalid)
- Currency: USD
- Price range: ≥10 and ≤50
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
- Ad network restriction
- Target ad network IDs: Ad Network 1 and Ad Network 2
- Bidding type restriction
- Filtered type: non-bidding ads (NORMAL)
- Ad network placement restriction
- Target ad network placement IDs: Placement 1 and Placement 2
- (Corresponding to the ad network's
NetworkSlotIDfield)- Price range restriction
- Currency: CNYCents (Chinese yuan cents)
- Price range: ≤5000
Condition 2
- Ad network restriction
- Target ad network ID: Ad Network 3
- Bidding type restriction
- Filtered types: bidding ads (C2S/S2S)
- Ad network placement restriction
- Target ad network placement ID: Placement 1 (corresponding to the ad network's
NetworkSlotIDfield)- Price range restriction
- Currency: CNY (Chinese yuan)
- Price range: ≥10
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"];