Scripts da MCC

A classe MccApp dos scripts do Google AdWords permite que você gerencie contas vinculadas na sua conta da Minha central de clientes (MCC). Isso permite que você gerencie todas as suas contas de anunciante por meio de um único script. Assim, não é necessário criar scripts diferentes para cada conta. Um uso comum é gerar relatórios no nível da MCC. Confira nossa Central de soluções para ver outros exemplos de casos de uso da MCC.

Recuperação da lista de contas

Você pode recuperar todas as contas (exceto contas do AdWords Express) de uma MCC usando o método accounts, por exemplo:

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

var accountIterator = accountSelector.get();

A chamada de contas recuperará a lista de todas as contas cliente da hierarquia de uma MCC por padrão. Você pode usar o método withLimit da classe ManagedAccountSelector para restringir o número de contas que seu script recupera. Outra opção é selecionar as contas com base nos IDs de cliente usando o método withIds, como mostrado abaixo:

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

Como trabalhar em contas cliente

Assim que você recupera as contas cliente, pode iterá-las usando os métodos hasNext e next de ManagedAccountIterator. Você precisa usar o método select para alternar o contexto de execução para uma conta cliente. Depois de selecionar uma conta cliente, outras chamadas da API serão aplicadas à conta cliente até você selecionar outra conta de forma explícita. Por exemplo,

// 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);

Como trabalhar com as contas em paralelo

Os scripts do Google AdWords permitem que você opere em várias contas cliente simultaneamente usando o método executeInParallel da classe ManagedAccountSelector. O método executeInParallel apresenta a seguinte assinatura:

function executeInParallel(functionName, optionalCallbackFunctionName, optionalInput);

O método executeInParallel executa uma função especificada por functionName em cada ManagedAccount correspondente a ManagedAccountSelector. Assim que todas as contas forem processadas, a função de retorno de chamada, se especificada por optionalCallbackFunctionName, será executada uma vez, transmitindo um array de todos os objetos de resposta como o argumento correspondente para processamentos futuros. O uso típico é mostrado abaixo:

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
    …
  }
}

Opcionalmente, a função especificada por functionName pode aceitar um argumento de string (optionalInput). Esse parâmetro pode ser usado para transmitir um parâmetro adicional a todos os métodos paralelos, que é chamado pelo método executeInParallel. Por exemplo,

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.
  ...
}

Se você quiser transmitir um objeto de configuração JavaScript que contenha as configurações específicas da conta, poderá convertê-lo em uma string usando o método JSON.stringify, por exemplo:

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.
  ...
}

A função especificada por functionName também pode retornar opcionalmente uma string. Se, em vez disso, você quiser retornar um objeto JavaScript, poderá convertê-lo em uma string usando o método JSON.stringify. Por exemplo:

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

Os valores retornados serão transmitidos na função de retorno de chamada em uma lista de objetos ExecutionResult. Se você retornou uma string JSON a partir da função, poderá voltar a convertê-la em um objeto JavaScript usando o método JSON.parse, por exemplo:

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

O método executeInParallel será executado em no máximo 50 contas. Sendo assim, você precisará implementar suas próprias restrições para limitar o número de contas que seu script recupera. Para isso, você pode usar o método withLimit ou withIds da classe ManagedAccountSelector.

Limites de tempo de execução

Consulte esta página para ver detalhes dos limites de tempo de execução da MCC.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.