Skip to content

Commit

Permalink
Support one order for all bidders kmjennison#18
Browse files Browse the repository at this point in the history
  • Loading branch information
adsdeploy committed Jan 7, 2020
1 parent 857c5a5 commit 8b017c3
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 8 deletions.
6 changes: 5 additions & 1 deletion dfp/create_creatives.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,11 @@ def build_creative_name(bidder_code, order_name, creative_num):
Returns:
a string
"""
return '{bidder_code}: HB {order_name}, #{num}'.format(
if bidder_code is None:
bidder_code_format = '{bidder_code}: HB {order_name}, #{num}'
else:
bidder_code_format = 'HB {order_name}, #{num}'
return bidder_code_format.format(
bidder_code=bidder_code, order_name=order_name, num=creative_num)

def create_duplicate_creative_configs(bidder_code, order_name, advertiser_id,
Expand Down
13 changes: 11 additions & 2 deletions dfp/create_line_items.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,22 @@ def create_line_item_config(name, order_id, placement_ids, ad_unit_ids, cpm_micr

# The custom criteria will resemble:
# (hb_bidder_criteria.key == hb_bidder_criteria.value AND
# hb_pb_criteria.key == hb_pb_criteria.value)
# hb_pb_criteria.key == hb_pb_criteria.value)
top_set = {
'xsi_type': 'CustomCriteriaSet',
'logicalOperator': 'AND',
'children': [hb_bidder_criteria, hb_pb_criteria]
'children': [hb_pb_criteria]
}

if hb_bidder_key_id is not None:
hb_bidder_criteria = {
'xsi_type': 'CustomCriteria',
'keyId': hb_bidder_key_id,
'valueIds': [hb_bidder_value_id],
'operator': 'IS'
}
top_set['children'].append(hb_bidder_criteria)

# https://developers.google.com/doubleclick-publishers/docs/reference/v201802/LineItemService.LineItem
line_item_config = {
'name': name,
Expand Down
19 changes: 14 additions & 5 deletions tasks/add_new_prebid_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,19 @@ def setup_partner(user_email, advertiser_name, order_name, placements, ad_units,
creative_ids = dfp.create_creatives.create_creatives(creative_configs)

# Get DFP key IDs for line item targeting.
hb_bidder_key_id = get_or_create_dfp_targeting_key('hb_bidder')
if bidder_code is not None:
hb_bidder_key_id = get_or_create_dfp_targeting_key('hb_bidder')
else:
hb_bidder_key_id = None

hb_pb_key_id = get_or_create_dfp_targeting_key('hb_pb')

# Instantiate DFP targeting value ID getters for the targeting keys.
HBBidderValueGetter = DFPValueIdGetter('hb_bidder')
if bidder_code is not None:
HBBidderValueGetter = DFPValueIdGetter('hb_bidder')
else:
HBBidderValueGetter = None

HBPBValueGetter = DFPValueIdGetter('hb_pb')

# Create line items.
Expand Down Expand Up @@ -183,7 +191,10 @@ def create_line_item_configs(prices, order_id, placement_ids, ad_unit_ids, bidde
"""

# The DFP targeting value ID for this `hb_bidder` code.
hb_bidder_value_id = HBBidderValueGetter.get_value_id(bidder_code)
if HBBidderValueGetter is not None:
hb_bidder_value_id = HBBidderValueGetter.get_value_id(bidder_code)
else:
hb_bidder_value_id = None

line_items_config = []
for price in prices:
Expand Down Expand Up @@ -305,8 +316,6 @@ def main():
)

bidder_code = getattr(settings, 'PREBID_BIDDER_CODE', None)
if bidder_code is None:
raise MissingSettingException('PREBID_BIDDER_CODE')

price_buckets = getattr(settings, 'PREBID_PRICE_BUCKETS', None)
if price_buckets is None:
Expand Down

0 comments on commit 8b017c3

Please sign in to comment.