Builders

Os criadores são uma forma padrão de criar entidades nos scripts do Google Ads. Os criadores permitem criar uma entidade do Google Ads de forma síncrona ou assíncrona. Também é possível verificar se a operação foi bem-sucedida ou não e tomar as medidas apropriadas, dependendo do resultado da operação. O snippet de código a seguir mostra como criar uma palavra-chave usando um builder.

// Retrieve your ad group.
let adGroup = AdsApp.adGroups().get().next();

// Create a keyword operation.
let keywordOperation = adGroup.newKeywordBuilder()
    .withCpc(1.2)
    .withText("shoes")
    .withFinalUrl("http://www.example.com/shoes")
    .build();

// Optional: examine the outcome. The call to isSuccessful()
// will block until the operation completes.
if (keywordOperation.isSuccessful()) {
  // Get the result.
  let keyword = keywordOperation.getResult();
} else {
  // Handle the errors.
  let errors = keywordOperation.getErrors();
}

Qualquer entidade que pode ser criada com scripts do Google Ads usa esse padrão de criador.

Considerações sobre performance

Por padrão, os scripts do Google Ads executam suas operações de forma assíncrona. Isso permite que os scripts agrupem suas operações em lotes e alcancem alto desempenho. No entanto, chamar os métodos Operation, como isSuccessful() e getResult(), força os scripts do Google Ads a limpar a lista de operações pendentes, o que pode levar a um desempenho ruim. Em vez disso, crie uma matriz para armazenar as operações e itere essa matriz para recuperar os resultados.

Desempenho fraco Desempenho satisfatório
for (let i = 0; i < keywords.length; i++)
  let keywordOperation = adGroup
    .newKeywordBuilder()
    .withText(keywords[i])
    .build();

  // Bad: retrieving the result in the same
  // loop that creates the operation
  // leads to poor performance.
  let newKeyword =
      keywordOperation.getResult();
  newKeyword.applyLabel("New keywords”);
}
// Create an array to hold the operations
let operations = [];

for (let i = 0; i < keywords.length; i++) {
  let keywordOperation = adGroup
    .newKeywordBuilder()
    .withText(keywords[i])
    .build();
  operations.push(keywordOperation);
}

// Process the operations separately. Allows
// Google Ads scripts to group operations into
// batches.
for (let i = 0; i < operations.length; i++) {
  let newKeyword = operations[i].getResult();
  newKeyword.applyLabel("New keywords”);
}