یک آیتم خطی Demand Gen به گروههای تبلیغاتی و تبلیغات در قالبهای مختلف در تأثیرگذارترین سطوح گوگل، از جمله یوتیوب، دیسکاور، جیمیل و شبکه نمایش گوگل، خدمات ارائه میدهد. آیتمهای خطی Demand Gen، مانند سایر انواع آیتمهای خطی، با استفاده از منابع LineItem مدیریت میشوند و بر اساس بودجه تعیینشده، استراتژی پیشنهاد قیمت و هدفگذاری عمل میکنند. همچنین تنظیمات خاصی برای آیتمهای خطی Demand Gen در فیلد demandGenSettings موجود است.
آیتمهای خطی Demand Gen منابع فرزندی به نام گروههای تبلیغاتی دارند. گروههای تبلیغاتی سطح دیگری از کنترل را تحت هر آیتم خطی ارائه میدهند.
پیکربندیها را انتخاب کنید
قبل از ایجاد یک ردیف آیتم تولید تقاضا، تنظیمات مربوطه را بررسی و در مورد آنها تصمیمگیری کنید.
برای اقلام خط تولید تقاضا:
-
lineItemTypeباید رویLINE_ITEM_TYPE_DEMAND_GENتنظیم شود. -
bidStrategyباید با استفاده از فیلدdemandGenBidشیءBiddingStrategyتنظیم شود. -
budgetباید در سطح ردیف آیتم روی یک مقدار ثابت تنظیم شود و نمیتواند از ترتیب درج والد به ارث برده شود. -
demandGenSettingsبرای تنظیم پیکربندیهای خاص برای آیتمهای خطی DemandGen استفاده میشود. فیلدgeoLanguageTargetingEnabledاز شیءDemandGenSettingsکنترل میکند که آیا هدفگذاری موقعیت مکانی و زبانی در سطح آیتم خطی یا برای گروههای تبلیغاتی جداگانه تنظیم شود. این فیلد پس از ایجاد آیتم خطی قابل بهروزرسانی نیست. اگر ترجیح میدهید این هدفگذاری در سطح آیتم خطی پیکربندی شود، فیلد را رویtrueتنظیم کنید. - نباید
creativeIdsتنظیم شود. داراییها مستقیماً در منابع AdGroupAd اختصاص داده شده و پیکربندی میشوند.
فیلدهای زیر برای ردیفهای اقلام تقاضای عمومی الزامی هستند و مانند سایر انواع ردیفها عمل میکنند:
-
flight. -
pacing. -
partnerRevenueModel.
منبع LineItem همچنین فیلدهای اختیاری زیادی دارد که میتوان آنها را تنظیم کرد. برای اطلاعات بیشتر، مستندات مرجع را مطالعه کنید.
یک آیتم خطی ایجاد کنید
در اینجا نحوه ایجاد یک ردیف آیتم Demand Gen با تنظیمات زیر آمده است:
- یک پرواز به ارث رسیده و بودجهای معادل ۱۰۰ دلار.
- مدل درآمدی مشارکتی با 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());
پایتون
# 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.")
پی اچ پی
// 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']);