Ad text relevancy is important to keeping your audience engaged, and in some cases can dramatically improve key metrics like click-through rate (CTR). Whether it’s advertising your latest promotion, lowest sale price, or resonating with an audience interested in up-to-date stock prices, there are many scenarios when switching up your ad text is not only valuable but imperative.
Constantly updating ad text has its challenges. Keeping up with these updates can be time-consuming, especially for large accounts. Additionally, ad text updates are not always timely as they need to go through the Google review process which can take up to 24 hours. When a last-minute promotion only lasts a day, the update to your ad text can become moot as it may never reach the SERP. A great workaround to update ad copy in a timely manner is through utilizing dynamic parameters.
Not only can dynamic parameters expedite ad copy updates, but they can also improve key metrics in your account. On average, we have seen CTR double in ad groups where we’ve tested dynamic parameter implementation. One of our success stories lies with a gold buyer. The price of gold changes daily, and can greatly impact a consumer’s decision as to whether or not to sell their gold. As a test, we started pulling the daily gold price into our ad copy with a dynamic parameter.
The results were fantastic. Over one month, we saw CTR increase from 0.84% to 1.75%; a 107% improvement. What’s even better is that we saw conversions increase by 300%, indicating that the quality of the traffic sent to the site was high, and that visitors were farther down the decision-making funnel.
Dynamic Parameters can be set up using an AdWords script. For the non-developers out there, we broke down the process:
The parameter is set up similar to dynamic keyword insertion. Put a default number into the param in the event that there is not a value to pull through the script (in the example above, the default value is 10).
The param1 info is where you will update your data. In this case, we are changing the dog collar price to $5.50.
And click the +Script button.
/************************************************
* Update Ad Params by Ad Groups
************************************************/
var SPREADSHEET_URL = “https://docs.google.com/ “;
var SET_PARAM1 = true;
var SET_PARAM2 = false;
var DATA_RANGE = ‘A:D’; // A – CampaignName, B – AdGroupName,
// C – Param1, D – Param2
function main() {
var spreadsheet = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
var allSheets = spreadsheet.getSheets();
var allData = [];
for(var i in allSheets) {
var sheet = allSheets[i];
var data = sheet.getRange(DATA_RANGE).getValues();
data.shift(); //get rid of headers
allData = allData.concat(data);
}
var allDataHash = {};
for(var i in allData) {
var row = allData[i];
if(row[0] === ”) { continue; }
var rowKey = [row[0],row[1]].join(‘~~!~~’);
allDataHash[rowKey] = { param1 : row[2], param2: row[3] };
}
var kwIter = AdWordsApp.keywords()
.withCondition(‘CampaignStatus = ENABLED’)
.withCondition(‘AdGroupStatus = ENABLED’)
.withCondition(‘Status = ENABLED’)
.get();
while(kwIter.hasNext()) {
var kw = kwIter.next();
var campName = kw.getCampaign().getName();
var adGroupName = kw.getAdGroup().getName();
var rowKey = [campName,adGroupName].join(‘~~!~~’);
if(allDataHash[rowKey]) {
if(SET_PARAM1) { kw.setAdParam(1, allDataHash[rowKey].param1); }
if(SET_PARAM2) { kw.setAdParam(2, allDataHash[rowKey].param2); }
}
}
}
And, voila! The result will load with your ad modified for how it is queried on the SERP:
In our tests, AdWords dynamic parameters have proven to be an extremely effective and easy to way to improve your ad performance. Dynamic parameters:
Check out some more great AdWords scripts here.
Comments
Please read our Comment Policy before commenting.