Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Los generadores se usan para agregar una entidad. Cada objeto principal, como Campaña, incluye métodos para obtener objetos de generador que se usan para agregar entidades secundarias. Por ejemplo, para agregar un grupo de anuncios a una campaña, deberás llamar Campaign al método del newAdGroupBuilder objeto.
El objeto builder incluye métodos que se utilizan para establecer los valores de propiedad de la entidad. Por ejemplo, para especificar el CPC de una palabra clave, utilizaría el withCpc método. Después de establecer todos los valores de propiedad de la entidad, llamaría build al método para crear la entidad. El proceso de compilación es un proceso asincrónico en el que la solicitud se pone en cola con otras solicitudes de compilación y se procesa en un lote. Las solicitudes por lotes se completarán antes de que finalice el script.
Para determinar si las solicitudes de compilación se han realizado correctamente, puede examinar los registros o puede utilizar el objeto operation que devuelve el build método. Por ejemplo, AdGroupBuilder devuelve AdGroupOperation. Puede llamar a cualquiera de los métodos del objeto de operación (isSuccessful, getResult, o getErrors) para determinar si Scripts creó correctamente la entidad. Pero hay consideraciones de rendimiento al llamar a estos métodos (consulte Consideraciones de rendimiento).
En el ejemplo siguiente se muestra conceptualmente cómo crear una palabra clave mediante los objetos builder y operation. Probablemente debería usar este flujo solo si está creando una sola entidad (o tal vez algunas).
// Gets the first ad group in the account.
var adGroup = AdsApp.adGroups().get().next();
// Use the 'with' methods to specify the keyword's property values.
// The .build() method adds the build request to the build queue.
var keywordOperation = adGroup.newKeywordBuilder()
.withCpc(1.2)
.withText("shirts")
.withFinalUrl("https://www.contoso.com/shirts")
.build();
// Call isSuccessful() to determine if the build succeeded.
// Calling any of the operation object's method processes the
// build request immediately.
if (keywordOperation.isSuccessful()) {
// You only need to call getResult if you need to access
// the new keyword entity.
var keyword = keywordOperation.getResult();
} else {
// Handle the errors.
for (var error of keywordOperation.getErrors()) {
Logger.log(`${error}\n`);
}
}
Consideraciones de rendimiento
Para mejorar el rendimiento, Scripts procesa las solicitudes de compilación por lotes. Si llama al método de operación de una solicitud de compilación, se obliga a los scripts a procesar las solicitudes de compilación en cola inmediatamente, lo que anula cualquier ganancia de rendimiento. Si va a crear más de una entidad, no ejecute los métodos de operación en el mismo bucle que usa para generar la entidad. Esto lleva a un rendimiento deficiente porque solo se procesa una entidad a la vez. En su lugar, cree una matriz de las operaciones y procéselas después del bucle de compilación.
Haga esto
// An array to hold the operations, so you
// can process them after all the entities are queued.
var operations = [];
// Create all the new entities.
for (var i = 0; i < keywords.length; i++) {
var keywordOperation = AdsApp.adGroups().get().next()
.newKeywordBuilder()
.withText(keywords[i])
.build();
operations.push(keywordOperation);
}
// Now call the operation method so the build requests
// get processed in batches.
for (var i = 0; i < operations.length; i++) {
var newKeyword = operations[i].getResult();
}
No lo hagas
for (var i = 0; i < keywords.length; i++) {
var keywordOperation = AdsApp.adGroups().get().next()
.newKeywordBuilder()
.withText(keywords[i])
.build();
// Don't get results in the same loop that creates
// the entity because Scripts then only processes one
// entity at a time.
var newKeyword = keywordOperation.getResult();
}
La siguiente es la lista de constructores.