Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Se si dispone di più account o si gestiscono account per altri account, tutto inizia con l'oggetto AccountsApp . AccountsApp è l'oggetto di primo livello che consente di ottenere l'elenco degli account a cui si ha accesso e di selezionare l'account da gestire. Dopo aver ottenuto e selezionato l'account, si passa all'utilizzo dell'oggetto AdsApp per accedere alle entità dell'account.
Nota
Per gli script con più account, utilizzare l'editor di script accessibile da Riepilogo account nell'applicazione Web Microsoft Advertising. Se non vedi Riepilogo account nell'interfaccia utente, non userai l'editor degli script per più account.
Per accedere all'editor di script da Riepilogo account, fare clic su Operazioni in blocco nel riquadro sinistro. Quindi, in Script , fai clic su Crea e gestisci script.
Elenco degli account a cui si ha accesso
Per elencare tutti gli account a cui si ha accesso, chiamare il metodo account . Il metodo restituisce un oggetto BingAdsAccountSelector che è possibile usare per filtrare l'elenco degli account. Per informazioni sull'uso dei selettori per filtrare gli elenchi, vedere Uso dei selettori.
Nell'esempio seguente vengono restituiti tutti gli account a cui si ha accesso.
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`);
}
}
Esecuzione di una funzione per ogni account in parallelo
Per eseguire operazioni su più account in parallelo, chiamare il metodo del executeInParallel()selettore. Di seguito sono riportati i executeInParallel() metodi che è possibile chiamare.
executeInParallel(stringa, nomefunzione, stringa, optionalCallbackFunctionName)
Specifica il nome della funzione chiamata da Scripts per ogni account restituito dal selettore. La funzione può restituire un valore come stringa. Per restituire un oggetto complesso, usa il metodo JSON.stringify per convertire l'oggetto in una stringa. È quindi possibile utilizzare il metodo JSON.parse per convertire la stringa in un oggetto.
Se la funzione restituisce un valore, è necessario specificare una funzione di callback per acquisire i valori restituiti. Dopo l'esecuzione della funzione per tutti gli account selezionati, Scripts chiama la funzione di callback facoltativa. I valori restituiti vengono passati come matrice di oggetti ExecutionResult .
executeInParallel(stringa functionName, stringa optionalCallbackFunctionName, stringa optionalInput)
Specifica il nome della funzione chiamata da Scripts per ogni account restituito dal selettore. È possibile specificare una stringa di input facoltativa che Scripts passa alla funzione. Per passare un oggetto complesso, usa il metodo JSON.stringify per convertire l'oggetto in una stringa. È quindi possibile utilizzare il metodo JSON.parse all'interno della funzione per convertire la stringa in un oggetto.
La funzione può restituire un valore come stringa. Per restituire un oggetto complesso, usa il metodo JSON.stringify per convertire l'oggetto in una stringa. È quindi possibile utilizzare il metodo JSON.parse per convertire la stringa in un oggetto.
Se la funzione restituisce un valore, è necessario specificare una funzione di callback per acquisire i valori restituiti. Dopo l'esecuzione della funzione per tutti gli account selezionati, Scripts chiama la funzione di callback facoltativa. I valori restituiti vengono passati come matrice di oggetti ExecutionResult .
È necessario limitare il numero di account a 50, altrimenti la chiamata ha esito negativo se il selettore restituisce più di 50. Per limitare il numero di account, è possibile utilizzare i withLimit()metodi , withIds()e withAccountNumbers() .
L'esempio seguente mostra un semplice esempio che esegue una funzione per ogni account con un tasso di clickthrough inferiore al 5% la scorsa settimana. L'esempio usa il withLimit() metodo per assicurarsi che la chiamata non superi il limite di 50 account.
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();
}
}
}
Modifica dell'account elaborato da Script
Finché non si seleziona un account da elaborare, non è possibile chiamare nessuno dei metodi AdsApp per ottenere i dati dell'entità dell'account. Per selezionare un account, usare il metodo di selezione di AccountsApp.
Ma prima è necessario chiamare il metodo account per selezionare gli account che si desidera elaborare. Per informazioni sull'utilizzo accounts() per filtrare l'elenco degli account, vedere Elenco degli account a cui si ha accesso.
Dopo aver creato un account, chiama il select() metodo per impostare l'account come account corrente. L'esempio seguente mostra questo 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.
}
}