/// <summary> /// Run the code examples. /// </summary> public void Run(AdManagerUser user, long proposalId) { using (ProposalLineItemService proposalLineItemService = user.GetService <ProposalLineItemService>()) using (NetworkService networkService = user.GetService <NetworkService>()) { ProposalLineItem proposalLineItem = new ProposalLineItem(); proposalLineItem.name = "Proposal line item #" + new Random().Next(int.MaxValue); proposalLineItem.proposalId = proposalId; proposalLineItem.lineItemType = LineItemType.STANDARD; // Get the root ad unit ID used to target the whole site. String rootAdUnitId = networkService.getCurrentNetwork().effectiveRootAdUnitId; // Create inventory targeting. InventoryTargeting inventoryTargeting = new InventoryTargeting(); // Create ad unit targeting for the root ad unit (i.e. the whole network). AdUnitTargeting adUnitTargeting = new AdUnitTargeting(); adUnitTargeting.adUnitId = rootAdUnitId; adUnitTargeting.includeDescendants = true; inventoryTargeting.targetedAdUnits = new AdUnitTargeting[] { adUnitTargeting }; RequestPlatformTargeting requestPlatformTargeting = new RequestPlatformTargeting() { targetedRequestPlatforms = new RequestPlatform[] { RequestPlatform.BROWSER } }; // Set targeting. proposalLineItem.targeting = new Targeting() { inventoryTargeting = inventoryTargeting, requestPlatformTargeting = requestPlatformTargeting }; // Create creative placeholder. Size size = new Size() { width = 300, height = 250, isAspectRatio = false }; CreativePlaceholder creativePlaceholder = new CreativePlaceholder(); creativePlaceholder.size = size; proposalLineItem.creativePlaceholders = new CreativePlaceholder[] { creativePlaceholder }; // Set the length of the proposal line item to run. proposalLineItem.startDateTime = DateTimeUtilities.FromDateTime(System.DateTime.Now.AddDays(7), "America/New_York"); proposalLineItem.endDateTime = DateTimeUtilities.FromDateTime(System.DateTime.Now.AddDays(30), "America/New_York"); // Set delivery specifications for the proposal line item. proposalLineItem.deliveryRateType = DeliveryRateType.EVENLY; // Set pricing for the proposal line item for 1000 impressions at a CPM of $2 // for a total value of $2. proposalLineItem.goal = new Goal() { unitType = UnitType.IMPRESSIONS, units = 1000L }; proposalLineItem.netCost = new Money() { currencyCode = "USD", microAmount = 2000000L }; proposalLineItem.netRate = new Money() { currencyCode = "USD", microAmount = 2000000L }; proposalLineItem.rateType = RateType.CPM; try { // Create the proposal line item on the server. ProposalLineItem[] proposalLineItems = proposalLineItemService.createProposalLineItems(new ProposalLineItem[] { proposalLineItem }); foreach (ProposalLineItem createdProposalLineItem in proposalLineItems) { Console.WriteLine("A proposal line item with ID \"{0}\" " + "and name \"{1}\" was created.", createdProposalLineItem.id, createdProposalLineItem.name); } } catch (Exception e) { Console.WriteLine( "Failed to create proposal line items. " + "Exception says \"{0}\"", e.Message); } } }
/// <summary> /// Run the code example. /// </summary> public void Run(AdManagerUser user) { using (LineItemService lineItemService = user.GetService <LineItemService>()) { // Set the order that all created line items will belong to and the // video ad unit ID to target. long orderId = long.Parse(_T("INSERT_ORDER_ID_HERE")); string targetedVideoAdUnitId = _T("INSERT_TARGETED_VIDEO_AD_UNIT_ID_HERE"); // Set the content bundle to target long contentBundleId = long.Parse(_T("INSERT_CONTENT_BUNDLE_ID_HERE")); // Set the CMS metadata value to target long cmsMetadataValueId = long.Parse(_T("INSERT_CMS_METADATA_VALUE_ID_HERE")); // Create content targeting. ContentTargeting contentTargeting = new ContentTargeting() { targetedVideoContentBundleIds = new long[] { contentBundleId } }; // Create inventory targeting. InventoryTargeting inventoryTargeting = new InventoryTargeting() { targetedAdUnits = new AdUnitTargeting[] { new AdUnitTargeting() { adUnitId = targetedVideoAdUnitId, includeDescendants = true } } }; // Create video position targeting. VideoPositionTargeting videoPositionTargeting = new VideoPositionTargeting() { targetedPositions = new VideoPositionTarget[] { new VideoPositionTarget() { videoPosition = new VideoPosition() { positionType = VideoPositionType.PREROLL } } } }; // Target only video platforms RequestPlatformTargeting requestPlatformTargeting = new RequestPlatformTargeting() { targetedRequestPlatforms = new RequestPlatform[] { RequestPlatform.VIDEO_PLAYER } }; // Create custom criteria set CustomCriteriaSet customCriteriaSet = new CustomCriteriaSet() { logicalOperator = CustomCriteriaSetLogicalOperator.AND, children = new CustomCriteriaNode[] { new CmsMetadataCriteria() { cmsMetadataValueIds = new long[] { cmsMetadataValueId }, @operator = CmsMetadataCriteriaComparisonOperator.EQUALS } } }; // Create targeting. Targeting targeting = new Targeting() { contentTargeting = contentTargeting, inventoryTargeting = inventoryTargeting, videoPositionTargeting = videoPositionTargeting, requestPlatformTargeting = requestPlatformTargeting, customTargeting = customCriteriaSet }; // Create local line item object. LineItem lineItem = new LineItem() { name = "Video line item - " + this.GetTimeStamp(), orderId = orderId, targeting = targeting, lineItemType = LineItemType.SPONSORSHIP, allowOverbook = true, environmentType = EnvironmentType.VIDEO_PLAYER, creativeRotationType = CreativeRotationType.OPTIMIZED }; // Create the master creative placeholder. CreativePlaceholder creativeMasterPlaceholder = new CreativePlaceholder() { size = new Size() { width = 400, height = 300, isAspectRatio = false } }; // Create companion creative placeholders. CreativePlaceholder companionCreativePlaceholder1 = new CreativePlaceholder() { size = new Size() { width = 300, height = 250, isAspectRatio = false } }; CreativePlaceholder companionCreativePlaceholder2 = new CreativePlaceholder() { size = new Size() { width = 728, height = 90, isAspectRatio = false } }; // Set companion creative placeholders. creativeMasterPlaceholder.companions = new CreativePlaceholder[] { companionCreativePlaceholder1, companionCreativePlaceholder2 }; // Set the size of creatives that can be associated with this line item. lineItem.creativePlaceholders = new CreativePlaceholder[] { creativeMasterPlaceholder }; // Set delivery of video companions to optional. lineItem.companionDeliveryOption = CompanionDeliveryOption.OPTIONAL; // Set the line item to run for one month. lineItem.startDateTimeType = StartDateTimeType.IMMEDIATELY; lineItem.endDateTime = DateTimeUtilities.FromDateTime(System.DateTime.Now.AddMonths(1), "America/New_York"); // Set the cost per day to $1. lineItem.costType = CostType.CPD; lineItem.costPerUnit = new Money() { currencyCode = "USD", microAmount = 1000000L }; // Set the percentage to be 100%. lineItem.primaryGoal = new Goal() { goalType = GoalType.DAILY, unitType = UnitType.IMPRESSIONS, units = 100 }; try { // Create the line item on the server. LineItem[] createdLineItems = lineItemService.createLineItems(new LineItem[] { lineItem }); foreach (LineItem createdLineItem in createdLineItems) { Console.WriteLine( "A line item with ID \"{0}\", belonging to order ID \"{1}\", and " + "named \"{2}\" was created.", createdLineItem.id, createdLineItem.orderId, createdLineItem.name); } } catch (Exception e) { Console.WriteLine("Failed to create line items. Exception says \"{0}\"", e.Message); } } }