Crea un elemento pubblicitario Demand Gen

Un elemento pubblicitario Demand Gen pubblica gruppi di annunci e annunci in più formati sulle piattaforme di maggiore impatto di Google, tra cui YouTube, il Feed personalizzato, Gmail e la Rete Display di Google. Gli elementi pubblicitari Demand Gen, come altri tipi di elementi pubblicitari, vengono gestiti utilizzando le risorse LineItem e operano in base al budget, alla strategia di offerta e al targeting impostati. Sono disponibili anche impostazioni specifiche per gli elementi pubblicitari Demand Gen nel campo demandGenSettings.

Gli elementi pubblicitari Demand Gen hanno risorse secondarie chiamate gruppi di annunci. I gruppi di annunci forniscono un altro livello di controllo sotto il singolo elemento pubblicitario.

Scegliere le configurazioni

Prima di creare un elemento pubblicitario Demand Gen, esamina e scegli le impostazioni pertinenti.

Per gli elementi pubblicitari Demand Gen:

  • lineItemType deve essere impostato su LINE_ITEM_TYPE_DEMAND_GEN.
  • bidStrategy deve essere impostato utilizzando il BiddingStrategy campo dell'oggetto demandGenBid.
  • budget deve essere impostato su un importo fisso a livello di elemento pubblicitario e non può essere ereditato dall'ordine di inserzione principale.
  • demandGenSettings viene utilizzato per impostare configurazioni specifiche per gli elementi pubblicitari Demand Gen. Il geoLanguageTargetingEnabled campo dell'oggetto DemandGenSettings controlla se il targeting per località e lingua è impostato a livello di elemento pubblicitario o per singoli gruppi di annunci. Questo campo non può essere aggiornato dopo la creazione dell'elemento pubblicitario. Imposta il campo su true se preferisci configurare questo targeting a livello di elemento pubblicitario.
  • creativeIds non deve essere impostato. Gli asset vengono assegnati direttamente e configurati nelle risorse AdGroupAd.

I seguenti campi sono obbligatori per gli elementi pubblicitari Demand Gen e funzionano come in altri tipi di elementi pubblicitari:

La risorsa LineItem ha anche molti campi facoltativi che possono essere impostati. Per ulteriori informazioni, consulta la documentazione di riferimento.

Creare un elemento pubblicitario

Ecco come creare un elemento pubblicitario Demand Gen con le seguenti impostazioni:

  • Un periodo di pubblicazione ereditato e un budget di 100 $.
  • Un modello di entrate del partner pari allo 0,1% del costo totale dei media.
  • Una strategia di offerta che ottimizza in base a un costo medio di 10 $per conversione.
  • La preferenza per l'assegnazione del targeting per località e lingua direttamente ai gruppi di annunci nell'elemento pubblicitario.

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']);