Jump to content

David Z

Approved members
  • Posts

  • Joined

  • Last visited

About David Z

David Z's Achievements


Newbie (1/5)



  1. Thanks for the follow up. We have been running these accelerated campaigns so far without any hitches. We have started, ended and extended the campaigns in many instances and saw no weird anomalies. As I mentioned earlier, from what I was able to identify in the code (which seems to be corroborated in your blog) is that during maintenance, campaigns are first filtered by end dates, then impression limits, at which case the status flag is updated. The status flag is then checked during delivery. So extending the end date or impressions will be updated during the next maintenance period. I will look into a pull request.
  2. I wanted to bring this up as possible change to the way RA handles Override (previously "Exclusive") campaigns. First, I don't really know why that name was changed, as it is not a very good description for this type of campaign. Basically, the difference between contract and override is that the former will try to evenly distribute delivery over a period of time, while the latter will maximize delivery at a higher priority -- either until an end date or until the number of impressions has expired (but not both). And that leads to my main point. Today, it has become more popular, especially with social media site like FB and Twitter to have what are called Accelerated Campaigns. That is, you supply an end date and maximum budget, and they will attempt to fill inventory until the end date OR the budget has been reached. It does not guarantee all the impressions are delivered, but that's okay. You're only charged for what was delivered during the campaign flight dates. As we know RA Override campaigns are limited to choosing only one or the other -- an end date or maximum impressions -- but not both. I'm not sure why this restriction was ever imposed, since these exclusive campaigns are always executed prior to the contract or remnant campaigns. But yhis limitation has been a pain point for us and others I have spoken with. The reason why a standard contract campaign is not suitable for replacing override campaigns is that often times you want to fill ALL inventory as soon as possible, and contract campaigns simply don't do that. Digging into the code and RA's delivery algorithms, I found that both end date and capping are treated as mutually exclusive limitations. Meaning, the delivery and maintenance algorithms don't impose any restrictions whatsoever between the end date and impression limits. In fact, it turns out that this limitation is imposed only by the UI campaign form, not the backend algorithms. So once I was able to disable those form restrictions, I was able to create what I am now calling Accelerated campaigns which allow me to impose end dates along with maximum impressions, clicks. or conversions. I think this feature would be very valuable to the rest of the community, and so I wanted to bring forth a conversation to see if this is something we should consider employing. What I am recommending is: 1. Change the campaign name from "Override" to "Accelerated". 2. Remove the limitation in the front-end UI for the campaign form so that both end-date / delivery limits may be specified for Accelerated campaigns. In the meantime, for those of you who are anxious to create Accelerate campaigns and want to hack the code and test it, it only requires two simple changes: 1. /www/admin/campaign-edit.php, around line 730, comment out the OX_CAMPAIGN_TYPE_CONTRACT_EXCLUSIVE or OX_CAMPAIGN_TYPE_OVERRIDE campaign types (depending on which version you are on. This code enforces unlimited delivery when an end date is specified. // If this is a remnant, ecpm or exclusive campaign with an expiry date, set the target's to unlimited if (!empty($expire) && ($aFields['campaign_type'] == OX_CAMPAIGN_TYPE_REMNANT || $aFields['campaign_type'] == OX_CAMPAIGN_TYPE_ECPM /*|| $aFields['campaign_type'] == OX_CAMPAIGN_TYPE_CONTRACT_EXCLUSIVE*/) // REMOVE EXCLUSIVE ) { $aFields['impressions'] = $aFields['clicks'] = $aFields['conversions'] = -1; } else { 2. /www/admin/assets/js/ox.ui.js, around line 485, comment out the OX_CAMPAIGN_TYPE_CONTRACT_EXCLUSIVE or OX_CAMPAIGN_TYPE_OVERRIDE campaign types (depending on which version you are on. This JS code in function updateCampaignDateAndLimitsAndType() disables the end date when impression limits are specified. if (campaignType == CAMPAIGN_TYPE_REMNANT || campaignType == CAMPAIGN_TYPE_ECPM /*|| campaignType == CAMPAIGN_TYPE_CONTRACT_EXCLUSIVE*/) // REMOVE EXCLUSIVE { $("#excl-limit-date-both-set, #low-limit-date-both-set, #ecpm-limit-date-both-set").hide();
  • Create New...