Make sure you are calling the
ResultSet.FilterPromotions method to filter the Promotions per region after you retrieve the results using the
QueryBuilder. Other than the method signature may suggest this method is not only applicable to Experiments, but is also required to post-process returned Promotions. Post-processing the results by calling this method is imperative for the API to, for example, set the correct visible status of Promotions, cookie handling of Experiments and it handles duplicates as well.
Note the method takes a list of promotions items already on the page and a boolean for allowing duplicates on the page. You are responsible for populating this boolean with a value from your own region configuration -OR- the default configuration value from the smarttarget_conf.xml file by passing the value of the