I am lookin for a solution to get email alerts. Report has to include campaign name CPA and cost when last 7 days cpa hit target. On internet I have found script which I have modified a bit. there are two problems.
1. Results are not in a table.
2. I get each variable on a different email.
I guess that I have missed a step before email sending.
function main(){
//Define three variables: cpalimit, emailaddress, and timerange (choices are: TODAY,
//YESTERDAY, LAST_7_DAYS, THIS_WEEK_SUN_TODAY, LAST_WEEK, LAST_14_DAYS, LAST_30_DAYS,
//LAST_BUSINESS_WEEK, LAST_WEEK_SUN_SAT, THIS_MONTH, LAST_MONTH, ALL_TIME)
var cpalimit = 60;
var timerange = "LAST_7_DAYS"
//Array definition and get data
var numcampaigns=0;
var campaignNames =[];
var campaignCost =[];
var campaignCpa =[];
var campaignIterator = AdWordsApp.campaigns()
.forDateRange("TODAY")
.withCondition("Status = ACTIVE")
.get();
while (campaignIterator.hasNext()) {
var campaign = campaignIterator.next();
var name = campaign.getName();
var stats = campaign.getStatsFor(timerange);
var Conv = stats.getConversions();
var Cost = stats.getCost();
var cpa = (Cost /Conv);
if(Conv>0){
if(cpa>cpalimit){
campaignNames.push(name);
}
}
if(Conv==0){
if(Cost>cpalimit){
campaignNames.push(name);
}
}
if(Conv>0){
if(cpa>cpalimit){
campaignCost.push(Cost);
}
}
if(Conv==0){
if(Cost>cpalimit){
campaignCost.push(Cost);
}
}
if(Conv>0){
if(cpa>cpalimit){
campaignCpa.push(cpa);
}
}
if(Conv==0){
if(Cost>cpalimit){
campaignCpa.push(cpa);
}
}
//from here I am not sure how to put results into table and send it via email.
var recipient = emailaddress;
var subject = "Campaign Over CPA Limit";
var htmlheader = "Campaigns over CPA Limit:";
var html = [];
for(var i=0; i<((campaignNames.length)+1); i++){
html.push(
"<html>",
"<br>",
"<br>",
campaignNames[i],
"</html>"
);
}
var htmlCost = [];
for(var a=0; a<((campaignCost.length)+1); a++){
htmlCost.push(
"<html>",
"<br>",
"<br>",
campaignCost[a],
"</html>"
);
}
var htmlCpa = [];
for(var b=0; b<((campaignCpa.length)+1); b++){
htmlCpa.push(
"<html>",
"<br>",
"<br>",
campaignCpa[b],
"</html>"
);
}
if(campaignNames.length>0){
MailApp.sendEmail(recipient, subject, " ", {htmlBody: htmlheader+ html.join("")+ htmlCost.join("")+ htmlCpa.join("") });
}
else{
MailApp.sendEmail(recipient, "Campaigns are Below CPA Goal", "All active campaigns are below CPA goal.");
}
}
}