Howdy and thanks for a good forum.
So I'm getting data for a lot of different periods. This was setup using AdsApp.currentAccount() but I would now like to run it on just a selection of campaigns. I have below tried using campaign name in a separate function but of course I can use labels instead if it's considered better, what would you way is best solution?
Previous working code:
var currentAccount = AdsApp.currentAccount();
var day_2_1_ago_stats= currentAccount.getStatsFor(date_range2to1Daysago);
var day_2_1_ago_cost = Math.round(day_2_1_ago_stats.getCost());
var day_32_ago_stats = currentAccount.getStatsFor(date_range32to32Daysago);
var acc_statsYesterday = currentAccount.getStatsFor('YESTERDAY');
var acc_costYesterday = Math.round(acc_statsYesterday.getCost());
var day_32_ago_impressions = Math.round(day_32_ago_stats.getImpressions());
var yesterday_impresssion = Math.round(acc_statsYesterday.getImpressions());
...
Seems best option would be to build a function to collect data for each dates and for each type of stats? I can only return for example cost in one function and to return impressions I have to build another function, correct?
Considered solution could be something like:
var day_2_1_ago_cost = campaignCosts(campaignName,date_range2to1Daysago)
function campaignCosts(campaignName,date_range2to1Daysago) {
var campaignIterator = AdsApp.campaigns()
.withCondition("CampaignName CONTAINS '" + campaignName + "'")
.get();
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var stats = campaign.getStatsFor(date_range2to1Daysago);
var cost = stats.getCost();
return cost;
}
}
Secondly in the above function the date range won't work, it's setup like:
var date_range2to1Daysago = date2daysago + ', ' + yesterday;
and will look like: 20200301, 20200302
Is there a way to "convert" these to the correct format so it works within var stats = campaign.getStatsFor(date_range2to1Daysago);
using the date as two separate strings, "START" and "END" works, like this: var stats = campaign.getStatsFor(date2daysago,yesterday);
However I've already created lots of different date ranges already in use and I prefer to continue use these.
Thanks in advance