Compiladores

Los compiladores son la forma estándar de crear entidades en las secuencias de comandos de Google Ads. Los compiladores te permiten crear una entidad de Google Ads de forma síncrona o asíncrona. También puedes verificar si la operación fue exitosa o no y tomar las medidas adecuadas según el resultado de la operación. En el siguiente fragmento de código, se muestra cómo crear una palabra clave con un creador.

// 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();
}

Cualquier entidad que pueda crearse con las secuencias de comandos de Google Ads lo hará con este patrón de creador.

Consideraciones sobre el rendimiento

De forma predeterminada, las secuencias de comandos de Google Ads ejecutan sus operaciones de forma asíncrona. Esto permite que las secuencias de comandos agrupen tus operaciones como lotes y logren un alto rendimiento. Sin embargo, llamar a los métodos Operation, como isSuccessful() y getResult(), obliga a las secuencias de comandos de Google Ads a vaciar su lista de operaciones pendientes y, por lo tanto, puede generar un rendimiento deficiente. En su lugar, crea un array para contener las operaciones y, luego, itera a través de él para obtener los resultados.

Rendimiento bajo Rendimiento bueno
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”);
}