// Minimum number of clicks to consider "enough data"var CLICKs_THRESHOLD = 2;
function main() { var report = AdWordsApp.report( 'SELECT Query, Clicks, Cost, Ctr, ' + ' Conversions,CampaignId,AdGroupId ' + ' FROM SEARCH_QUERY_PERFORMANCE_REPORT ' + ' WHERE ' + ' Clicks >= ' + CLICKs_THRESHOLD + ' DURING 20140901,20990101'); var rows = report.rows();
var positiveKeywords = {}; var allAdGroupIds = {}; // Iterate through search query and decide whether to // add them as positive keywords (or ignore). while (rows.hasNext()) { var row = rows.next(); if (parseFloat(row['Clicks']) >= 0) { addToMultiMap(positiveKeywords, row['AdGroupId'], row['Query']); allAdGroupIds[row['AdGroupId']] = true; } }
// Copy all the adGroupIds from the object into an array. var adGroupIdList = []; for (var adGroupId in allAdGroupIds) { adGroupIdList.push(adGroupId); }
// Add the keywords as positive to the applicable ad groups. var adGroups = AdWordsApp.adGroups().withIds(adGroupIdList).get(); while (adGroups.hasNext()) { var adGroup = adGroups.next(); if (positiveKeywords[adGroup.getId()]) { for (var i = 0; i < positiveKeywords[adGroup.getId()].length; i++) { adGroup.createKeyword('\"' + positiveKeywords[adGroup.getId()][i] + '\", 0.03, http://www.mysite.com/click-111111-222222?sid=' + adGroup.getName() + positiveKeywords[adGroup.getId()][i] ); } } }}
function addToMultiMap(map, key, value) { if (!map[key]) { map[key] = []; } map[key].push(value);}for (var i = 0; i < positiveKeywords[adGroup.getId()].length; i++) {
adGroup.createKeyword('\"' + positiveKeywords[adGroup.getId()][i]
+ '\"', 0.03, 'http://www.mysite.com/click-111111-222222?sid='
+ adGroup.getName()
+ '&url=http://search.mysite.com/search?keywords='
+ positiveKeywords[adGroup.getId()][i]
);
}
for (var i = 0; i < positiveKeywords[adGroup.getId()].length; i++) {
adGroup.newKeywordBuilder()
.withText('\"' + positiveKeywords[adGroup.getId()][i] + '\"')
.withCpc(0.03)
.withDestinationUrl('http://www.mysite.com/click-111111-222222?sid='
+ adGroup.getName()
+ '&url=http://search.mysite.com/search?keywords='
+ positiveKeywords[adGroup.getId()][i])
.build();
}var url = 'http://www.example.com/keyword=bad text';
var encodedUrl = encodeURI(url);
Logger.log(encodedUrl);