إنشاء بند إعلاني في "حملة زيادة الطلب"

يعرض عنصر "حملة زيادة الطلب" مجموعات إعلانية وإعلانات بتنسيقات متعدّدة على مساحات العرض الأكثر تأثيرًا التي توفّرها Google، بما في ذلك YouTube و"اقتراحات" وGmail و"شبكة Google الإعلانية". تتم إدارة البنود الإعلانية في "حملات زيادة الطلب"، مثل الأنواع الأخرى من البنود الإعلانية، باستخدام موارد LineItem، وتعمل استنادًا إلى الميزانية المحدّدة واستراتيجية عروض الأسعار والاستهداف. تتوفّر أيضًا إعدادات خاصة ببنود "حملات زيادة الطلب" في الحقل demandGenSettings.

تحتوي عناصر "حملات زيادة الطلب" على مراجع فرعية تُسمى المجموعات الإعلانية. توفّر المجموعات الإعلانية مستوى آخر من التحكّم ضمن تفاصيل الإعلان الفردية.

اختيار الإعدادات

قبل إنشاء بند إعلاني لحملة زيادة الطلب، راجِع الإعدادات ذات الصلة وحدِّدها.

بالنسبة إلى عناصر "حملات زيادة الطلب":

  • يجب ضبط lineItemType على LINE_ITEM_TYPE_DEMAND_GEN.
  • يجب ضبط bidStrategy باستخدام الحقل demandGenBid الخاص بالكائن BiddingStrategy.
  • يجب ضبط قيمة budget على مبلغ ثابت على مستوى البند الإعلاني، ولا يمكن اكتسابها من طلب الإدراج الرئيسي.
  • يُستخدَم demandGenSettings لضبط الإعدادات الخاصة بالعناصر في "حملات زيادة الطلب". يتحكّم الحقل geoLanguageTargetingEnabled في العنصر DemandGenSettings في ما إذا كان استهداف الموقع الجغرافي واللغة يتم ضبطه على مستوى عنصر الحملة أو على مستوى المجموعات الإعلانية الفردية. لا يمكن تعديل هذا الحقل بعد إنشاء عنصر العرض. اضبط الحقل على true إذا كنت تفضّل ضبط هذا الاستهداف على مستوى تفاصيل الإعلان.
  • يجب عدم ضبط creativeIds. يتم تعيين مواد العرض وتكوينها مباشرةً في موارد AdGroupAd.

يجب ملء الحقول التالية لبنود "حملات زيادة الطلب"، وهي تعمل بالطريقة نفسها التي تعمل بها في الأنواع الأخرى من البنود الإعلانية:

يحتوي مرجع LineItem أيضًا على العديد من الحقول الاختيارية التي يمكن ضبطها. يمكنك الاطّلاع على المستندات المرجعية للحصول على مزيد من المعلومات.

إنشاء بند إعلاني

إليك كيفية إنشاء عنصر "حملة زيادة الطلب" باستخدام الإعدادات التالية:

  • رحلة جوية موروثة وميزانية قدرها 100 دولار أمريكي
  • نموذج أرباح الشريك الذي يمثّل% 0.1 من إجمالي تكلفة جميع الوسائل
  • استراتيجية عروض أسعار تعمل على التحسين لتحقيق متوسّط تكلفة يبلغ 10 دولار أمريكي لكل إحالة ناجحة.
  • تفضيل تعيين الاستهداف حسب الموقع الجغرافي واستهداف اللغة مباشرةً للمجموعات الإعلانية ضمن البند الإعلاني

جافا

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