4.4 Administración de campañas

Introducción


Es importante darles a los comercios la capacidad de realizar cambios en su campaña después de su creación. Los aspectos más importantes que deberían poder cambiar son los siguientes:

  • Presupuesto
  • Estado (detención, habilitación, eliminación)
  • Segmentación geográfica (recomendada, pero opcional)
  • Cualquier otro campo que hayas incluido en la interfaz de creación de la campaña

Orientación en UX


Muestra la lista de campañas en la página de resumen y en una página independiente como parte de los informes de rendimiento de la campaña. Permite a los usuarios detener, borrar y editar campañas.

pmax_campaign

Cuando se edita una campaña, el comercio puede modificar los mismos campos que proporcionó cuando se creó la campaña. A continuación, se muestra un ejemplo de su posible aspecto:

edit_pmax

Orientación técnica


Una vez que hayas creado una campaña de máximo rendimiento para venta minorista, puedes mutar la siguiente configuración de la campaña:

  • Nombre de la campaña
  • Presupuesto de la campaña
  • Estado de la campaña
  • Criterios de segmentación de las campañas

Puedes encontrar una descripción general detallada sobre cómo cambiar los recursos en la Guía para desarrolladores. Puedes cambiar un recurso específico con el extremo de servicio expuesto para hacerlo (por ejemplo, CampaignService.MutateCampaigns) o hacerlo en varios recursos diferentes mediante la funcionalidad de modificación masiva disponible con el extremo GoogleAdsService.Mutate.

Siempre que sea posible, recomendamos mutar de forma masiva para reducir la cantidad de operaciones necesarias para actualizar una campaña. Con esto en mente, debes diseñar tu arquitectura en torno al uso del extremo GoogleAdsService.Mutate en lugar de extremos de recursos individuales. Esto también permitirá una extensión más sencilla de la funcionalidad en el futuro.

En los ejemplos posteriores, se supone que ya tienes los ID relevantes almacenados en tu base de datos local.

Nombre de la campaña

Para actualizar el nombre de una campaña, debes mutar el campo Campaign.name.

No debe contener caracteres nulos (punto de código 0x0), salto de línea NL (punto de código 0xA) ni retorno de carro (punto de código 0xD).

Presupuesto de la campaña

Se considera una práctica recomendada actualizar un presupuesto existente en lugar de reemplazarlo por uno nuevo. Esto garantiza que tu campaña invierta como se espera y no genere un exceso de publicaciones.

Solo debes actualizar el valor del presupuesto y no cambiar ningún otro campo, lo que aumentará el valor del gasto DIARIA.

Python
budget_resource_name = client.get_service(
        "CampaignBudgetService"
    ).campaign_budget_path(customer_id, budget_id)

mutate_operation = client.get_type("MutateOperation")
campaign_budget = mutate_operation.campaign_budget_operation.update

campaign_budget.resource_name = budget_resource_name

# update the budget amount to the new value

campaign_budget.amount_micros = 50000000

client.copy_from(
    mutate_operation.campaign_budget_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_budget._pb),
)
return mutate_operation

Estado de la campaña

Para actualizar el estado (habilitar/detener/quitar) de una campaña, debes cambiar el campo Campaign.status y asignar el estado relevante de la enumeración CampaignStatus.

Puedes encontrar un ejemplo de cómo mutar el estado de la campaña en el código de muestra para actualizar campaña.

Criterios de campaña

Cuando actualizas los criterios de la campaña, solo necesitas proporcionar la capacidad de actualizar los criterios que se exponen al usuario, esto es, como mínimo, la segmentación geográfica y, posiblemente, la segmentación por idioma. Puedes encontrar un ejemplo de cómo actualizar un criterio de campaña en el código de muestra para actualizar el modificador de ofertas del criterio de la campaña.

Para actualizar los criterios de segmentación geográfica, actualiza CampaignCriterion.location al valor de la nueva constante de segmentación geográfica.

Python
criterion_rname = client.get_service(
    "CampaignCriterionService"
    ).campaign_criterion_path(
    customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the geo to the update geo targeting

campaign_criterion.location.geo_target_constant = (
   geo_target_constant_service.geo_target_constant_path("1022762")
) # Brooklyn

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation

Para actualizar los criterios de segmentación por idioma, debes actualizar el valor del CampaignCriterion.language con la nueva constante de idioma.

Python
campaign_criterion_service = client.get_service("CampaignCriterionService")

criterion_rname = campaign_criterion_service.campaign_criterion_path(
   customer_id, campaign_id, criterion_id
)

mutate_operation = client.get_type("MutateOperation")
campaign_criterion = mutate_operation.campaign_criterion_operation.update

campaign_criterion.resource_name = criterion_rname

# Set the language to the updated language
# For a list of all language codes, see:
# https://developers.google.com/google-ads/api/data/codes-formats#languages
campaign_criterion.language.language_constant = (
    googleads_service.language_constant_path("1000")
)  # English

client.copy_from(
    mutate_operation.campaign_criterion_operation.update_mask,
    protobuf_helpers.field_mask(None, campaign_criterion._pb),
)
return mutate_operation