Builders

Os criadores são uma forma padrão de criar entidades nos scripts do Google Ads. Os builders permitem que você crie uma entidade do Google Ads de forma síncrona ou assíncrona. Você também pode verificar se a operação foi bem-sucedida ou não e tomar as medidas adequadas, 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 possa ser criada usando scripts do Google Ads faz isso usando esse padrão de builder.

Considerações sobre desempenho

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 um alto desempenho. No entanto, chamar os métodos Operation, como isSuccessful() e getResult(), força os scripts do Google Ads a transferir a lista de operações pendentes. Isso pode prejudicar o desempenho. Em vez disso, crie uma matriz para armazenar as operações e itere essa matriz para recuperar os resultados.

Desempenho fraco Bom desempenho
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”);
}