Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function main() {
- var option = {
- impressions: '> 1',
- clicks: '> 1',
- conversions: '> 1',
- ctr: '> 0.1',
- costPerConversion: '> 0',
- conversionRate: '> 0.1',
- labelName: 'CONVERTER',
- dayspan: 90
- }
- Logger.log("Options Defined");
- // Fetch ads accoring to criteria in var options from AD_PERFORMANCE_REPORT (link below)
- // https://developers.google.com/adwords/api/docs/appendix/reports/ad-performance-report
- var report = AdWordsApp.report(
- 'SELECT Id, AdGroupId ' +
- ' FROM AD_PERFORMANCE_REPORT' +
- ' WHERE Impressions ' + option.impressions +
- ' AND Clicks ' + option.clicks +
- ' AND Conversions ' + option.conversions +
- ' AND Ctr ' + option.ctr +
- ' AND CostPerConversion ' + option.costPerConversion +
- ' AND ConversionRate ' + option.conversionRate +
- ' DURING ' + formatDateRange(option.dayspan)
- );
- Logger.log("Queries Run On Defined Options");
- var rows = report.rows();
- // arrange results in array with id pairs
- var ids = [];
- while (rows.hasNext()) {
- var row = rows.next();
- ids.push(row['AdGroupId'],row['Id']);
- }
- Logger.log("Arranged Results In Array");
- // select all ads which you have qualified
- var ads = AdWordsApp
- .ads()
- .withIds(ids)
- .get();
- Logger.log("Selecting Qualified Ads");
- // apply labels
- while (ads.hasNext()) {
- var ad = ads.next();
- ad.applyLabel(option.labelName)
- }
- }
- Logger.log("Applying Labels");
- // Proper date range for reports. Accepts a number of days. Will count from today backwards
- function formatDateRange(dayspan) {
- var msPerDay = 1000 * 60 * 60 * 24;
- var now = new Date();
- return Utilities.formatDate(new Date(now.getTime() - (dayspan * msPerDay)), AdWordsApp.currentAccount().getTimeZone(), "YYYYMMdd") + ',' + Utilities.formatDate(now, AdWordsApp.currentAccount().getTimeZone(), "YYYYMMdd");
- }
- Logger.log("Completed Labeling");
Advertisement
Add Comment
Please, Sign In to add comment