Crea una línea de pedido de la campaña de generación de demanda

Un concepto de línea de las campañas de generación de demanda publica grupos de anuncios y anuncios en múltiples formatos en las plataformas de mayor impacto de Google, como YouTube, Descubre, Gmail y la Red de Display de Google. Las líneas de pedido de las campañas de generación de demanda, al igual que otros tipos de líneas de pedido, se administran con recursos de LineItem y operan en función del presupuesto, la estrategia de ofertas y la segmentación establecidos. También hay parámetros de configuración específicos para las líneas de pedido de las campañas de generación de demanda disponibles en el campo demandGenSettings.

Las líneas de pedido de las campañas de generación de demanda tienen recursos secundarios llamados grupos de anuncios. Los grupos de anuncios proporcionan otro nivel de control debajo de la línea de pedido individual.

Elige configuraciones

Antes de crear una línea de pedido de las campañas de generación de demanda, revisa y decide la configuración pertinente.

En el caso de las líneas de pedido de las campañas de generación de demanda, haz lo siguiente:

  • lineItemType debe establecerse en LINE_ITEM_TYPE_DEMAND_GEN.
  • bidStrategy se debe configurar con el campo demandGenBid del objeto BiddingStrategy.
  • budget debe establecerse en un importe fijo a nivel de la línea de pedido y no se puede heredar del pedido de inserción principal.
  • demandGenSettings se usa para establecer configuraciones específicas de las líneas de pedido de las campañas de generación de demanda. El campo geoLanguageTargetingEnabled del objeto DemandGenSettings controla si la segmentación por ubicación y por idioma se establece a nivel de la línea de pedido o para grupos de anuncios individuales. Este campo no se puede actualizar después de crear el concepto. Establece el campo en true si prefieres configurar esta segmentación a nivel de la línea de pedido.
  • No se debe establecer creativeIds. Los recursos se asignan y configuran directamente en los recursos AdGroupAd.

Los siguientes campos son obligatorios para las líneas de pedido de las campañas de generación de demanda y funcionan de la misma manera que en otros tipos de líneas de pedido:

El recurso LineItem también tiene muchos campos opcionales que se pueden configurar. Consulta la documentación de referencia para obtener más información.

Crea una línea de pedido

Sigue estos pasos para crear una línea de pedido de la campaña de generación de demanda con los siguientes parámetros de configuración:

  • Un vuelo heredado y un presupuesto de USD 100
  • Es un modelo de ingresos de socios del 0.1% del costo total de medios.
  • Es una estrategia de ofertas que se optimiza en función de un costo promedio de USD 10 por conversión.
  • Es la preferencia para asignar la segmentación geográfica y por idioma directamente a los grupos de anuncios de la línea de pedido.

Java

// Provide the ID of the parent advertiser.
long advertiserId = advertiser-id

// Provide the ID of the parent insertion order.
long insertionOrderId = insertion-order-id

// Provide the display name of the line item.
String displayName = display-name

// Provide the Floodlight activity ID to use for conversion tracking.
long floodlightActivityId = floodlight-activity-id;

// Provide whether the line item will serve EU political ads.
String containsEuPoliticalAds = contains-eu-political-ads

// Create the line item structure.
LineItem lineItem =
    new LineItem()
        .setInsertionOrderId(insertionOrderId)
        .setDisplayName(displayName)
        .setLineItemType("LINE_ITEM_TYPE_DEMAND_GEN")
        .setEntityStatus("ENTITY_STATUS_DRAFT")
        .setContainsEuPoliticalAds(containsEuPoliticalAds);

// Create and set the line item flight.
LineItemFlight lineItemFlight =
    new LineItemFlight()
        .setFlightDateType("LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED");
lineItem.setFlight(lineItemFlight);

// Create and set the line item budget.
LineItemBudget lineItemBudget =
    new LineItemBudget()
        .setBudgetAllocationType("LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED")
        .setMaxAmount(100000000L);
lineItem.setBudget(lineItemBudget);

// Create and set the pacing setting.
Pacing pacing =
    new Pacing()
        .setPacingPeriod("PACING_PERIOD_FLIGHT")
        .setPacingType("PACING_TYPE_EVEN")
        .setDailyMaxMicros(10_000L);
lineItem.setPacing(pacing);

// Create and set the partner revenue model.
PartnerRevenueModel partnerRevenueModel =
    new PartnerRevenueModel()
        .setMarkupType(
            "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP")
        .setMarkupAmount(100L);
lineItem.setPartnerRevenueModel(partnerRevenueModel);

// Create and set the bidding strategy.
BiddingStrategy biddingStrategy =
    new BiddingStrategy()
        .setDemandGenBid(
            new DemandGenBiddingStrategy()
                .setType("DEMAND_GEN_BIDDING_STRATEGY_TYPE_TARGET_CPA")
                .setValue(10000000L));
lineItem.setBidStrategy(biddingStrategy);

// Create the conversion counting configuration.
ConversionCountingConfig conversionCountingConfig =
    new ConversionCountingConfig()
        .setPostViewCountPercentageMillis(100000L);

// Create and set the configuration for the floodlight activity used in
// conversion tracking.
TrackingFloodlightActivityConfig trackingFloodlightActivityConfig =
    new TrackingFloodlightActivityConfig()
        .setFloodlightActivityId(floodlightActivityId)
        .setPostClickLookbackWindowDays(90)
        .setPostViewLookbackWindowDays(90);
conversionCountingConfig.setFloodlightActivityConfigs(
    ImmutableList.of(trackingFloodlightActivityConfig));

// Set the conversion counting configuration.
lineItem.setConversionCounting(conversionCountingConfig);

// Create and set Demand Gen settings.
DemandGenSettings demandGenSettings =
    new DemandGenSettings().setGeoLanguageTargetingEnabled(false);
lineItem.setDemandGenSettings(demandGenSettings);

// Configure the create request.
LineItems.Create request =
    service.advertisers().lineItems().create(advertiserId, lineItem);

// Create the line item.
LineItem response = request.execute();

// Display the new line item.
System.out.printf(
    "Demand Gen line item %s was created.", response.getName());

Python

# Provide the ID of the parent advertiser.
advertiser_id = advertiser-id

# Provide the ID of the parent insertion order.
insertion_order_id = insertion-order-id

# Provide the display name of the line item.
display_name = display-video

# Provide the Floodlight activity ID to use for conversion tracking.
floodlight_activity_id = floodlight-activity-id

# Provide whether the line item will serve EU political ads.
contains_eu_political_ads = contains-eu-political-ads

# Create a line item object.
line_item_obj = {
    "insertionOrderId": insertion_order_id,
    "displayName": display_name,
    "lineItemType": "LINE_ITEM_TYPE_DEMAND_GEN",
    "entityStatus": "ENTITY_STATUS_DRAFT",
    "flight": {"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED"},
    "budget": {
        "budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED",
        "maxAmount": 100000000
    },
    "pacing": {
        "pacingPeriod": "PACING_PERIOD_FLIGHT",
        "pacingType": "PACING_TYPE_EVEN",
        "dailyMaxMicros": 10000,
    },
    "partnerRevenueModel": {
        "markupType": (
            "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
        ),
        "markupAmount": 100,
    },
    "bidStrategy": {
        "demandGenBid": {
            "type": "DEMAND_GEN_BIDDING_STRATEGY_TYPE_TARGET_CPA",
            "value": "10000000"
        }
    },
    "conversionCounting": {
        "postViewCountPercentageMillis": "100000",
        "floodlightActivityConfigs": [
            {
                "floodlightActivityId": floodlight_activity_id,
                "postClickLookbackWindowDays": 90,
                "postViewLookbackWindowDays": 90
            }
        ]
    },
    "containsEuPoliticalAds": contains_eu_political_ads,
    "demandGenSettings": {
        "geoLanguageTargetingEnabled": False
    }
}

# Build and execute request.
response = (
    service.advertisers()
    .lineItems()
    .create(advertiserId=advertiser_id, body=line_item_obj)
    .execute()
)

# Display the new line item.
print(f"Demand Gen line Item {response['name']} was created.")

PHP

// Provide the ID of the parent advertiser.
$advertiserId = advertiser-id;

// Provide the ID of the parent insertion order.
$insertionOrderId = insertion-order-id;

// Provide the display name of the line item.
$displayName = display-name;

// Provide the Floodlight activity ID to use for conversion tracking.
$floodlightActivityId = floodlight-activity-id;

// Provide whether the line item will serve EU political ads.
$containsEuPoliticalAds = contains-eu-political-ads;

// Create the Demand Gen line item structure.
$lineItem = new Google_Service_DisplayVideo_LineItem();
$lineItem->setInsertionOrderId($insertionOrderId);
$lineItem->setDisplayName($displayName);
$lineItem->setLineItemType('LINE_ITEM_TYPE_DEMAND_GEN');
$lineItem->setEntityStatus('ENTITY_STATUS_DRAFT');
$lineItem->setContainsEuPoliticalAds($containsEuPoliticalAds);

// Create and set the line item flight.
$flight = new Google_Service_DisplayVideo_LineItemFlight();
$flight->setFlightDateType('LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED');
$lineItem->setFlight($flight);

// Create and set the line item budget.
$budget = new Google_Service_DisplayVideo_LineItemBudget();
$budget->setBudgetAllocationType(
    'LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED'
);
$budget->setMaxAmount(100000000);
$lineItem->setBudget($budget);

// Create and set the pacing setting.
$pacing = new Google_Service_DisplayVideo_Pacing();
$pacing->setPacingPeriod('PACING_PERIOD_FLIGHT');
$pacing->setPacingType('PACING_TYPE_EVEN');
$pacing->setDailyMaxMicros(10000);
$lineItem->setPacing($pacing);

// Create and set the partner revenue model.
$partnerRevenueModel =
    new Google_Service_DisplayVideo_PartnerRevenueModel();
$partnerRevenueModel->setMarkupType(
    'PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP'
);
$partnerRevenueModel->setMarkupAmount(100);
$lineItem->setPartnerRevenueModel($partnerRevenueModel);

// Create and set the bidding strategy.
$demandGenBidStrategy =
    new Google_Service_DisplayVideo_DemandGenBiddingStrategy();
$demandGenBidStrategy->setType(
    'DEMAND_GEN_BIDDING_STRATEGY_TYPE_TARGET_CPA'
);
$demandGenBidStrategy->setValue(10000000);
$biddingStrategy = new Google_Service_DisplayVideo_BiddingStrategy();
$biddingStrategy->setDemandGenBid($demandGenBidStrategy);
$lineItem->setBidStrategy($biddingStrategy);

// Create and set the conversion counting config.
$conversionCountingConfig =
    new Google_Service_DisplayVideo_ConversionCountingConfig();
$conversionCountingConfig->setPostViewCountPercentageMillis(100000);
$trackingFloodlightActivityConfig =
    new Google_Service_DisplayVideo_TrackingFloodlightActivityConfig();
$trackingFloodlightActivityConfig->setFloodlightActivityId(
    $floodlightActivityId
);
$trackingFloodlightActivityConfig->setPostClickLookbackWindowDays(90);
$trackingFloodlightActivityConfig->setPostViewLookbackWindowDays(90);
$conversionCountingConfig->setFloodlightActivityConfigs(
    array($trackingFloodlightActivityConfig)
);
$lineItem->setConversionCounting($conversionCountingConfig);

// Create and set the Demand Gen settings.
$demandGenSettings =
    new Google_Service_DisplayVideo_DemandGenSettings();
$demandGenSettings->setGeoLanguageTargetingEnabled(false);
$lineItem->setDemandGenSettings($demandGenSettings);

// Call the API, creating the line item under the advertiser and
// insertion order given.
try {
    $result = $this->service->advertisers_lineItems->create(
        $advertiserId,
        $lineItem
    );
} catch (\Exception $e) {
    $this->renderError($e);
    return;
}

// Display the new line item.
printf('<p>Demand Gen line item %s was created.</p>', $result['name']);