פריט קמפיין ליצירת ביקוש מציג קבוצות של מודעות ומודעות במגוון פורמטים בפלטפורמות של Google עם ההשפעה הרחבה ביותר, כולל YouTube, Discover, Gmail ורשת המדיה של Google. פריטים ליצירת ביקוש, כמו סוגים אחרים של פריטים, מנוהלים באמצעות משאבי LineItem ופועלים על סמך תקציב, שיטת בידינג וטירגוט מוגדרים. יש גם הגדרות ספציפיות לפריטי מידע על קמפיינים ליצירת ביקוש שזמינות בשדה demandGenSettings.
לפריטים ליצירת ביקוש יש משאבי צאצא שנקראים קבוצות של מודעות. קבוצות מודעות מספקות רמת שליטה נוספת מתחת לפריט הבודד.
בחירת הגדרות
לפני שיוצרים פריט ליצירת ביקוש, כדאי לעיין בהגדרות הרלוונטיות ולהחליט מהן ההגדרות שרוצים.
לפריטים מקמפיינים ליצירת ביקוש:
- הערך של
lineItemTypeחייב להיותLINE_ITEM_TYPE_DEMAND_GEN. - צריך להגדיר את
bidStrategyבאמצעות השדהdemandGenBidשל האובייקטBiddingStrategy. - צריך להגדיר את
budgetכסכום קבוע ברמת פריט הקמפיין, ולא ניתן להעביר אותו בירושה מהזמנת הקמפיין של ההורה. - התג
demandGenSettingsמשמש להגדרת הגדרות ספציפיות לפריטי מלאי שטחי פרסום מסוג קמפיין ליצירת ביקוש. השדהgeoLanguageTargetingEnabledשל האובייקטDemandGenSettingsקובע אם הטירגוט לפי מיקום ושפה מוגדר ברמת הפריט או ברמת קבוצות המודעות הנפרדות. אי אפשר לעדכן את השדה הזה אחרי שיוצרים את פריט הקו. מגדירים את השדה ל-trueאם מעדיפים להגדיר את הטירגוט הזה ברמת פריט. - לא צריך להגדיר את
creativeIds. הנכסים מוקצים ומוגדרים ישירות במשאבי AdGroupAd.
חובה למלא את השדות הבאים בפריטים מקמפיינים ליצירת ביקוש, והם פועלים באותו אופן כמו בפריטים מקמפיינים מסוגים אחרים:
למשאב LineItem יש גם הרבה שדות אופציונליים שאפשר להגדיר. מידע נוסף מופיע במאמרי העזרה.
יצירת פריט
כך יוצרים פריט הזמנה ליצירת ביקוש עם ההגדרות הבאות:
- טיסה שעברה בירושה ותקציב של 100$.
- מודל הכנסות שותף של 0.1% מעלות המדיה הכוללת.
- שיטת בידינג שמבצעת אופטימיזציה להשגת עלות ממוצעת של 40 ש"ח להמרה.
העדפה להקצאת טירגוט לפי מיקום ושפה ישירות לקבוצות של מודעות במסגרת פריט.
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']);