Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Se você tiver várias contas ou gerenciar contas de outras pessoas, tudo começará com o objeto AccountsApp . AccountsApp é o objeto de nível superior que você usa para obter a lista de contas às quais tem acesso e para selecionar a conta para gerenciar. Depois de obter e selecionar a conta, você passa a usar o objeto AdsApp para acessar as entidades da conta.
Nota
Para scripts com várias contas, utilize o editor de Scripts acedido a partir do Resumo de Contas na aplicação Web do Microsoft Advertising. Se não vir o Resumo de Contas na IU, não irá utilizar o editor de Scripts com várias contas.
Para acessar o editor de scripts no Resumo de contas, clique em Operações em massa no painel esquerdo. Em seguida, em Scripts , clique em Criar e gerenciar scripts.
Listar as contas às quais tem acesso
Para listar todas as contas às quais você tem acesso, chame o método accounts . O método retorna um objeto BingAdsAccountSelector que você pode usar para filtrar a lista de contas. Para obter informações sobre como usar seletores para filtrar listas, consulte Usando seletores.
O exemplo seguinte devolve todas as contas a que tem acesso.
function main() {
var accounts = AccountsApp.accounts()
.get();
while (accounts.hasNext()) {
var account = accounts.next();
Logger.log(`Account ID: ${account.getAccountId()}
Account name: ${account.getName()}
Account number: ${account.getAccountNumber()}
Customer ID: ${account.getCustomerId()}
Currency code: ${account.getCurrencyCode()}
Time zone: ${account.getTimeZone()}\n\n`);
}
}
Executar uma função para cada conta em paralelo
Para executar trabalho em várias contas em paralelo, você chama o método doexecuteInParallel() seletor. Seguem-se os métodos que executeInParallel() pode chamar.
executeInParallel(string functionName, string optionalCallbackFunctionName)
Especifique o nome da função que o Scripts chama para cada conta que o seletor retorna. A função pode devolver um valor como uma cadeia. Para retornar um objeto complexo, use o método JSON.stringify para converter o objeto em uma cadeia de caracteres. Em seguida, você pode usar o método JSON.parse para converter a cadeia de caracteres novamente em um objeto.
Se sua função retornar um valor, você deve especificar uma função de retorno de chamada para capturar os valores de retorno. Depois que a função é executada para todas as contas selecionadas, o Scripts chama a função de retorno de chamada opcional. Os valores de retorno são passados como uma matriz de objetos ExecutionResult .
executeInParallel(string functionName, string optionalCallbackFunctionName, string optionalInput)
Especifique o nome da função que o Scripts chama para cada conta que o seletor retorna. Você pode especificar uma cadeia de caracteres de entrada opcional que os scripts passam para a função. Para passar um objeto complexo, use o método JSON.stringify para converter o objeto em uma cadeia de caracteres. Em seguida, você pode usar o método JSON.parse dentro da função para converter a cadeia de caracteres novamente em um objeto.
A função pode devolver um valor como uma cadeia. Para retornar um objeto complexo, use o método JSON.stringify para converter o objeto em uma cadeia de caracteres. Em seguida, você pode usar o método JSON.parse para converter a cadeia de caracteres novamente em um objeto.
Se sua função retornar um valor, você deve especificar uma função de retorno de chamada para capturar os valores de retorno. Depois que a função é executada para todas as contas selecionadas, o Scripts chama a função de retorno de chamada opcional. Os valores de retorno são passados como uma matriz de objetos ExecutionResult .
Tem de limitar o número de contas a 50, caso contrário, a chamada falha se o seletor devolver mais de 50. Para limitar o número de contas, pode utilizar os withLimit()métodos , withIds(), e withAccountNumbers() .
O exemplo seguinte mostra um exemplo simples que executa uma função para cada conta que teve uma taxa de cliques inferior a 5% na semana passada. O exemplo utiliza o withLimit() método para garantir que a chamada não excede o limite de 50 contas.
function main() {
// Select the accounts to process.
var accounts = AccountsApp.accounts()
.withLimit(50)
.withCondition('Ctr < 0.05')
.forDateRange('LAST_WEEK')
.executeInParallel('bump', 'resultsHandler');
}
function bump() {
var account = AdsApp.currentAccount();
// Do something with the entities in the account.
Logger.log(`Processing account: ${account.getAccountId()} (${account.getName()})`);
// Return a value that's processed by resultsHandler(). If
// the function returns a value, it must be a string. To return
// a complex object, use JSON.stringify(object) to return the
// object as a string.
return account.getAccountId();
}
// Handles all return values from the bump() function after the
// function completes for all accounts.
function resultsHandler(results) {
for (var result of results) {
if (result.getStatus() === 'OK') {
value = result.getReturnValue();
}
}
}
Alterar a conta que o Scripts processa
Até selecionar uma conta para processar, você não pode chamar nenhum dos métodos do AdsApp para obter os dados de entidade da conta. Para selecionar uma conta, use o método de seleção de AccountsApp.
Mas primeiro tem de chamar o método de contas para selecionar as contas que pretende processar. Para obter informações sobre como usar accounts() para filtrar a lista de contas, consulte Listando as contas às quais você tem acesso.
Depois de obter uma conta, contacte o select() método para tornar a conta na conta atual. O exemplo a seguir mostra esse processo.
function main() {
// This call logs null. Before using any
// of the AdsApp methods, you must first
// select an account to process.
Logger.log(AdsApp.currentAccount());
// Select the accounts to process
var accounts = AccountsApp.accounts()
.withIds(['123', '456', '789'])
.get();
while (accounts.hasNext()) {
AccountsApp.select(accounts.next());
// AdsApp is now set to the current account.
// Do something with the account's entities.
}
}