本文整理汇总了Python中r2.lib.promote.get_billable_impressions函数的典型用法代码示例。如果您正苦于以下问题:Python get_billable_impressions函数的具体用法?Python get_billable_impressions怎么用?Python get_billable_impressions使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_billable_impressions函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: is_overdelivered
def is_overdelivered(campaign):
if (campaign.cost_basis != promo.PROMOTE_COST_BASIS.fixed_cpm or
campaign.is_house):
return False
billable_impressions = promote.get_billable_impressions(campaign)
return billable_impressions >= campaign.impressions + ADZERK_IMPRESSION_BUMP
开发者ID:bsdo64,项目名称:reddit-plugin-adzerk,代码行数:7,代码来源:adzerkpromote.py
示例2: POST_refund_campaign
def POST_refund_campaign(self, form, jquery, link, campaign):
billable_impressions = promote.get_billable_impressions(campaign)
billable_amount = promote.get_billable_amount(campaign, billable_impressions)
refund_amount = campaign.bid - billable_amount
if refund_amount > 0:
promote.refund_campaign(link, campaign, billable_amount)
form.set_html(".status", _("refund succeeded"))
else:
form.set_html(".status", _("refund not needed"))
开发者ID:andre-d,项目名称:reddit,代码行数:9,代码来源:promotecontroller.py
示例3: finalize_completed_campaigns
def finalize_completed_campaigns(daysago=1):
# PromoCampaign.end_date is utc datetime with year, month, day only
now = datetime.datetime.now(g.tz)
date = now - datetime.timedelta(days=daysago)
date = date.replace(hour=0, minute=0, second=0, microsecond=0)
q = PromoCampaign._query(PromoCampaign.c.end_date == date,
# exclude no transaction and freebies
PromoCampaign.c.trans_id > 0,
data=True)
campaigns = list(q)
# check that traffic is up to date
earliest_campaign = min(campaigns, key=lambda camp: camp.start_date)
start, end = promote.get_total_run(earliest_campaign)
missing_traffic = get_missing_traffic(start.replace(tzinfo=None),
date.replace(tzinfo=None))
if missing_traffic:
raise ValueError("Can't finalize campaigns finished on %s."
"Missing traffic from %s" % (date, missing_traffic))
links = Link._byID([camp.link_id for link in links], data=True)
for camp in campaigns:
if hasattr(camp, 'refund_amount'):
continue
link = links[camp.link_id]
billable_impressions = promote.get_billable_impressions(camp)
billable_amount = promote.get_billable_amount(camp,
billable_impressions)
if billable_amount >= camp.bid:
text = ('%s completed with $%s billable (%s impressions @ $%s).'
% (camp, billable_amount, billable_impressions, camp.cpm))
PromotionLog.add(link, text)
refund_amount = 0.
else:
refund_amount = camp.bid - billable_amount
user = Account._byID(link.author_id, data=True)
try:
success = authorize.refund_transaction(user, camp.trans_id,
camp._id, refund_amount)
except authorize.AuthorizeNetException as e:
text = ('%s $%s refund failed' % (camp, refund_amount))
PromotionLog.add(link, text)
g.log.debug(text + ' (response: %s)' % e)
continue
text = ('%s completed with $%s billable (%s impressions @ $%s).'
' %s refunded.' % (camp, billable_amount,
billable_impressions, camp.cpm,
refund_amount))
PromotionLog.add(link, text)
camp.refund_amount = refund_amount
camp._commit()
开发者ID:bsimpson63,项目名称:reddit-plugin-adzerkpromo,代码行数:56,代码来源:adzerkpromo.py
示例4: POST_refund_campaign
def POST_refund_campaign(self, form, jquery, link, campaign):
billable_impressions = promote.get_billable_impressions(campaign)
billable_amount = promote.get_billable_amount(campaign,
billable_impressions)
refund_amount = promote.get_refund_amount(campaign, billable_amount)
if refund_amount > 0:
promote.refund_campaign(link, campaign, billable_amount,
billable_impressions)
form.set_html('.status', _('refund succeeded'))
else:
form.set_html('.status', _('refund not needed'))
开发者ID:AD42,项目名称:reddit,代码行数:11,代码来源:promotecontroller.py
示例5: POST_refund_campaign
def POST_refund_campaign(self, form, jquery, link, campaign):
if not link or not campaign or link._id != campaign.link_id:
return abort(404, "not found")
billable_impressions = promote.get_billable_impressions(campaign)
billable_amount = promote.get_billable_amount(campaign, billable_impressions)
refund_amount = promote.get_refund_amount(campaign, billable_amount)
if refund_amount > 0:
promote.refund_campaign(link, campaign, billable_amount, billable_impressions)
form.set_html(".status", _("refund succeeded"))
else:
form.set_html(".status", _("refund not needed"))
开发者ID:DorianGray,项目名称:reddit,代码行数:12,代码来源:promotecontroller.py
示例6: is_overdelivered
def is_overdelivered(campaign):
if not hasattr(campaign, 'cpm') or not campaign.priority.cpm:
return False
billable_impressions = promote.get_billable_impressions(campaign)
return billable_impressions >= campaign.impressions + ADZERK_IMPRESSION_BUMP
开发者ID:curioussavage,项目名称:reddit-plugin-adzerk,代码行数:6,代码来源:adzerkpromote.py
示例7: update_flight
#.........这里部分代码省略.........
siteZones.append({
'SiteId': g.az_selfserve_mobile_web_site_id,
'IsExclude': False,
})
if len(siteZones):
d.update({
'SiteZoneTargeting': siteZones
})
# special handling for location conversions between reddit and adzerk
if campaign.location:
campaign_country = campaign.location.country
campaign_region = campaign.location.region
if campaign.location.metro:
campaign_metro = int(campaign.location.metro)
else:
campaign_metro = None
if az_flight and az_flight.GeoTargeting:
# special handling for geotargeting of existing flights
# can't update geotargeting through the Flight endpoint, do it manually
existing = az_flight.GeoTargeting[0]
az_geotarget = adzerk_api.GeoTargeting._from_item(existing)
if (campaign.location and
(campaign_country != az_geotarget.CountryCode or
campaign_region != az_geotarget.Region or
campaign_metro != az_geotarget.MetroCode or
az_geotarget.IsExclude)):
# existing geotargeting doesn't match current location
az_geotarget.CountryCode = campaign_country
az_geotarget.Region = campaign_region
az_geotarget.MetroCode = campaign_metro
az_geotarget.IsExclude = False
az_geotarget._send(az_flight.Id)
log_text = 'updated geotargeting to %s' % campaign.location
PromotionLog.add(link, log_text)
elif not campaign.location:
# flight should no longer be geotargeted
az_geotarget._delete(az_flight.Id)
log_text = 'deleted geotargeting'
PromotionLog.add(link, log_text)
# only allow one geotarget per flight
for existing in az_flight.GeoTargeting[1:]:
az_geotarget = adzerk_api.GeoTargeting._from_item(existing)
az_geotarget._delete(az_flight.Id)
# NOTE: need to unset GeoTargeting otherwise it will be added to the
# flight again when we _send updates
az_flight.GeoTargeting = None
elif campaign.location:
# flight endpoint works when a new flight is being created or an
# existing one that didn't have geotargeting is being updated
d.update({
'GeoTargeting': [{
'CountryCode': campaign_country,
'Region': campaign_region,
'MetroCode': campaign_metro,
'IsExclude': False,
}],
})
else:
# no geotargeting, either a new flight is being created or an existing
# flight is being updated that wasn't geotargeted
d.update({
'GeoTargeting': [],
})
if az_flight:
changed = update_changed(az_flight, **d)
change_strs = make_change_strings(changed)
if campaign_overdelivered:
billable = promote.get_billable_impressions(campaign)
over_str = 'overdelivered %s/%s' % (billable, campaign.impressions)
change_strs.append(over_str)
if change_strs:
log_text = 'updated %s: ' % az_flight + ', '.join(change_strs)
else:
log_text = None
else:
d.update({'Name': campaign._fullname})
az_flight = adzerk_api.Flight.create(**d)
campaign.adzerk_flight_id = az_flight.Id
campaign._commit()
log_text = 'created %s' % az_flight
if log_text:
PromotionLog.add(link, log_text)
g.log.info(log_text)
if campaign_overdelivered:
campaign.adzerk_flight_overdelivered = True
campaign._commit()
return az_flight
开发者ID:curioussavage,项目名称:reddit-plugin-adzerk,代码行数:101,代码来源:adzerkpromote.py
示例8: update_flight
#.........这里部分代码省略.........
az_geotarget = adzerk_api.GeoTargeting._from_item(existing)
az_geotarget._delete(az_flight.Id)
# NOTE: need to unset GeoTargeting otherwise it will be added to the
# flight again when we _send updates
az_flight.GeoTargeting = None
elif campaign.location:
# flight endpoint works when a new flight is being created or an
# existing one that didn't have geotargeting is being updated
d.update({
'GeoTargeting': [{
'CountryCode': campaign_country,
'Region': campaign_region,
'MetroCode': campaign_metro,
'IsExclude': False,
}],
})
else:
# no geotargeting, either a new flight is being created or an existing
# flight is being updated that wasn't geotargeted
d.update({
'GeoTargeting': [],
})
request_error = None
additional_data = dict(
requires_approval=campaign_needs_approval,
requires_payment=campaign_needs_payment,
is_overdelivered=campaign_overdelivered,
is_paused=campaign_is_paused,
is_terminated=campaign_is_terminated,
)
if az_flight:
try:
changed = update_changed(az_flight, **d)
except adzerk_api.AdzerkError as e:
request_error = e
finally:
g.ad_events.adzerk_api_request(
request_type="update_flight",
thing=campaign,
request_body=d,
triggered_by=triggered_by,
additional_data=additional_data,
request_error=request_error,
)
# re-raise after sending event to requeue item.
if request_error:
raise request_error
change_strs = make_change_strings(changed)
if campaign_overdelivered:
billable = promote.get_billable_impressions(campaign)
over_str = 'overdelivered %s/%s' % (billable, campaign.impressions)
change_strs.append(over_str)
if change_strs:
log_text = 'updated %s: ' % az_flight + ', '.join(change_strs)
else:
log_text = None
else:
d.update({'Name': campaign._fullname})
try:
az_flight = adzerk_api.Flight.create(**d)
except adzerk_api.AdzerkError as e:
request_error = e
finally:
g.ad_events.adzerk_api_request(
request_type="create_flight",
thing=campaign,
request_body=d,
triggered_by=triggered_by,
additional_data=additional_data,
request_error=request_error,
)
# re-raise after sending event to requeue item.
if request_error:
raise request_error
campaign.external_flight_id = az_flight.Id
campaign._commit()
PromoCampaignByFlightIdCache.add(campaign)
log_text = 'created %s' % az_flight
if log_text:
PromotionLog.add(link, log_text)
g.log.info(log_text)
if campaign_overdelivered:
campaign.external_flight_overdelivered = True
campaign._commit()
return az_flight
开发者ID:bsdo64,项目名称:reddit-plugin-adzerk,代码行数:101,代码来源:adzerkpromote.py
示例9: is_overdelivered
def is_overdelivered(campaign):
if not hasattr(campaign, 'cpm'):
return False
billable_impressions = promote.get_billable_impressions(campaign)
return billable_impressions >= campaign.impressions
开发者ID:bsimpson63,项目名称:reddit-plugin-adzerk,代码行数:6,代码来源:adzerkpromote.py
示例10: update_flight
#.........这里部分代码省略.........
if campaign.platform != 'all':
d.update({
'SiteZoneTargeting': [{
'SiteId': g.az_selfserve_site_ids[campaign.platform],
'IsExclude': False,
}],
})
# special handling for location conversions between reddit and adzerk
if campaign.location:
campaign_country = campaign.location.country
campaign_region = campaign.location.region
if campaign.location.metro:
campaign_metro = int(campaign.location.metro)
else:
campaign_metro = None
if az_flight and az_flight.GeoTargeting:
# special handling for geotargeting of existing flights
# can't update geotargeting through the Flight endpoint, do it manually
existing = az_flight.GeoTargeting[0]
az_geotarget = adzerk_api.GeoTargeting._from_item(existing)
if (campaign.location and
(campaign_country != az_geotarget.CountryCode or
campaign_region != az_geotarget.Region or
campaign_metro != az_geotarget.MetroCode or
az_geotarget.IsExclude)):
# existing geotargeting doesn't match current location
az_geotarget.CountryCode = campaign_country
az_geotarget.Region = campaign_region
az_geotarget.MetroCode = campaign_metro
az_geotarget.IsExclude = False
az_geotarget._send(az_flight.Id)
log_text = 'updated geotargeting to %s' % campaign.location
PromotionLog.add(link, log_text)
elif not campaign.location:
# flight should no longer be geotargeted
az_geotarget._delete(az_flight.Id)
log_text = 'deleted geotargeting'
PromotionLog.add(link, log_text)
# only allow one geotarget per flight
for existing in az_flight.GeoTargeting[1:]:
az_geotarget = adzerk_api.GeoTargeting._from_item(existing)
az_geotarget._delete(az_flight.Id)
# NOTE: need to unset GeoTargeting otherwise it will be added to the
# flight again when we _send updates
az_flight.GeoTargeting = None
elif campaign.location:
# flight endpoint works when a new flight is being created or an
# existing one that didn't have geotargeting is being updated
d.update({
'GeoTargeting': [{
'CountryCode': campaign_country,
'Region': campaign_region,
'MetroCode': campaign_metro,
'IsExclude': False,
}],
})
else:
# no geotargeting, either a new flight is being created or an existing
# flight is being updated that wasn't geotargeted
d.update({
'GeoTargeting': [],
})
if az_flight:
changed = update_changed(az_flight, **d)
change_strs = make_change_strings(changed)
if campaign_overdelivered:
billable = promote.get_billable_impressions(campaign)
over_str = 'overdelivered %s/%s' % (billable, campaign.impressions)
change_strs.append(over_str)
if change_strs:
log_text = 'updated %s: ' % az_flight + ', '.join(change_strs)
else:
log_text = None
else:
d.update({'Name': campaign._fullname})
az_flight = adzerk_api.Flight.create(**d)
campaign.external_flight_id = az_flight.Id
campaign._commit()
PromoCampaignByFlightIdCache.add(campaign)
log_text = 'created %s' % az_flight
if log_text:
PromotionLog.add(link, log_text)
g.log.info(log_text)
if campaign_overdelivered:
campaign.external_flight_overdelivered = True
campaign._commit()
return az_flight
开发者ID:nramadas,项目名称:reddit-plugin-adzerk,代码行数:101,代码来源:adzerkpromote.py
注:本文中的r2.lib.promote.get_billable_impressions函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论