Selecting Your Revenue Events
If you're passing revenue into Facebook's standard events, select the appropriate metric name that contains your purchase count and purchase revenue.
If your revenue data is imported from an MMP such as Adjust or Appsflyer, or if you're manually loading a conversions/revenue file, select the appropriate events columns from your import data. This is the same data that you use in Expressions, in reporting.
Please note that if you change these events, revenue snapshots will need to be recalculated. Changing your Revenue Event or Revenue Amount metric will impact only data moving forward (i.e., mature data will remain on the old event until the new data becomes mature). For this reason, avoid changing these settings once your establish a history for the Ad Set Group.
Choosing Your Lookback Settings
These settings are found in Settings -> Lookback.
Mature vs Immature Revenue
Because revenue from in-app or website events can continue to increase as time goes on for the same date of visit or install (think of it as a snowball), it is helpful to pick a consistent number of days out to measure your revenue cohort performance by. In this way, you standardize the amount of revenue expected at a particular number of days out. This is known as your Mature Revenue and is used to calculate your mature ROAS and mature Cost per Revenue Event.
Before the data reaches this arbitrary number of maturity days, it is considered immature.
AdRules offers management of both Immature Revenue: D1 ROAS (current day), D2 ROAS (yesterday, with revenue thru current day), D3 ROAS (two days ago, with revenue thru current day); and Mature Revenue: ROAS (Mature) and Cost per Revenue Event (Mature).
When you first configure your revenue event settings, you must allow time for revenue snapshots to occur. This means that only D1 data is available for the current day, D2 data becomes available by the second day, D3 on the third, and mature only after the number of Maturity Days have passed. Immature data always references the number of days out from the current day; mature data is frozen in time and is always the full number of Maturity Days – no more, no less – regardless of when in time it occurred.
Spend data used for ROAS calculations is spend on the day of cohorts origination. Examples: D2 is spend yesterday; mature spend is spend on the day 7 days ago, if your Maturity Days are 7. Tailing spend is included only at the point in time the snapshot is generated. Example, tail spend after D2 does not increase on Day 3 and beyond, but D3 will include any additional tail spend.
This is the number of days you’ve standardized on for considering your revenue mature. After this many days have passed, no additional revenue from the given date of cohort origination will be included. Only this number days' worth of revenue and spend will be included, no more, no less. AdRules offers 3 and 7 day options for this setting.
A typical 3 day maturity window might look as follows:
While a 7 day one might look like this
Mature revenue snapshots are frozen in time after the number of Maturity Days elapses. This ensures that data with a larger attribution window – such as Facebooks 28 day attribution – does not impact the time window. This is because AdRules takes the snapshot after the close of the third or seventh days, depending on your setting.
If you've selected a Revenue Event or Revenue Amount metric that comes from your MMP or your Conversion Import, please make sure the data represented by the Event_D column goes at least as far back as your Maturity Days setting. Example, if importing data from your MMP, and you have a 7-day maturity, ensure you're using 7-day cohorts attribution behind that data, and no less.
Days Included In Maturity Average
You can select a number of days, up to 28, to include in your maturity average. The larger number you select, the more mature revenue snapshots will be included in your average, increasing the stability of your lookback data and of your ROAS (Mature) and Cost per Revenue Event (Mature) metrics.
Mininum Ad Age For ROAS Rules
You can opt to require a minimum age of an ad before its data is incorporated into revenue snapshots. Set this to a value long enough to allow the ad to learn or become optimized on Facebook's system. Use this setting only if you have a good understanding of your ad learning phase, and set to 0 if you’re unsure.
Now that you’ve told AdRules about your Revenue Events and Lookback Settings, you’re ready to create powerful rules to pause or reactivate ads, based on their ROAS and Cost per Revenue Event performance.
In addition to upstream events like CPC and CPI, you can choose to pause ads that do not meet your ROAS or Cost per Revenue Event goals. When you use these rules, AdRules calculates the resulting metric based on the Lookback Settings you have supplied. Then, it evaluates the result against your rules. If any of the rules are triggered, the ad will be paused.
In order to help you decide what values to use when creating rules around ROAS and Cost per Revenue Event, AdRules shows the current data based on your lookback settings. Use this data as a guide when setting your rules.
You can see the importance of having a suitable length of time to take a mature average in the sample data above. Use the Days Included In Maturity Average setting to change this. ROAS may fluctuate from day to day, some higher and some lower than your historical averages. It’s helpful to consider multiple days, thus creating a stable average for your mature data.
If an ad shows an exceptional track record, or exceptional early performance, you can opt to leave it running even if it would trigger one of more of your pause rules. Use the Exceptions section for this.
For example, if your target mature ROAS is 15%, and CPC/CPI early metrics are not as valuable to your advertising goals as ROAS is, you can elect to never pause an ad with 15% and greater mature ROAS, even if its CPC/CPI is poor.
Likewise, if an ad shows very promising early performance (5% and greater D1 ROAS, intraday, in the above example), you can opt to let it run regardless of what other pause rules it might trigger.