Skip to content

Commit

Permalink
Fixes reduced delivery of Brave ads campaigns with subdivision targeting
Browse files Browse the repository at this point in the history
  • Loading branch information
tmancey committed Oct 20, 2021
1 parent 51eca1c commit 41cca4a
Show file tree
Hide file tree
Showing 4 changed files with 22 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -243,17 +243,17 @@ CreativeAdNotificationList EligibleAds::FilterIneligibleAds(

CreativeAdNotificationList eligible_ads = ads;

eligible_ads = ApplyFrequencyCapping(
eligible_ads,
ShouldCapLastServedAd(creative_ads) ? last_served_ad_ : AdInfo(),
ad_events, browsing_history);

eligible_ads = FilterSeenAdvertisersAndRoundRobinIfNeeded(
eligible_ads, AdType::kAdNotification);

eligible_ads =
FilterSeenAdsAndRoundRobinIfNeeded(eligible_ads, AdType::kAdNotification);

eligible_ads = ApplyFrequencyCapping(
eligible_ads,
ShouldCapLastServedAd(ads) ? last_served_creative_ad_ : CreativeAdInfo(),
ad_events, browsing_history);

eligible_ads = PaceAds(eligible_ads);

eligible_ads = PrioritizeAds(eligible_ads);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -254,17 +254,17 @@ CreativeInlineContentAdList EligibleAds::FilterIneligibleAds(

CreativeInlineContentAdList eligible_ads = ads;

eligible_ads = ApplyFrequencyCapping(
eligible_ads,
ShouldCapLastServedAd(creative_ads) ? last_served_ad_ : AdInfo(),
ad_events, browsing_history);

eligible_ads = FilterSeenAdvertisersAndRoundRobinIfNeeded(
eligible_ads, AdType::kInlineContentAd);

eligible_ads = FilterSeenAdsAndRoundRobinIfNeeded(eligible_ads,
AdType::kInlineContentAd);

eligible_ads = ApplyFrequencyCapping(
eligible_ads,
ShouldCapLastServedAd(ads) ? last_served_creative_ad_ : CreativeAdInfo(),
ad_events, browsing_history);

eligible_ads = PaceAds(eligible_ads);

eligible_ads = PrioritizeAds(eligible_ads);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,19 @@
#include <string>

#include "bat/ads/internal/bundle/creative_ad_info.h"
#include "bat/ads/internal/frequency_capping/exclusion_rules/split_test_frequency_cap.h"

namespace ads {

template <typename T>
T FilterSeenAds(const T& ads, const std::map<std::string, bool>& seen_ads) {
T unseen_ads = ads;

const auto iter = std::remove_if(
unseen_ads.begin(), unseen_ads.end(), [&seen_ads](CreativeAdInfo& ad) {
SplitTestFrequencyCap frequency_cap;
return frequency_cap.ShouldExclude(ad) ||
seen_ads.find(ad.creative_instance_id) != seen_ads.end();
});
const auto iter =
std::remove_if(unseen_ads.begin(), unseen_ads.end(),
[&seen_ads](const CreativeAdInfo& creative_ad) {
return seen_ads.find(creative_ad.creative_instance_id) !=
seen_ads.end();
});

unseen_ads.erase(iter, unseen_ads.end());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
#include <string>

#include "bat/ads/internal/bundle/creative_ad_info.h"
#include "bat/ads/internal/frequency_capping/exclusion_rules/split_test_frequency_cap.h"

namespace ads {

Expand All @@ -19,14 +18,12 @@ T FilterSeenAdvertisers(const T& ads,
const std::map<std::string, bool>& seen_advertisers) {
T unseen_advertisers = ads;

const auto iter =
std::remove_if(unseen_advertisers.begin(), unseen_advertisers.end(),
[&seen_advertisers](CreativeAdInfo& ad) {
SplitTestFrequencyCap frequency_cap;
return frequency_cap.ShouldExclude(ad) ||
seen_advertisers.find(ad.advertiser_id) !=
seen_advertisers.end();
});
const auto iter = std::remove_if(
unseen_advertisers.begin(), unseen_advertisers.end(),
[&seen_advertisers](const CreativeAdInfo& creative_ad) {
return seen_advertisers.find(creative_ad.advertiser_id) !=
seen_advertisers.end();
});

unseen_advertisers.erase(iter, unseen_advertisers.end());

Expand Down

0 comments on commit 41cca4a

Please sign in to comment.