Back to News for Developers

Introducing New Features for Ad Rules Engine

April 25, 2018ByEmily Hahn

The Ad Rules Engine enables partners to build customized solutions for advertisers with a broad set of functions. We're excited to announce our latest updates, including the largest expansion to our filter capability.

Advanced Filters

We've increased the flexibility and functionality of rules by offering an Advanced Filters product to give advertisers more control in field customization.

  • Prefixed Insights Fields: Support multi-level filtering and overriding the rule's time prefix for individual Insights filters. For example, advertisers can now fetch data on parents of ad objects and set fields, such as lifetime_cpc, which will fetch the cpc over the object's lifetime regardless of the rule's time_preset filter.
  • Aggregation: Support aggregating Insights data across multiple ad objects. This allows users to define groups of ad objects for which we compute Insights together as one unit. For example, you can use aggregate (impressions) with an aggregate_id list to fetch the sum of impressions over the list of objects.
  • Formulas: Support arithmetic expressions that include constants, Insights, and numeric Metadata filters. This allows you to customize and derive your own fields. For example, you can now compute the ratio of two metrics or weigh metrics based on some constants. There will also be a list of formula aliases that shortcuts most commonly used formulas; for example, with daily_ratio_spent representing (today_spent / adset.daily_budget).

Action Frequency

With the previous introduction of Advanced Scheduling, we now add support to control how frequently actions, such as changing bid or budget occur.

  • New Execution Option: The action_frequency option lets you specify the minimum amount of time until an action can again be taken on an object by a rule. For example, if the value is 1440, even if the increase budget rule has an advanced schedule to run every 30 minutes and continues to evaluate a certain object to be true, it will only increase that object's budget at most once every day.

Rebalance Budget v2

With feedback from the previous version of our Rebalance Budget product, we have introduced two new use cases.

  • Rebalance without Pause: Previously, all of the rebalance types required the set of matched objects to be paused. This new type NO_PAUSE_PROPORTIONAL allows you to proportionally move budget from the matched set to the unmatched set without pausing the matched object set.
  • Rebalancing on only Matched Objects: This new type MATCHED_ONLY_PROPORTIONAL allows you to only proportionally shift budget among the set of matched objects, or those that match all filters of the rule. This again will not pause the matched object set.

Governed Rules Endpoint

We've added an endpoint that creates an edge relating each ad object to the rules that govern them.

  • /adrules_governed Endpoint: From any ad, ad set, or campaign, this endpoint fetches all rules that by default statically or dynamically govern it. You can also use the extra pass_evaluation filter to further narrow down that list to only rules that would currently evaluate said object to the boolean value specified.

Other Updates

We've made some other incremental updates to the existing platform.

  • More Action Type Breakdowns: Added breakdowns related to offline data. Note: In the future, we will only add the base fields, as you can now derive cost_per metrics for action type breakdowns using advanced filters.
  • More Time Presets: Added presets, such as LAST_28_DAYS to have meaningful parity with our other features, such as attribution window.
  • Account Level History Endpoint: Added the same filtering functionality to this endpoint as that of our Rule History Endpoint. This means that you may now filter results based on object_id and action in addition to hide_no_changes. Further, we have heavily reduced the loading time for this endpoint.