Reminder: v201708 will be sunset on August 31, 2018.

DFP セールス マネージャのレートとレート表

このガイドでは、RateCardBaseRatePremiumFeature について概説し、API でこれらのアイテムを作成する方法、対応するセールス マネージャの各種オブジェクトでこれらのアイテムを使用する方法について説明します。

はじめに

DFP セールス マネージャのレート表と基本レートは、商品テンプレート商品プロポーザル広告申込情報の価格情報の設定に使用されるオブジェクトです。レート表は、Workflowsプロポーザルに関連付けるオブジェクトでもあります。

レート表

レート表は最上位のオブジェクトで、ここには少数のフィールド(レートを適用する CurrencyCode と、レート表に関連付けられているセールス マネージャ オブジェクトの表示権限を持つチーム)のみが含まれます。

基本レート

基本レートは次の 3 つのタイプに分類されます。

これらはいずれも価格情報を指定する役割を果たしますが、販売用の入稿オブジェクトのタイプごとに、各タイプのレート表に関連付けられた別個の BaseRate オブジェクトが必要になります。

プレミアム機能

プレミアム機能は、レート表に関連付けられている基本レートに対する価格調整です。こうした価格調整は、商品、商品テンプレート、商品パッケージ アイテムに含まれるターゲティングや機能に基づいて行われます(CustomTargeting がプロポーザル広告申込情報で使用されている場合にプレミアム値の設定に応じて価格を引き上げるなど)。プレミアム機能では、オブジェクトの配信レートタイプに応じて調整値を指定できます。

API を使ってレート表を作成する

レート表を作成するのに必要なフィールドは、名前と通貨コードの 2 つのみです。

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);
  rateCard.setPricingModel(PricingModel.NET);
    

Python

  # Initialize appropriate service.
  rate_card_service = client.GetService('RateCardService', version='v201711')

  # Create a rate card.
  rate_card = {
      'name': 'RateCard #%d' % random.randint(0, 100000000),
      'currencyCode': CURRENCY_CODE,
      'pricingModel': 'NET',
  }
    

表示に制限をかける teams がある場合は、レート表にチーム ID の配列を設定します。

Java

  rateCard.setAppliedTeamIds(teamIds);
    

Python

  rate_card['appliedTeamIds'] = TEAM_IDS
    

フィールドの設定が終わったら、新しい RateCard オブジェクトを作成します。それには、レート表オブジェクトの配列に対して createRateCards を呼び出します。

Java

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

Python

  result = rate_card_service.createRateCards([rate_card])
    

DFP セールス マネージャでは、レート表は価格設定やカタログ作成にかかわる複数の要素を 1 つにまとめるシェル オブジェクトにすぎません。したがって次のステップで、対応している各種オブジェクトの基本レートと、価格調整用のプレミアム機能を作成します。

API を使って基本レートを作成する

productsproduct templatesproduct package items のそれぞれに適用する 3 種類の基本レートを作成できます。

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();
    

3 つのタイプのうちいずれを使用する場合も、基本レートの関連付け先となるレート表と、実際のレート、関連付けられる商品、商品テンプレート、商品パッケージ アイテム 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);
    

Python

  # Create a product base rate.
  product_base_rate = {
      'xsi_type': 'ProductBaseRate',
      # Set the rate card ID that the product base rate belongs to.
      'rateCardId': rate_card_id,
      # Set the product id the base rate will be applied to.
      'productId': product_id,
      # Set the rate to be $2.
      'rate': {
          'currencyCode': 'USD',
          'microAmount': 2000000
      }
  }
    

商品テンプレートの場合:

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);
    

Python

  # Create a product template base rate.
  product_template_base_rate = {
      'xsi_type': 'ProductTemplateBaseRate',
      # Set the rate card ID that the product template base rate belongs to.
      'rateCardId': rate_card_id,
      # Set the product template the base rate will be applied to.
      'productTemplateId': product_template_id,
      # Set the rate to be $2.
      'rate': {
          'currencyCode': 'USD',
          'microAmount': 2000000
      }
  }
    

商品パッケージ アイテムの場合:

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);
    

Python

  # Create a base rate for a product package item.
  product_package_item_base_rate = {
      'xsi_type': 'ProductPackageItemBaseRate',
      # Set the rate card ID that the product package item base rate
      # belongs to.
      'rateCardId': RATE_CARD_ID,
      # Set the product package item the base rate will be applied to.
      'productPackageItemId': PRODUCT_PACKAGE_ITEM_ID,
      # Create a rate worth $2 USD and set that on the product package item
      # base rate.
      'rate': {
          'xsi_type': 'Money',
          'currencyCode': 'USD',
          'microAmount': 2000000,
      }
  }
    

必須フィールドの設定が完了したら、DFP でこれらのアイテムを作成します。

Java

      // 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});
    

Python

  # Create the product base rate on the server.
  base_rates = base_rate_service.createBaseRates(
      [product_base_rate])
  # Create the product template item base rate on the server.
  base_rates = base_rate_service.createBaseRates(
      [product_template_base_rate])
  # Create the product package item base rate on the server.
  result = base_rate_service.createBaseRates([product_package_item_base_rate])
    

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();
    

Python

  # Initialize appropriate services.
  premium_rate_service = client.GetService('PremiumRateService',
                                           version='v201711')

  # Create an ad unit premium to apply to the rate card.
  ad_unit_premium_feature = {
      'xsi_type': 'AdUnitPremiumFeature'
  }
    

プレミアム機能で、レート値を適用するプレミアム機能のほか、課金タイプ、調整サイズ、調整タイプを指定するには、PremiumRateValue を作成して割り当てます。調整タイプが ABSOLUTE_VALUE の場合、指定した通貨で 100 万を 1 単位として調整の値を指定します。

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);
    

Python

  # 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).
  cpm_premium_rate_value = {
      'premiumFeature': ad_unit_premium_feature,
      'rateType': 'CPM',
      'adjustmentSize': 2000000,
      'adjustmentType': '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);
    

Python

  # 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).
  cpc_premium_rate_value = {
      'premiumFeature': ad_unit_premium_feature,
      'rateType': 'CPC',
      'adjustmentSize': 10000,
      'adjustmentType': '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});
    

Python

  # Create premium rate.
  # 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.
  premium_rate = {
      'rateCardId': rate_card_id,
      'pricingMethod': 'ANY_VALUE',
      'premiumFeature': ad_unit_premium_feature,
      'premiumRateValues': [cpc_premium_rate_value, cpm_premium_rate_value]
  }
    

必須フィールドをすべて設定したら、サーバーでプレミアム レートを作成します。

Java

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

Python

  # Add premium_rates.
  premium_rates = premium_rate_service.createPremiumRates([premium_rate])
    

各機能でレート表、基本レート、プレミアム レートを使用する

価格設定のオブジェクトをすべて作成した後は、レート表の ID を参照してそれらのオブジェクトを使用することになります。レート表を参照するオブジェクトは次のとおりです。

  • ProposalLineItems
  • Products
  • ProductTemplates
  • ProductPackages
  • Packages

次のステップ

フィードバックを送信...

DoubleClick for Publishers API
DoubleClick for Publishers API
ご不明な点がありましたら、Google のサポートページをご覧ください。