Creare un elemento pubblicitario

Un elemento pubblicitario fa offerte sulle impressioni e pubblica l'inventario pubblicitario acquistato. Le risorse LineItem lo fanno in base al budget, alla strategia di offerta e al targeting impostati.

Gli elementi pubblicitari YouTube e Demand Gen hanno risorse secondarie chiamate gruppi di annunci. I gruppi di annunci forniscono un altro livello di targeting nell'ambito di un unico budget dell'elemento pubblicitario.

Scegliere le configurazioni

Prima di creare una voce di inventario pubblicitario, rivedi e decidi queste impostazioni:

Anche la risorsa LineItem ha molti campi facoltativi. Alcuni vengono utilizzati solo da determinati tipi di elementi pubblicitari. Per saperne di più, consulta la documentazione di riferimento.

Scegli creatività

Devi assegnare almeno una creatività valida e approvata all'elemento pubblicitario prima che venga pubblicata. Il tipo di elemento pubblicitario limiterà il tipo di creatività che puoi assegnare.

Utilizza la funzione list per recuperare le creatività esistenti. Se devi creare una nuova creatività per l'elemento pubblicitario, segui la nostra guida Assegnare una creatività. Assegna la creatività all'elemento pubblicitario utilizzando il relativo ID.

Come creare un elemento pubblicitario

Ecco come creare un elemento pubblicitario display con le seguenti impostazioni:

  • Un periodo di pubblicazione e un budget ereditati.
  • Un modello di entrate del partner pari allo 0,1% del costo totale dei media.
  • Una strategia di offerta impostata per massimizzare la spesa in base alle impressioni visibili.

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 list of IDs of the creative resources that the line item will
// serve.
List<Long> creativeIds = creative-ids;

// 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_DISPLAY_DEFAULT")
        .setEntityStatus("ENTITY_STATUS_DRAFT")
        .setCreativeIds(creativeIds)
        .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_UNLIMITED");
lineItem.setBudget(lineItemBudget);

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

// Create and set the frequency cap.
FrequencyCap frequencyCap =
    new FrequencyCap().setTimeUnit("TIME_UNIT_DAYS").setTimeUnitCount(1).setMaxImpressions(10);
lineItem.setFrequencyCap(frequencyCap);

// 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()
        .setMaximizeSpendAutoBid(
            new MaximizeSpendBidStrategy()
                .setPerformanceGoalType("BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED"));
lineItem.setBidStrategy(biddingStrategy);

// 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 ID.
System.out.printf("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-name

# Provide the list of IDs of the creative resources that the line item will
# serve.
creative_ids = creative-ids

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

# Create a line item object with example values.
line_item_obj = {
    "insertionOrderId": insertion_order_id,
    "displayName": display_name,
    "lineItemType": "LINE_ITEM_TYPE_DISPLAY_DEFAULT",
    "entityStatus": "ENTITY_STATUS_DRAFT",
    "flight": {"flightDateType": "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED"},
    "budget": {
        "budgetAllocationType": "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED"
    },
    "pacing": {
        "pacingPeriod": "PACING_PERIOD_FLIGHT",
        "pacingType": "PACING_TYPE_ASAP",
        "dailyMaxMicros": 10000,
    },
    "frequencyCap": {
        "timeUnit": "TIME_UNIT_DAYS",
        "timeUnitCount": 1,
        "maxImpressions": 10,
    },
    "partnerRevenueModel": {
        "markupType": (
            "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP"
        ),
        "markupAmount": 100,
    },
    "creativeIds": creative_ids,
    "bidStrategy": {
        "maximizeSpendAutoBid": {
            "performanceGoalType": (
                "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED"
            )
        }
    },
    "contains_eu_political_ads": contains_eu_political_ads,
}

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

# Display the new line item.
print(f"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 list of IDs of the creative resources that the line item
// will serve.
$creativeIds =  creative-ids;

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

// Create the line item structure.
$lineItem = new Google_Service_DisplayVideo_LineItem();
$lineItem->setInsertionOrderId($insertionOrderId);
$lineItem->setDisplayName($displayName);
$lineItem->setLineItemType('LINE_ITEM_TYPE_DISPLAY_DEFAULT');
$lineItem->setEntityStatus('ENTITY_STATUS_DRAFT');
$lineItem->setCreativeIds($creativeIds);
$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_UNLIMITED'
);
$lineItem->setBudget($budget);

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

// Create and set the frequency cap.
$frequencyCap = new Google_Service_DisplayVideo_FrequencyCap();
$frequencyCap->setMaxImpressions(10);
$frequencyCap->setTimeUnit('TIME_UNIT_DAYS');
$frequencyCap->setTimeUnitCount(1);
$lineItem->setFrequencyCap($frequencyCap);

// 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.
$maxSpendBidStrategy = new Google_Service_DisplayVideo_MaximizeSpendBidStrategy();
$maxSpendBidStrategy->setPerformanceGoalType('BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED');
$biddingStrategy = new Google_Service_DisplayVideo_BiddingStrategy();
$biddingStrategy->setMaximizeSpendAutoBid($maxSpendBidStrategy);
$lineItem->setBidStrategy($biddingStrategy);

// 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 ID.
printf('<p>Line Item %s was created.</p>', $result['name']);