Follow

Creating Optimization Rules in advanced mode

This article will explain how to write a new rule in the adCore rule engine (Automation Rules) in Advanced mode. 

You can read more about how to attach rules to your campaigns HERE and more about the different rules already available in the engine HERE 

Make sure you are in the Campaigns Tab, under 'Automation Rules' in the left menu option.

 

automation_rules.png

To write a new rule, start by clicking on the add rule button to open a drop down menu.

Please note: This feature is only available to adCore AGENCY plan users.

 

add_rules.png

 

 

 

What would you like to do next? Pause ads? Change bids? All the options are clearly listed in the drop down menu.  Choose one, click on it, and then you can either add a new rule or choose existing rules

change_campaign_budget_.png

 

To write a new rule click on the icon "+ New Rule"

You can create rules in simple mode or advance mode

In the advanced mode, click on ‘r # reference’ to see the language you’ll need in order to write your rules.

advanced.png

The programming language is made up of constants, functions and variables.

Constants are fixed values.

Variables refer to characteristics, numbers, or quantities that are taken from AdWords. The terms that open up in each rule are related to the attribute you wish to change, as well as the parent attribute.

Functions are preset routines that perform certain tasks. You can use these functions to take certain actions on your requested parameters.

programiin_language.png

 

 

 Click on the question marks for  detailed descriptions on what each function does. 

 

question_mark.png

 

 You are now ready to start writing your rule. 

  • Give your rule a meaningful name

  • Set your rule as Public or Private: Private rules can only be seen or used by other users in your AGENCY plan account.  Public rules can be used, and copied by all adCore users. Once a rule is public, it cannot be edited.

  • Write a detailed description (in words) of what the rule does. Bear in mind that others will use your rule so make sure the description is as clear as possible. Example: This rule will pause all ad groups that have a cost greater than 2 euros.

  • Set the value for the new bid. 

  • Set the requirements in which the rule will make the requested changes. 

  • Choose the periods of time the rule should apply to. If you click more than one period, adCore will pull reports for all selected periods.

  • Set the frequency you want the rule to run.

advanced_rules.png

 

The best way to learn the Rule Engine's programming language is through examples. Please take the time to study the examples below, click on the help icons throughout the Engine, try the sample questions below and feel free to send us a ticket if you need more help.

 

Example 1: 

 

In the example below adCore will change the keyword bids so keywords will convert at the campaign goal. The requirement asks adCore to only change bids if the keyword triggered at least 20 impressions.

Additionally, request that adCore check these requirements for the last 30 days and the last 90 days. If adCore finds keywords that match the requirement in the last 30 days, it will change the bids for those keywords. Then check keywords in the last 90 days, for any keyword that matches the requirement and change those as well. If adCore finds a keywords that meets the requirement for both time periods it will only change the bid once.

This rule will run every day. 

 

keyword_bid.png

 

Example 2:

 

Change your ad group bids to make your ad groups appear in a certain average position by using the function named “NumTarget” and let adCore change your bids accordingly. As you can see in the r# reference, this function takes a few arguments:

 

To use it you’ll need to fill in:

  1. a number (the current position you appear in now)

  2. a target number (the position you’d like to be in)

  3. a factor (a numerical percentage that will make the bid changes more gradual)

  4. a maximum range (a numerical percentage that puts a cap on the calculation).

This function can be used to create many different rules, but in this example we are using it to change the ad group level bid so that the ad group can be in 3rd position. To do so, we will use the function and fill in the information required:

fnNumTarget(agPos, 3,0.5,1)

  1. “num” in the above example is the ad group Position (agPos) which will take the current position of each ad group from the AdWords campaign.  

  2. num_target of 3 means we are attempting to make all the ad groups be in position 3.

  3. A factor of 0.5 (referring to 50%), will make sure the calculation gives a result that is 50% smaller.

Given a situation in which the function above didn’t have a factor and would return a result of 2.0 the bid for that adGroup will be multiplied by 2, doubling the bid. *Note that in the function below 1 = 100% thus no factor)*

fnNumTarget(agPos, 3,1,1) = 2

Given the function below, that does have a factor of 0.5, instead of a result of 2.0 you would get a result of 1.5 because the factor multiplies the increase. (Instead of increasing the bid to double what it was, you are increasing it by half that… one and a half)

fnNumTarget(agPos, 3,0.5,1) = 1.5

4.  The max_range- also needs to be referred to in percentages, and represents the maximum increase that can happen. If the difference in position is so great that the bid needs to change drastically, capping the change might be wise. In the example above, there is no cap. 1 represents 100%.

Now that the rule is written, I can put it in to the engine and watch it work its magic.   

 

rules.png

 

If you feel it’s necessary, you could add a requirement and ask adCore to only change the ad-group bid if they have enough statistics, say 10 clicks. 

 

rule2.png

 

We recommend that you try to answer the following examples to practice with the Rule Engine: 

 

1) Change ad-group bid to meet 3rd position, make sure you have at least 5 clicks

Set

 

 

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

2) Pause ad-groups where we had no conversions in the last 30d and the campaign was active for at least 28d

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

3) Pause ads where the ad CTR is lower than the ad-group CTR and we had at least 5 calculated goal count

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

4) Change keyword bid to meet our goal + add quality score factor. Only for keywords with at least 2 calculated goal count

Set

 

 

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ]1yr

 

5) Exclude managed placements where goal expected goal is equal to or greater than 5 and we had no actual goal count

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

6) Add auto placements where we had at least 2 clicks in last 30d

Req.

 

 

Period

[  ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

 

The solutions can be found below:

 

 

1) Change ad-group bid to meet 3rd position, make sure you have at least 5 clicks

 

Set

 fnNumTarget(agPos, 3,0.5,1)

 

Req.

 (agClicks>=5)

 

Period

[ X ]1d  [  ]7d  [  ]30d  [  ]90d  [  ] 1yr

 

 

2) Pause ad-groups where we had no conversions in the last 30d and the campaign was active for at least 28d

 

Req.

 (agConv=0) and (fnCampActiveDays(30)>=28)

 

Period

[  ]1d  [  ]7d  [X]30d  [  ]90d  [  ] 1yr

 

 

3) Pause ads where the ad CTR is lower than the ad-group CTR and we had at least 5 calculated goal count

 

Req.

 (adStatus=ACTIVE) and ((adClicks/adImpr)<(agClicks/agImpr)) and (fnGoalCountCalc(5)>=5)

 

Period

[  ]1d   [ x]7d  [x]30d  [x]90d  [x] 1yr

 

  

4) Change keyword bid to meet our goal + add quality score factor. Only for keywords with at least 2 calculated goal count

 

Set

 fnBidToGoal()*fnBidQualityFactor(mid)

 

Req.

 (fnGoalCountCalc(2)>=2)

 

Period

[  ]1d [ x]7d  [x]30d  [x]90d  [x] 1yr

 

 

5) Exclude managed placements where goal expected goal is equal to or greater than 5 and we had no actual goal count

 

Req.

 (fnGoalCountExp()>=5) and (fnGoalCountAct()=0)

 

Period

[  ]1d [ x]7d  [x]30d  [x]90d  [x] 1yr

 

 

 6) Add auto placements where we had at least 2 clicks in last 30d

 

Req.

  (plAutClicks>=2)

 

Period

[  ]1d  [  ]7d  [x]30d  [  ]90d  [  ] 1yr

 

Congratulations! You are now ready for some more advanced examples, please visit the Advanced Users Guide

 

 

 

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

Comments

Powered by Zendesk