Zurzeit sind 291 Mitglieder online.
Zurzeit sind 291 Mitglieder online.
Diskutiere hier wie Du effektiver investieren und deinen Return on Investment (ROI) steigern kannst.
Anleitung
favorite_border
Antworten

Adwords Script Budget auf Kontoebene

Rang 7
# 1
Rang 7

Hallo zusammen,

 

ich wollte mal fragen, ob jemand evtl. ein Adwords Script kennt, bei dem man ein Budget für das gesamte Konto angeben kann und bei Erreichen dieser Budgetgrenze alle aktiven Kampagnen pausiert werden bzw. man eine Benachrichtigung erhält?

 

Vielen Dank im Voraus!

5 Expertenantwort(en)verified_user

Akzeptierte Lösungen
Als beste Antwort markiert.
Lösung
Akzeptiert von Themenautor Freddy P
September 2015

Betreff: Adwords Script Budget auf Kontoebene

[ Bearbeitet ]
Top Beitragender
# 5
Top Beitragender

Hallo Freddy,

 

schau mal ob das folgende Script dein Zweck erfüllt. Es pausiert alle aktiven Kampagnen und verschickt eine Mail, sofern die Kosten aller Kampagnen die von die gesetzte Budgegrenze ("maxbudget") überschritten haben. Im Script selbst einfach die Settings (Mailadresse + Maxbudget) anpassen und es entsprechend stündlich ausführen lassen. Bitte nutze es mit Bedacht und kontrolliere anfänglich die korrekte Ausführung, so dass nichts schief geht!

 

function main() {
  
  /** SETTINGS **/
  
  var mailaddy = "deinemail@mail.com"; // Mailadress in ""
  var maxbudget = 140; // Budgegrenze ohne Währung

  
  /** PROGRESS **/
  
  var totalcosts = 0;
  var campaignsIterator = AdWordsApp.campaigns()
       .withCondition("CampaignStatus = ACTIVE")
       .get(); 

  if (campaignsIterator.hasNext()) {
 
    while (campaignsIterator.hasNext()) {
      var campaign = campaignsIterator.next();
      var stats = campaign.getStatsFor('TODAY');
      var campaigncosts = stats.getCost();
      
      totalcosts += campaigncosts;
      Logger.log(campaign.getName() + " -> Costs = " + campaigncosts);      
      
      if(!campaignsIterator.hasNext()) {
  
        Logger.log("Total Costs - > '" + totalcosts);
		Logger.log("Total Budget - > '" + maxbudget);

          if (maxbudget<=totalcosts){    
            Logger.log("Action..: '");
            
            var campaignsIterator2 = AdWordsApp.campaigns()
            .withCondition("CampaignStatus = ACTIVE")
            .get();
  
			  if (campaignsIterator2.hasNext()) {
			        while (campaignsIterator2.hasNext()) {
			          var campaign2 = campaignsIterator2.next();
                      
                      //Campaign pausing
                      Logger.log("Would pause this campaign - > '" + campaign2.getName());
			          campaign2.pause();
			        }
			  }
		
          //Notification 
          Logger.log("Would send mail");
          MailApp.sendEmail(mailaddy,"Campaigns paused", "Costs today: " + totalcosts);
            
          }
        }
      
    }  
  } 

}

 

Viele Grüße

Mario

Lösung in ursprünglichem Beitrag anzeigen


Alle Antworten

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 2
Top Beitragender
Hallo,

das sollte es nicht geben. "Mach Geld alle" egal in welcher Kampagne ist nicht der Sinn von Adwords. Das Budget wird beschränkt durch das Tagesbudget aller Kampagnen.

Gruß en001

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 3
Top Beitragender
Hallo Freddy,

Du kannst zwar ein Konto Budget angeben, bzw. ein "Gemeinsames Budget" (unter Gemeinsame Bibliothek) dem Du dann bestimmte Kampagnen zuweisen kannst, aber mir ist kein Script bekannt, dass dann Dir eine Info schickt, wenn es leer ist.

Das "Pausieren" Problem würde sich dann allerdings schon von alleine Lösen: Budget alle = es werden keine Anzeigen mehr geschaltet.

Aber das ist alles nicht das was Du willst.
Schaue mal hier: https://groups.google.com/forum/#!forum/adwords-scripts vielleicht findest Du dort eine Antwort. Wenn Du eine hast, teile sie hier gerne!

Grüße
Maren
Find me on: LinkedIn | Xing | maren-ockels.com

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 4
Top Beitragender
Hallo Freddy,

evtl. können wir Dir besser helfen, wenn Du uns schilderst, für welchen Fall bzw. welche Konstellation Du das benötigst.

Denn mir fehlt gerade die Fantasie, wofür das gut sein sollte. Du musst ja ohnehin ein Tagesbudget einrichten. Und Google sorgt eigenständig dafür, dass das auf Sicht eines Monats nicht überschritten wird.
Als beste Antwort markiert.
Lösung
Akzeptiert von Themenautor Freddy P
September 2015

Betreff: Adwords Script Budget auf Kontoebene

[ Bearbeitet ]
Top Beitragender
# 5
Top Beitragender

Hallo Freddy,

 

schau mal ob das folgende Script dein Zweck erfüllt. Es pausiert alle aktiven Kampagnen und verschickt eine Mail, sofern die Kosten aller Kampagnen die von die gesetzte Budgegrenze ("maxbudget") überschritten haben. Im Script selbst einfach die Settings (Mailadresse + Maxbudget) anpassen und es entsprechend stündlich ausführen lassen. Bitte nutze es mit Bedacht und kontrolliere anfänglich die korrekte Ausführung, so dass nichts schief geht!

 

function main() {
  
  /** SETTINGS **/
  
  var mailaddy = "deinemail@mail.com"; // Mailadress in ""
  var maxbudget = 140; // Budgegrenze ohne Währung

  
  /** PROGRESS **/
  
  var totalcosts = 0;
  var campaignsIterator = AdWordsApp.campaigns()
       .withCondition("CampaignStatus = ACTIVE")
       .get(); 

  if (campaignsIterator.hasNext()) {
 
    while (campaignsIterator.hasNext()) {
      var campaign = campaignsIterator.next();
      var stats = campaign.getStatsFor('TODAY');
      var campaigncosts = stats.getCost();
      
      totalcosts += campaigncosts;
      Logger.log(campaign.getName() + " -> Costs = " + campaigncosts);      
      
      if(!campaignsIterator.hasNext()) {
  
        Logger.log("Total Costs - > '" + totalcosts);
		Logger.log("Total Budget - > '" + maxbudget);

          if (maxbudget<=totalcosts){    
            Logger.log("Action..: '");
            
            var campaignsIterator2 = AdWordsApp.campaigns()
            .withCondition("CampaignStatus = ACTIVE")
            .get();
  
			  if (campaignsIterator2.hasNext()) {
			        while (campaignsIterator2.hasNext()) {
			          var campaign2 = campaignsIterator2.next();
                      
                      //Campaign pausing
                      Logger.log("Would pause this campaign - > '" + campaign2.getName());
			          campaign2.pause();
			        }
			  }
		
          //Notification 
          Logger.log("Would send mail");
          MailApp.sendEmail(mailaddy,"Campaigns paused", "Costs today: " + totalcosts);
            
          }
        }
      
    }  
  } 

}

 

Viele Grüße

Mario

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 6
Top Beitragender
Mario,

ist das Script aus Deiner Feder?

Ciao
Holger

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 7
Top Beitragender
Moin Holger,

Ja, warum?

Gruß
Mario

Betreff: Adwords Script Budget auf Kontoebene

Rang 7
# 8
Rang 7

Die Frage war ein wenig ungenau formuliert. Mit dem Budget für das gesamte Konto meine ich ein Monatsbudget.

 

 

@makato Ein gemeinsames Budget kommt nicht in Frage, da ansonsten zu viel Geld für die unwichtigen Kampagnen ausgegeben wird und wichtige Anzeigen am Tagesende aufgrund des aufgebrauchten Budgets nicht mehr geschaltet werden.

 

@e-Rebell Das sieht interessant aus. Wie ich es sehe, handelt es sich bei dem Skript um eine tägliche Budgetgrenze. Oder? Wäre es auch möglich ein Monatsbudget anzugeben?

Betreff: Adwords Script Budget auf Kontoebene

Top Beitragender
# 9
Top Beitragender

Hallo Freddy,

 

ja - das ist auch möglich. Das Script holt sich mit dieser Zeile die Statistiken von Zeitraum xyz. TODAY müsstest du entsprechend umändern in LAST_30_DAYS oder THIS_MONTH.

 

var stats = campaign.getStatsFor("TODAY");

zu:

 

var stats = campaign.getStatsFor("THIS_MONTH");

 

Hier sind noch weitere Zeiträume (getstatsfor):

 

https://developers.google.com/adwords/scripts/docs/reference/adwordsapp/adwordsapp_campaign

 

Zusätzlich betrachtet das Script nur die aktiven Kampagnen. Hier sollte man noch den "filter" eimal ausklammern oder löschen, um auch die pausierten Kampagnen mit einzubeziehen. 

 

  .withCondition("CampaignStatus = ACTIVE")

zu:

 

  //.withCondition("CampaignStatus = ACTIVE")

 

Insgesamt also so: 

 

 
function main() {
  
  /** SETTINGS **/
  
  var mailaddy = "deinemail@mail.com"; // Mailadress in ""
  var maxbudget = 140; // Budgegrenze ohne Währung

  
  /** PROGRESS **/
  
  var totalcosts = 0;
  var campaignsIterator = AdWordsApp.campaigns()
       .get(); 

  if (campaignsIterator.hasNext()) {
 
    while (campaignsIterator.hasNext()) {
      var campaign = campaignsIterator.next();
      var stats = campaign.getStatsFor('THIS_MONTH');
      var campaigncosts = stats.getCost();
      
      totalcosts += campaigncosts;
      Logger.log(campaign.getName() + " -> Costs = " + campaigncosts);      
      
      if(!campaignsIterator.hasNext()) {
  
        Logger.log("Total Costs - > '" + totalcosts);
		Logger.log("Total Budget - > '" + maxbudget);

          if (maxbudget<=totalcosts){    
            Logger.log("Action..: '");
            
            var campaignsIterator2 = AdWordsApp.campaigns()
                    .get();
  
			  if (campaignsIterator2.hasNext()) {
			        while (campaignsIterator2.hasNext()) {
			          var campaign2 = campaignsIterator2.next();
                      
                      //Campaign pausing
                      Logger.log("Would pause this campaign - > '" + campaign2.getName());
			          campaign2.pause();
			        }
			  }
		
          //Notification 
          Logger.log("Would send mail");
          MailApp.sendEmail(mailaddy,"Campaigns paused", "Costs today: " + totalcosts);
            
          }
        }
      
    }  
  } 

}

   

Gruß

Mario  

Betreff: Adwords Script Budget auf Kontoebene

Rang 7
# 10
Rang 7
Hey Mario, vielen Dank für deine Hilfe. Ich werde das Skript mal einbauen und hoffen das es funktioniert Smiley (fröhlich)