Kundencenter-Skripts

Mithilfe der Klasse MccApp in AdWords-Skripts können Sie Konten verwalten, die in Ihrem Kundencenterkonto verknüpft sind. Dadurch ist es möglich, alle Konten von Werbetreibenden mit einem einzigen Skript zu verwalten. Sie müssen also nicht für jedes Konto separate Skripts erstellen. Dies wird besonders häufig für Berichte auf Kundencenterebene genutzt. In unserem Solutions Center finden Sie weitere Fallbeispiele für die Verwendung im Kundencenter.

Kontenliste abrufen

Mit der Methode accounts lassen sich alle im Kundencenter verwalteten Konten (mit Ausnahme von AdWords Express-Konten) abrufen. Ein Beispiel:

var accountSelector = MccApp.accounts()
    .withCondition("Impressions > 100")
    .forDateRange("LAST_MONTH")
    .orderBy("Clicks DESC");

var accountIterator = accountSelector.get();

Durch den Aufruf von "accounts" wird standardmäßig eine Liste aller Kundenkonten in der Kundencenterhierarchie abgerufen. Mit der Methode withLimit der Klasse ManagedAccountSelector kann jedoch die Anzahl der vom Skript abgerufenen Konten eingeschränkt werden. Eine andere Möglichkeit ist, die Konten anhand der Kundennummer mithilfe der Methode withIds auszuwählen:

var accountSelector = MccApp.accounts()
    .withIds(['918-501-8835', '320-368-4437', '925-591-3280']);

Mit Kundenkonten arbeiten

Nachdem die Kundenkonten abgerufen wurden, können sie mit den Methoden hasNext und next von ManagedAccountIterator iteriert werden. Der Ausführungskontext muss mit der Methode select zu einem Kundenkonto umgeschaltet werden. Nach Auswahl eines Kundenkontos gelten alle weiteren API-Aufrufe für dieses Kundenkonto, bis explizit ein anderes Konto ausgewählt wird. Beispiel:

// Keep track of the MCC account for future reference.
var mccAccount = AdWordsApp.currentAccount();

// Select your accounts
...

// Iterate through the list of accounts
while (accountIterator.hasNext()) {
  var account = accountIterator.next();

  // Select the client account.
  MccApp.select(account);

  // Select campaigns under the client account
  var campaignIterator = AdWordsApp.campaigns().get();

  // Operate on client account
  ...
}

// Switch back to MCC account
MccApp.select(mccAccount);

Mit mehreren Konten gleichzeitig arbeiten

Mit AdWords-Skripts können mithilfe der Methode executeInParallel der Klasse ManagedAccountSelector mehrere Kundenkonten gleichzeitig bearbeitet werden. Die Methode executeInParallel hat die folgende Signatur:

function executeInParallel(functionName, optionalCallbackFunctionName, optionalInput);

Die Methode executeInParallel führt eine in functionName angegebene Funktion für jedes ManagedAccount aus, das mit ManagedAccountSelector übereinstimmt. Sobald alle Konten verarbeitet sind, wird eine ggf. in optionalCallbackFunctionName angegebene Rückruffunktion einmal ausgeführt. Dadurch wird ein Array aller Response-Objekte als Argument für die weitere Verarbeitung übergeben. Ein typisches Anwendungsbeispiel:

function main() {
  var accountSelector = MccApp.accounts()
      .withLimit(50)
      .withCondition("Impressions > 100")
      .forDateRange("LAST_MONTH")
      .orderBy("Clicks DESC");

  accountSelector.executeInParallel("processClientAccount", "afterProcessAllClientAccounts");
}

function processClientAccount() {
  var clientAccount = AdWordsApp.currentAccount();

  // Process your client account here.
  ...

  // optionally, return a result, as a text.
  return "";
}

function afterProcessAllClientAccounts(results) {
  for (var i = 0; i < results.length; i++) {
    var result = results[i].getReturnValue();
    // Process the result further
    …
  }
}

Die in functionName angegebene Funktion akzeptiert optional ein String-Argument (optionalInput). Dieser Parameter kann verwendet werden, um an alle parallelen Methoden, die von der Methode executeInParallel aufgerufen werden, einen zusätzlichen Parameter zu übergeben. Beispiel:

function main() {
  var accountSelector = MccApp.accounts().withIds([1234567890, 3456787890]);
  var sharedParameter = "INSERT_SHARED_PARAMETER_HERE";
  accountSelector.executeInParallel("processClientAccount", null, sharedParameter);
}

function processClientAccount(sharedParameter) {
  // Process your client account here.
  ...
}

Wenn Sie ein JavaScript-Konfigurationsobjekt übergeben möchten, das kontospezifische Einstellungen enthält, können Sie es mithilfe der Methode JSON.stringify in einen String konvertieren. Beispiel:

function main() {
  ...
  var accountFlags = {
    '1234567890': {
       'label': 'Brand 1 campaigns',
     },
    '3456787890': {
       'label': 'Brand 2 campaigns',
     }
  };
  accountSelector.executeInParallel("processClientAccount", null,
      JSON.stringify(accountFlags));
  ...
}

function processClientAccount(sharedParameter) {
  var accountFlags = JSON.parse(sharedParameter);
  // Process your client account here.
  ...
}

Die in functionName angegebene Funktion kann auch einen String zurückgeben. Wenn stattdessen ein JavaScript-Objekt zurückgegeben werden soll, können Sie es mithilfe der Methode JSON.stringify in einen String konvertieren. Beispiel:

function processClientAccount() {
  ...
  var jsonObj = {value: 10, list: [1,2,3,4,5,6], name: "Joe Smith"};
  return JSON.stringify(jsonObj);
}

Die zurückgegebenen Werte werden dann als Liste von ExecutionResult-Objekten an die Rückruffunktion übergeben. Wenn mit der Funktion ein JSON-String zurückgegeben wird, kann dieser mit der Methode JSON.parse wieder in ein JavaScript-Objekt umgewandelt werden. Beispiel:

function callbackFunctionName(results) {
  for (var i = 0; i < results.length; i++) {
    var resultObj = JSON.parse(results[i].getReturnValue());
  }
}

Die Methode executeInParallel lässt sich für maximal 50 Konten (accounts) verwenden. Sie müssen daher Code implementieren, um die Anzahl der vom Skript abgerufenen Konten zu beschränken. Dazu können Sie die Methode withLimit oder withIds der Klasse ManagedAccountSelector verwenden.

Zeitlimits für die Ausführung

Informationen zu Zeitlimits für die Ausführung von Kundencenterskripts

Feedback geben zu...

AdWords Scripts
AdWords Scripts