Los objetos Builder son la forma estándar de crear entidades en las secuencias de comandos de Google Ads. 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 objeto 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();
}
Cualquier entidad que se pueda crear con las secuencias de comandos de Google Ads lo hace con este patrón de objeto Builder.
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 logren un alto rendimiento. Sin embargo, llamar a los
métodos de 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 bajo. En su lugar, crea un array para contener las operaciones y, luego, itera a través de 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"); } |