Ejemplos de scripts para administrar grupos de anuncios
En las secciones siguientes se muestran ejemplos de scripts que realizan varias acciones en grupos de anuncios.
Agregar grupos de anuncios
Para agregar un grupo de anuncios, primero obtén la campaña a la que agregar el grupo de anuncios. Use el objeto CampaignSelector para seleccionar la campaña. El uso del withIds
método proporciona un mejor rendimiento que pasar el nombre de la campaña en el withCondition
método .
A continuación, llame al método newAdGroupBuilder de la campaña para obtener un generador que use para especificar las propiedades del grupo de anuncios. La única propiedad necesaria es el nombre del grupo de anuncios (consulta el withName
método), que debe ser único dentro de la campaña. Si no especifica un valor de CPC, el valor predeterminado es el importe mínimo de la puja para la moneda de la cuenta. Solo debe especificar el idioma si la campaña no lo especifica; De lo contrario, hereda el valor de idioma de la campaña. De forma predeterminada, el estado del grupo de anuncios está en pausa.
Al llamar al método del build
generador, se crea el grupo de anuncios de forma asincrónica; Los scripts agregan el grupo de anuncios en algún momento antes de que finalice el script o si llama a uno de los métodos de la operación de compilación. Para obtener información sobre este proceso, consulte ¿Qué es un generador?
function main() {
// The ID of the campaign to add the ad groups to.
// IDs in Scripts are string integers.
var campaignId = 'CAMPAIGN ID GOES HERE';
var campaign = getCampaign(campaignId);
// Ad groups to add.
var adGroups = [];
adGroups.push({
name : 'AD GROUP NAME GOES HERE',
cpc : 2.25,
language : 'English' // Required if the campaign doesn't specify a language
});
adGroups.push({
name : 'AD GROUP NAME GOES HERE',
cpc : 1.25,
language : 'English' // Required if the campaign doesn't specify a language
});
var operations = [];
if (campaign != null)
{
for (var adGroup of adGroups) {
var operation = addAdGroup(
campaign,
adGroup.name,
adGroup.cpc,
adGroup.language);
operations.push(operation);
}
}
else {
Logger.log("Unable to retrieve campaign, " + campaignId);
}
checkBuildStatus(operations, adGroups);
}
// Get the campaign using its ID.
function getCampaign(id) {
var iterator = AdsApp.campaigns()
.withIds([id])
.get();
// Return the campaign if it exists; otherwise, null.
if (iterator.hasNext()) {
return iterator.next();
}
else {
return null;
}
}
// Add the ad group to the specified campaign.
// Returns the builder's operation object, which you use to
// check the status of the add operation.
function addAdGroup(campaign, name, cpc, language) {
return campaign.newAdGroupBuilder()
.withName(name)
.withCpc(cpc)
.withLanguage(language)
.build();
}
// Check the ad group's build status.
function checkBuildStatus(operations, adGroups) {
for (var i = 0; i < operations.length; i++) {
if (!operations[i].isSuccessful()) {
for (var error of operations[i].getErrors()) {
Logger.log(`Failed to add, ${adGroups[i].name}. Error: ${error}`);
}
}
}
}
Obtener todos los grupos de anuncios
Para obtener todos los grupos de anuncios de una cuenta, primero llame al método del adGroups
objeto AdsApp para obtener el selector. A continuación, llame al método del get
selector para obtener un iterador que se usa para recorrer en iteración la lista de grupos de anuncios. Dado que el ejemplo no especifica ningún filtro, el selector devuelve todos los grupos de anuncios de la cuenta. Para determinar el número de grupos de anuncios en el iterador, llame al método del totalNumEntities
iterador.
function main() {
// Gets all ad groups in the account.
var iterator = AdsApp.adGroups().get();
// Iterates through the list of ad groups and logs
// each ad group's name.
while (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
Obtener un grupo de anuncios por nombre
Para obtener un grupo de anuncios por nombre, llame primero al método del adGroups
objeto AdsApp para obtener el selector. El selector contiene una serie de métodos de filtro que se usan para filtrar la lista de grupos de anuncios. Use el withCondition
método para filtrar los grupos de anuncios por un nombre de grupo de anuncios específico. Tenga en cuenta que los operandos y operadores distinguen mayúsculas de minúsculas.
A continuación, llame al método del get
selector para obtener el iterador. Los nombres de grupos de anuncios dentro de una campaña son únicos, pero es posible que varias campañas tengan grupos de anuncios con el mismo nombre. Por este motivo, si filtra solo por nombre, el iterador puede contener más de un grupo de anuncios.
Si quieres obtener un grupo de anuncios por nombre de una campaña específica, incluye un withCondition
método que especifique el nombre de la campaña (CampaignName = '<campaignnamegoeshere>'
).
function main() {
// The name of the ad group to get.
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad groups with the specified name.
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.get();
// Need a loop because multiple campaigns can have
// an ad group with the same name.
while (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
Obtención del grupo de anuncios por identificador
Si tienes acceso al identificador del grupo de anuncios, úselo en su lugar. El uso de identificadores para obtener entidades proporciona un mejor rendimiento. En lugar de usar el método de withCondition
filtro, use el withIds
método . Por ejemplo, withIds(['12345'])
.
function main() {
var adGroupId = '12345';
var iterator = AdsApp.adGroups()
.withIds([adGroupId])
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
Obtención del grupo de anuncios por nombre de una campaña específica
function main() {
var adGroupName = 'AD GROUP NAME GOES HERE';
var campaignName = "CAMPAIGN NAME GOES HERE";
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
}
}
Obtener los datos de rendimiento de un grupo de anuncios
Para obtener las métricas de rendimiento de un grupo de anuncios, llame al método getStats del grupo de anuncios. Al obtener el grupo de anuncios, debe especificar el intervalo de fechas de los datos de métricas que desee. Puede especificar el intervalo de fechas mediante un literal predefinido, como LAST_MONTH o TODAY, o una fecha de inicio y finalización. Para especificar el intervalo de fechas, use uno de los forDateRange
métodos al seleccionar el grupo de anuncios (consulte AdGroupSelector).
Para obtener una lista de las métricas a las que puede acceder, consulte el objeto Stats .
function main() {
var campaignName = 'CAMPAIGN NAME GOES HERE';
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad group. You need to specify the date range of the
// performance data you want to get.
var iterator = AdsApp.adGroups()
.forDateRange('LAST_WEEK')
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
// If the ad group is found, log some metrics.
if (iterator.hasNext()) {
var adGroup = iterator.next();
var metrics = adGroup.getStats(); // Gets the performance metrics.
}
}
Pausar un grupo de anuncios
Al agregar un grupo de anuncios, su estado es Pausado de forma predeterminada. Para habilitar el grupo de anuncios, llame al método del grupo de enable
anuncios. Para cambiar el estado del grupo de anuncios a Pausado, llama al método del grupo de pause
anuncios. Para determinar el estado del grupo de anuncios, llame a los métodos , isPaused
y isRemoved
del grupo de isEnabled
anuncios.
function main() {
var campaignName = 'CAMPAIGN NAME GOES HERE';
var adGroupName = 'AD GROUP NAME GOES HERE';
// Get the ad group.
var iterator = AdsApp.adGroups()
.withCondition(`Name = '${adGroupName}'`)
.withCondition(`CampaignName = '${campaignName}'`)
.get();
if (iterator.hasNext()) {
var adGroup = iterator.next();
adGroup.pause();
}
}