AdWords to teraz Google Ads. Nowa nazwa oddaje pełny zakres usług reklamowych, jakie oferujemy m.in. w wyszukiwarce, sieci reklamowej i YouTube.. Więcej informacji

Obecnie 113 forumowiczów jest online
Obecnie 113 forumowiczów jest online
Dla pytań związanych z funkcjami remarketingu, strategii stawek, Edytor AdWords i skryptów Google Ads.
Poprowadź mnie
star_border
Odpowiedz

[Nowy Skrypt] Sprawdza czy są słowa kluczowe z za niską stawką

[ Edytowane ]
Wszechwiedzący ✭

Cześć,

 

Podsyłam skrypt, który sprwadza czy mamy słowa kluczwe ze statusem: Poniżej pierwszej strony wynkiów.

 

Jeśli takowe znajdzie to wysyła maila.

 

Konfiguracja:

Podaj email.

 

Częstotliwość:

U siebie dałem raz w tygodniu. Myślę, że to wystarczy.

 

@Dominik Myślak wskazał małe błędy w czytelności poprzednich kodów tzn. to gdzie powinno się stawiać emial. 

Dzięki i już poprawione. Myślę, że teraz będzie ok.

 

Pytania? Sugestie?

 

//Required configuration
var email = 'TUTAJ WSTAW EMAIL';
//End of the configuration


var badKeywords = [];

function main() {
validateEmail(email);
if (isSearchActive()) {
findBadKeywords();
var campaignsLog = badKeywords.join(',');
Logger.log(campaignsLog);
sendEmails();
  } else {
throw new Error("This account dosen't have any active search campaigns!")
  }
}

function findBadKeywords() {
  var keywords = AdWordsApp
  .keywords()
  .forDateRange('LAST_7_DAYS')
  .withCondition("Status = ENABLED")
  .withCondition("AdGroupStatus = ENABLED")
  .withCondition("CampaignStatus = ENABLED")
  .withCondition("Impressions > 0")
  .get();
  while(keywords.hasNext()) {
  var keyword = keywords.next();
  var maxCpc = keyword.bidding().getCpc();
  var firstPageCpc = keyword.getFirstPageCpc();
  var kwName = keyword.getText();
  var kwCampaignName = keyword.getCampaign();
  var kwAdgroupName = keyword.getAdGroup();
   if (maxCpc < firstPageCpc) {
     badKeywords.push(kwCampaignName.getName() + "\\" + kwAdgroupName.getName() + "\\" + kwName + ' has the below first page status.'); 
  } 
  }
}
 
function isSearchActive(){
  var searchCampaigns = AdWordsApp
  .campaigns()
  .withCondition('AdvertisingChannelType = SEARCH AND Status = ENABLED')
  .forDateRange('TODAY')
  .get(); 
  if (searchCampaigns.totalNumEntities() > 0) {
    var theResult = true;
  } else {
    var theResult = false;
  }
  var activeSerach = searchCampaigns.totalNumEntities();
  Logger.log('This account has: ' + activeSerach + " active search campaigns.");
  return theResult;
}

function validateEmail(email) {
  var key = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  if (key.test(email) === false) {
    throw new Error('You must eneter a valid email address to run the script!')
}
}

function sendEmails(){
 if (badKeywords[0]) {
   MailApp.sendEmail(email, 
                     AdWordsApp.currentAccount().getName() + ' has ' + badKeywords.length + ' keywords with the below first page status',
                      'Hi, \n\nPlease, see the keyowrds with too low bids: \n\n' + badKeywords.join("\n"));
}
}
Czy moja odpowiedź była pomocna? Jeśli tak, oznacz ją jako „najlepszą odpowiedź”