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.
Utilize construtores para adicionar uma entidade. Cada objeto pai, como Campaign, inclui métodos para obter objetos do construtor que você usa para adicionar entidades filhas. Por exemplo, para adicionar um grupo de anúncios a uma campanha, você chamaria o Campaign método do newAdGroupBuilder objeto.
O objeto builder inclui métodos que você usa para definir os valores de propriedade da entidade. Por exemplo, para especificar o CPC de uma palavra-chave, você usaria o withCpc método. Depois de definir todos os valores de propriedade da entidade, você chamaria o build método para criar a entidade. O processo de compilação é um processo assíncrono onde a solicitação é enfileirada com outras solicitações de compilação e processada em um lote. Os pedidos em lote serão concluídos antes de o script terminar.
Para determinar se as solicitações de compilação foram bem-sucedidas, você pode examinar os logs ou usar o objeto de operação que o build método retorna. Por exemplo, AdGroupBuilder retorna AdGroupOperation. Você pode chamar qualquer um dos métodos do objeto de operação (isSuccessful, getResultou getErrors) para determinar se os Scripts criaram a entidade com êxito. Mas há considerações de desempenho ao chamar esses métodos (consulte Considerações de desempenho).
O exemplo a seguir mostra conceitualmente como criar uma palavra-chave usando os objetos builder e operation. Você provavelmente deve usar esse fluxo somente se estiver criando uma única entidade (ou talvez algumas).
// Gets the first ad group in the account.
var adGroup = AdsApp.adGroups().get().next();
// Use the 'with' methods to specify the keyword's property values.
// The .build() method adds the build request to the build queue.
var keywordOperation = adGroup.newKeywordBuilder()
.withCpc(1.2)
.withText("shirts")
.withFinalUrl("https://www.contoso.com/shirts")
.build();
// Call isSuccessful() to determine if the build succeeded.
// Calling any of the operation object's method processes the
// build request immediately.
if (keywordOperation.isSuccessful()) {
// You only need to call getResult if you need to access
// the new keyword entity.
var keyword = keywordOperation.getResult();
} else {
// Handle the errors.
for (var error of keywordOperation.getErrors()) {
Logger.log(`${error}\n`);
}
}
Considerações de desempenho
Para melhorar o desempenho, o Scripts processa solicitações de construção em lotes. Se você chamar o método de operação de uma solicitação de compilação, isso forçará os scripts a processar as solicitações de compilação na fila imediatamente, negando quaisquer ganhos de desempenho. Se você estiver criando mais de uma entidade, não execute os métodos de operação no mesmo loop que você usa para criar a entidade. Isto leva a um fraco desempenho porque só é processada uma entidade de cada vez. Em vez disso, crie uma matriz das operações e processe-as após o ciclo de compilação.
Faça o seguinte
// An array to hold the operations, so you
// can process them after all the entities are queued.
var operations = [];
// Create all the new entities.
for (var i = 0; i < keywords.length; i++) {
var keywordOperation = AdsApp.adGroups().get().next()
.newKeywordBuilder()
.withText(keywords[i])
.build();
operations.push(keywordOperation);
}
// Now call the operation method so the build requests
// get processed in batches.
for (var i = 0; i < operations.length; i++) {
var newKeyword = operations[i].getResult();
}
Não faça isto
for (var i = 0; i < keywords.length; i++) {
var keywordOperation = AdsApp.adGroups().get().next()
.newKeywordBuilder()
.withText(keywords[i])
.build();
// Don't get results in the same loop that creates
// the entity because Scripts then only processes one
// entity at a time.
var newKeyword = keywordOperation.getResult();
}
Segue-se a lista de construtores.