Los compiladores son la forma estándar de crear entidades en las secuencias de comandos de Google Ads. Los creadores te permiten crear una entidad de Google Ads de forma síncrona o asíncrona. También puedes verificar si la operación se realizó correctamente 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 compilador.
// 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 se pueda crear con secuencias de comandos de Google Ads lo hace con este patrón de construcción.
Consideraciones de 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 alcancen 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 borrar su lista de operaciones pendientes, lo que puede provocar un rendimiento deficiente. En su lugar, crea un array para contener las operaciones y, luego, itera por ese array para recuperar 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”); } |