Reminder: v201702 will be sunset on February 28, 2018.

DFP 销售管理系统费率和价目表

本指南阐明了 RateCardBaseRatePremiumFeature 的定义,同时介绍了如何在 API 中创建这些对象,以及如何将这些对象与它们所支持的各种销售管理系统对象结合使用。

基础入门

DFP 销售管理系统中的价目表和基本费率是用于为产品模板产品提案订单项设置定价信息的对象。此外,价目表还负责将 Workflows 绑定至提案

价目表

价目表是仅包含少量字段(即要将费率应用到的 CurrencyCode 以及可详细查看您的与价目表相关联的销售管理系统对象的小组)的顶级对象。

基本费率

基本费率有三种不同的类型:

每种类型在功能方面都很相似,即它们都决定着定价信息,但对于每种类型的销售广告投放管理对象,您则需要将不同的 BaseRate 对象绑定到每种基本费率类型的价目表。

附加费功能

附加费功能是指应用于与价目表相关联的基本费率的定价调整项。您可以根据自己的产品、产品模板或产品包项所含的定位条件和功能来应用这些定价调整项(例如,如果您对提案订单项使用了 CustomTargeting,则可以根据附加费值来提高定价)。附加费功能可以基于相应对象的投放速率类型来指定调整项。

通过 API 创建价目表

要创建价目表,您只需填写两个必填字段:“名称”和“货币代码”。

Java

  // Get the RateCardService.
  RateCardServiceInterface rateCardService =
      dfpServices.get(session, RateCardServiceInterface.class);

  // Create a rate card.
  RateCard rateCard = new RateCard();
  rateCard.setName("RateCard #" + new Random().nextInt(Integer.MAX_VALUE));
  rateCard.setCurrencyCode(currencyCode);
    

如果您想限制任何 teams 的查看权限,可通过在价目表中设置一组小组 ID 来实现:

Java

  rateCard.setAppliedTeamIds(teamIds);
    

设置完这些字段后,您便可通过对一组价目表对象调用 createRateCards 来新建 RateCard 对象。

Java

  // Create the rate card on the server.
  RateCard[] rateCards = rateCardService.createRateCards(new RateCard[] {rateCard});
    

由于价目表只是将 DFP 销售管理系统中的定价和分类信息的多个方面结合在一起的 Shell 对象,因此,下一步即是为所支持的各种对象创建基本费率以及为价格调整项创建功能附加费。

通过 API 创建基本费率

您可以创建三类应用于 productsproduct templatesproduct package items 的基本费率。

Java

  // Get the BaseRateService.
  BaseRateServiceInterface baseRateService =
      dfpServices.get(session, BaseRateServiceInterface.class);
  // Create a base rate for a product.
  ProductBaseRate productBaseRate = new ProductBaseRate();
  // Create a base rate for a product template.
  ProductTemplateBaseRate productTemplateBaseRate = new ProductTemplateBaseRate();
  // Create a base rate for a product package item.
  ProductPackageItemBaseRate productPackageItemBaseRate = new ProductPackageItemBaseRate();
    

对于所有这三种类型,您都需设置要与基本费率相关联的价目表、实际费率以及相关联的产品、产品模板或产品包项 ID。

对于产品:

Java

  // Set the rate card ID that the product base rate belongs to.
  productBaseRate.setRateCardId(rateCardId);

  // Set the product the base rate will be applied to.
  productBaseRate.setProductId(productId);

  // Create a rate worth $2 and set that on the product base rate.
  Money rate = new Money();
  rate.setCurrencyCode("USD");
  rate.setMicroAmount(2000000L);
  productBaseRate.setRate(rate);
    

对于产品模板:

Java

  // Set the rate card ID that the product template base rate belongs to.
  productTemplateBaseRate.setRateCardId(rateCardId);

  // Set the product template the base rate will be applied to.
  productTemplateBaseRate.setProductTemplateId(productTemplateId);

  // Create a rate worth $2 and set that on the product template base rate.
  Money rate = new Money();
  rate.setCurrencyCode("USD");
  rate.setMicroAmount(2000000L);
  productTemplateBaseRate.setRate(rate);
    

对于产品包项:

Java

  // Set the rate card ID that the product package item base rate belongs to.
  productPackageItemBaseRate.setRateCardId(rateCardId);

  // Set the product package item the base rate will be applied to.
  productPackageItemBaseRate.setProductPackageItemId(productPackageItemId);

  // Create a rate worth $2 USD and set that on the product package item base rate.
  Money rate = new Money();
  rate.setCurrencyCode("USD");
  rate.setMicroAmount(2000000L);
  productPackageItemBaseRate.setRate(rate);
    

设置完必填字段后,您便可在 DFP 中创建基本费率:

  // Create the product base rate on the server.
  BaseRate[] baseRates = baseRateService.createBaseRates(
      new BaseRate[] {productBaseRate});
  // Create the product template base rate on the server.
  BaseRate[] baseRates = baseRateService.createBaseRates(
      new BaseRate[] {productTemplateBaseRate});
  // Create the product package item base rate on the server.
  BaseRate[] baseRates = baseRateService.createBaseRates(new BaseRate[] {
      productPackageItemBaseRate});

通过 API 为功能创建附加费率

若想创建附加费率,您需要指定您希望修改价目表中的哪类功能。在下方的示例中,系统将创建广告单元附加费:

Java

  // Get the PremiumRateService.
  PremiumRateServiceInterface premiumRateService =
      dfpServices.get(session, PremiumRateServiceInterface.class);

  PremiumRate premiumRate = new PremiumRate();

  // Create an ad unit premium to apply to the rate card.
  AdUnitPremiumFeature adUnitPremiumFeature = new AdUnitPremiumFeature();
    

在附加费功能中,您需要创建并分配一个 PremiumRateValue 来指定定价类型、调整范围、调整类型以及用来应用费率值的目标附加费功能。当调整类型为 ABSOLUTE_VALUE 时,则表示调整是在采用微货币单位的情况下完成的。

Java

  // Create a CPM based premium rate value with adjustments in micro amounts.
  // This will adjust a CPM priced proposal line item that has
  // inventory targeting specified by 2 units of the currency associated with
  // the rate card (this comes from absolute value adjustment).
  PremiumRateValue cpmPremiumRateValue = new PremiumRateValue();
  cpmPremiumRateValue.setPremiumFeature(adUnitPremiumFeature);
  cpmPremiumRateValue.setRateType(RateType.CPM);
  cpmPremiumRateValue.setAdjustmentSize(2000000L);
  cpmPremiumRateValue.setAdjustmentType(PremiumAdjustmentType.ABSOLUTE_VALUE);
    

调整也可以采用百分比的形式,如创建 CPC 附加费率值时所示:

Java

  // Create a CPC based premium rate value with adjustments in milli amounts.
  // This will adjust a CPC priced proposal line item that has
  // inventory targeting specified by 10% of the cost associated with the rate
  // card (this comes from a percentage adjustment).
  PremiumRateValue cpcPremiumRateValue = new PremiumRateValue();
  cpcPremiumRateValue.setPremiumFeature(adUnitPremiumFeature);
  cpcPremiumRateValue.setRateType(RateType.CPC);
  cpcPremiumRateValue.setAdjustmentSize(10000L);
  cpcPremiumRateValue.setAdjustmentType(PremiumAdjustmentType.PERCENTAGE);
    

在创建完附加费率并将其与附加费功能相关联后,请设置以下信息:价目表、定价方式、附加费功能以及您已创建的所有附加费率值。

Java

  // Associate premium rate with the rate card and set premium information.
  // This premium will apply for proposal line items targeting 'any' ad unit
  // for both CPM and CPC rate types.
  premiumRate.setRateCardId(rateCardId);
  premiumRate.setPricingMethod(PricingMethod.ANY_VALUE);
  premiumRate.setPremiumFeature(adUnitPremiumFeature);
  premiumRate.setPremiumRateValues(new PremiumRateValue[] {
      cpmPremiumRateValue, cpcPremiumRateValue});
    

设置完所有必填字段后,您便可在服务器上创建附加费率:

Java

  PremiumRate[] createdPremiumRates =
      premiumRateService.createPremiumRates(new PremiumRate[] {premiumRate});
    

使用价目表、基本费率和功能附加费率

当您创建了所有定价对象后,对这些对象的所有后续使用都将通过引用价目表的 ID 来实现。可引用价目表的对象包括:

  • ProposalLineItems
  • Products
  • ProductTemplates
  • ProductPackages
  • Packages

后续步骤

发送以下问题的反馈:

此网页
DoubleClick for Publishers
DoubleClick for Publishers
需要帮助?请访问我们的支持页面