Note that the original virtual function in the Exchange connectors was pretty broken as it didn't provide the impression being filtered to the filter. This meant that it was impossible to check if a creative was compatible for a given impression. This is something we recently had to do with adgear and the old virtual functions simply didn't support it.

So what these filters seems to be trying to do but failing because the old interface didn't support it, is selecting the creatives available for a given impression. As an example, impression 1 could have creative 2 and 3 available for bidding and impression 2 could have creative 1 and 2 available for bidding. But you don't want impression 1 to be able to bid on create 1 nor do you want impression 2 to be able to bid on creative 3. So by iterating over impressions and creatives, it tells me that this is the kind of granularity that the old filters were trying to achieve but couldn't due to the limited interface.

So while we could just copy/paste the filters, I think it would be a good idea if we went ahead and make them work as they should while we're at it. This does make the task more complicated then originally described in the ticket so let me know if this is an issue.