Compartir a través de


Ejemplos de scripts para administrar anuncios

En las secciones siguientes se muestran ejemplos de scripts que realizan diversas acciones en los anuncios.

Nota:

  • Actualiza tus anuncios de texto expandidos a anuncios de búsqueda adaptables antes del 1 de febrero de 2023. Después de esta fecha, ya no podrás crear anuncios de texto expandidos nuevos ni editarlos. Para obtener más información, consulte Acerca de los anuncios de búsqueda con capacidad de respuesta.
  • Los anuncios de texto expandidos existentes seguirán publicándose y podrás ver informes sobre su rendimiento.
  • Seguirás siendo capaz de pausar, habilitar o quitar tus anuncios de texto expandido. De lo contrario, los intentos de agregar o actualizar anuncios de texto expandido producirán un CampaignServiceAdTypeInvalid error.
  • Obtenga más información sobre este cambio.

Agregar anuncios

Para agregar un anuncio, primero obtén el grupo de anuncios al que quieres agregar el anuncio. Use el objeto AdGroupSelector para seleccionar el grupo de anuncios. El uso del withIds método proporciona un mejor rendimiento que pasar el nombre del grupo de anuncios en el withCondition método .

A continuación, llame al método newAd del grupo de anuncios para obtener un generador que use para especificar las propiedades del anuncio. A diferencia de otros tipos de entidad, el newAd método devuelve un objeto AdBuilderSpace que contiene métodos para obtener el generador para el tipo de anuncio que desea crear. En este ejemplo se agrega un anuncio de texto expandido, por lo que llama al expandedTextAdBuilder método para obtener un generador de anuncios de texto expandido.

Para los anuncios de texto expandido, debe especificar las siguientes propiedades:

  • Descripción
  • FinalUrl
  • HeadlinePart1
  • HeadlinePart2

La combinación de estas propiedades define de forma única un anuncio de texto expandido. Las otras propiedades son opcionales.

Al llamar al método del build generador, se crea el anuncio de forma asincrónica; Los scripts agregan el anuncio 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() {
    var adGroupId = "AD GROUP ID GOES HERE";
    var adGroup = getAdGroup(adGroupId);

    if (adGroup != null) {

        // Get an expanded text ad builder, specify the ad's 
        // properties, and add the ad to the build queue.
        var operation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("AD COPY GOES HERE")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("AD TITLE PART 1 GOES HERE")
            .withHeadlinePart2("AD TITLE PART 2 GOES HERE")
            .build();

        if (!operation.isSuccessful()) {
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }
    }
    else {
        Logger.log(`Failed to get ad group, ${adGroupId}.`);
    }
}

function getAdGroup(id) {
    var adGroups = AdsApp.adGroups()
        .withIds([id])
        .get();

    if (adGroups.hasNext()) {
        return adGroups.next();
    }
    else {
        return null;
    }
}

Si existe un anuncio agregado anteriormente con los mismos valores para la combinación de campos obligatorios, el servicio no agrega el anuncio, sino que devuelve el anuncio y el identificador agregados anteriormente. Sin embargo, si los mismos anuncios se procesan en la misma cola de compilación, se produce un error en el segundo anuncio con CampaignServiceDuplicateAd. Por ejemplo, dado que los anuncios del ejemplo siguiente son los mismos, se produce un error en uno de ellos.

    if (adGroup != null) {
        var adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);

        adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);
        
        for (var operation of operations) {
            if (!operation.isSuccessful()) {
                for (var error of operation.getErrors()) {
                    Logger.log(error);
                }
            }
        }
    }

Obtener anuncios

Tiene varias opciones para obtener anuncios en función de dónde se encuentra en la jerarquía.

Obtener anuncios de un grupo de anuncios

Si tienes un objeto AdGroup , llama al método del ads objeto para obtener la lista de anuncios que pertenecen al grupo de anuncios. En este ejemplo se obtienen e imprimen todos los anuncios del grupo, pero puedes usar los métodos del selector de anuncios para filtrar la lista de anuncios.

function main() {
    var adGroups = AdsApp.adGroups()
        .withIds(["AD GROUP ID GOES HERE"])
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();

        var ads = adGroup.ads().get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Obtener anuncios de una campaña

Si tienes un objeto Campaign , llama al método del ads objeto para obtener la lista de anuncios que pertenecen a los grupos de anuncios de la campaña. En este ejemplo se usa el método del selector de withCondition anuncios para filtrar la lista de anuncios a los de los grupos de anuncios que contienen el nombre foo.

function main() {
    var campaigns = AdsApp.campaigns()
        .withIds(["CAMPAIGN ID GOES HERE"])
        .get();

    while (campaigns.hasNext()) {
        var campaign = campaigns.next();

        var ads = campaign.ads()
            .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
            .get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Obtener todos los anuncios de la cuenta

Para obtener todos los anuncios de una cuenta, llama al ads método en el objeto AdsApp . Puedes usar los métodos del selector de anuncios para filtrar la lista de anuncios a campañas, grupos de anuncios o en función del rendimiento de los anuncios. En este ejemplo se obtienen todos los anuncios de la cuenta.

function main() {
    var ads = AdsApp.ads().get();

    while (ads.hasNext()) {
        var ad = ads.next();

        if (ad.isType().expandedTextAd()) {
            var expandedAd = ad.asType().expandedTextAd();
        }
    }
} 

Pausar un anuncio

Para pausar un anuncio, llame al método del pause anuncio. Dado que el pause método está en el objeto de Ad base, no es necesario obtener primero el objeto derivado.

Si quieres habilitar o quitar un anuncio, solo tienes que llamar al método o remove del enable anuncio. Para comprobar si el anuncio está habilitado o en pausa, llame al isEnabled método o isPaused .

Para obtener anuncios con un estado específico, usa el método del selector de withCondition anuncios. Por ejemplo, withCondition("Status = PAUSED).

function main() {
    var ads = AdsApp.ads()
        .forDateRange("LAST_WEEK")
        .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
        .withCondition('Status = ENABLED')
        .withCondition('Clicks < 5')
        .get();
 
    while (ads.hasNext()) {
        var ad = ads.next();
        ad.pause();
    }
}

Obtener anuncios no aprobados

Para ver un ejemplo en el que se desaproben los anuncios, consulta Descubrir anuncios no aprobados.