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

DFP セールス マネージャの商品パッケージ

このガイドでは、DFP セールス マネージャの [商品パッケージ] タブと API の ProductPackagePackageProductPackageItem サービスの関連性について説明します。また、API 経由で販売カタログを使用する方法について、管理画面での入稿作業と結びつけて詳しく解説します。

はじめに

DFP セールス マネージャの [商品パッケージ] タブには、一緒に販売する商品オブジェクトグループ(パッケージ)が表示されます。たとえば、「スポーツ愛好家」ユーザー向けに販売する商品パッケージがあるとします。このパッケージには、特定のキーやオーディエンス セグメントをターゲットに設定したさまざまな商品が含まれます。これらの商品には、任意のものと必須のものがあります。

ProductPackage オブジェクトは、プロポーザルに関連付けて、ProductPackageItems を追加すると、Packages になります。パッケージはアイテムが入った「ショッピング カート」であり、これらのアイテムは「清算」手続きを経て ProposalLineItems となります。

商品パッケージとセールス マネージャのカタログ

商品パッケージを作成する

管理画面の [商品パッケージ] タブは、ProductPackagesProductPackageItemsPackages の 3 つのオブジェクトで構成されます。この 3 つすべてを活用するには、まず ProductPackage を作成します。これは、管理画面のパネルで空の商品パッケージを作成する(インスタンス化する)のと同じです。

画像

まずジョブに対して適切なサービスをインスタンス化します。

Java

    ProductPackageServiceInterface productPackageService =
        dfpServices.get(session, ProductPackageServiceInterface.class);

Python

  product_package_service = client.GetService('ProductPackageService',
                                              version='v201702')

ローカルの ProductPackage オブジェクトを作成し、名前を設定するとともに、後で ProductPackageItems の価格設定に使用する RateCard ID の配列を指定します。

Java

    // Create a local product package.
    ProductPackage productPackage = new ProductPackage();
    productPackage.setName(
        "Product package #" + new Random().nextInt(Integer.MAX_VALUE));
    productPackage.setRateCardIds(new long[] {rateCardId});

Python

  # Create a local product package.
  product_package = {
      'name': 'Product Package #%d' % random.randint(0, 100000000),
      'rateCardIds': [RATE_CARD_ID]
  }

これら 3 つのフィールドを設定すると、DFP のサーバーで ProductPackage オブジェクトを保持できるようになります。

Java

    // Create the product package on the server.
    ProductPackage[] productPackages =
        productPackageService.createProductPackages(
            new ProductPackage[] {productPackage});

Python

  result = product_package_service.createProductPackages([product_package])

この新しい商品パッケージは、実際のところ管理画面に表示される要素の 1 つにすぎません。DFP の商品パッケージは複数の部分から構成されています。ここで作成した商品パッケージは、管理画面の商品パッケージ パネルの上部にあたります。

画像

商品パッケージのアイテムを作成する

ProductPackageItems を作成するときには、1 つの商品パッケージで一緒に販売する商品をグループにまとめ、レート表の制限を割り当てます。このオブジェクトは商品とプロポーザル広告申込情報の中間にあたります。これは上で作成した空の商品パッケージに商品を追加することと同じです。

画像

まず適切なサービスを取得して、ProductPackageItem オブジェクトに空のコンストラクタを作成します。

Java

    ProductPackageItemServiceInterface productPackageItemService =
        dfpServices.get(session, ProductPackageItemServiceInterface.class);

    // Create a local product package item.
    ProductPackageItem productPackageItem = new ProductPackageItem();

Python

  product_package_item_service = client.GetService('ProductPackageItemService',
                                                   version='v201702')

次は、ProductPackageItem の作成元となる商品と、ProductPackageItems をグループにまとめる商品パッケージ ID を指定します。また、商品パッケージを販売する際にこの商品パッケージ アイテムを使用する必要があるかどうかも指定できます。

Java

    // Set the product from which the product package item is created.
    productPackageItem.setProductId(productId);

    // Set the product package that the product package item belongs to.
    productPackageItem.setProductPackageId(productPackageId);

    // Specify if the product package item is required for this product package.
    productPackageItem.setIsMandatory(true);

Python

  product_package_item = {
      # Set the product from which the product package item is created.
      'productId': PRODUCT_ID,
      # Set the product package that the product package item belongs to.
      'productPackageId': PRODUCT_PACKAGE_ID,
      # Specify if the product package item is required for this
      # product package.
      'isMandatory': True
  }

これらの必須フィールドを設定すると、DFP サーバーでオブジェクトを保持できるようになります。

Java

    // Create the product package item on the server.
    ProductPackageItem[] productPackageItems =
        productPackageItemService.createProductPackageItems(
            new ProductPackageItem[] {productPackageItem});

Python

  # Create the product package item on the server.
  result = product_package_item_service.createProductPackageItems(
      [product_package_item])

商品パッケージの下に作成したアイテムは、管理画面の商品パッケージ パネルの下部に一覧表示されます。

画像

プロポーザルの商品パッケージを使用する

パッケージを作成する

商品パッケージを作成して商品パッケージ アイテムを関連付けたら、商品パッケージとプロポーザルを結びつける仮想の「ショッピング カート」を作成する必要があります。これにより、未販売の商品では表されない特定の販売値を登録できるようになります。これは Package オブジェクトで表され、プロポーザル作成画面で生成されるショッピング カートにあたります。

画像

まず、PackageService をインスタンス化します。

Java

    PackageServiceInterface packageService =
        dfpServices.get(session, PackageServiceInterface.class);

Python

  package_service = client.GetService('PackageService', version='v201702')

次に、ローカルの Package オブジェクトを作成し、NameProposalIdProductPackageId の各必須フィールドと、ProposalLineItems に関連付ける RateCardId を設定します。

Java

    // Create a local package.
    Package pkg = new Package();
    pkg.setName("Package #" + new Random().nextInt(Integer.MAX_VALUE));

    // Set the proposal ID for the package.
    pkg.setProposalId(proposalId);

    // Set the product package ID to create the package from.
    pkg.setProductPackageId(productPackageId);

    // Set the rate card ID the proposal line items are priced with.
    pkg.setRateCardId(rateCardId);

Python

  # Create local package.
  package = {
      'name': 'Package #%d' % random.randint(0, 1000000),
      'proposalId': PROPOSAL_ID,
      'productPackageId': PRODUCT_PACKAGE_ID,
      'rateCardId': RATE_CARD_ID,
  }

これらのフィールドを設定すると、DFP サーバーに Package を作成できるようになります。

Java

    // Create the package on the server.
    Package[] packages = packageService.createPackages(new Package[] { pkg });

Python

  # Create the package on the server.
  result = package_service.createPackages([package])

パッケージからプロポーザル広告申込情報を作成する

パッケージを指定したら、プロポーザルの販売に進む前の最後のステップとして、パッケージからプロポーザル広告申込情報を作成します。この時点ではまだ、商品パッケージ アイテムはプロポーザルに追加されていません。この後、パッケージをフィルタリングするステートメントを使って操作を実行する必要があります。

Java

    // Create a statement to select a single package.
    StatementBuilder statementBuilder = new StatementBuilder()
        .where("id = :id")
        .orderBy("id ASC")
        .limit(1)
        .withBindVariableValue("id", packageId);

    // Get the package.
    PackagePage page = packageService.getPackagesByStatement(statementBuilder.toStatement());

    Package pkg = Iterables.getOnlyElement(Arrays.asList(page.getResults()));
        // Create action to activate packages.
    com.google.api.ads.dfp.axis.v201702.CreateProposalLineItemsFromPackages action =
        new com.google.api.ads.dfp.axis.v201702.CreateProposalLineItemsFromPackages();

    // Perform action.
    UpdateResult result = packageService.performPackageAction(
        action, statementBuilder.toStatement());

Python

  # Create a statement to select the single package.
  statement = (dfp.StatementBuilder()
               .Where('id = :id')
               .OrderBy('id', ascending=True)
               .Limit(1)
               .WithBindVariable('id', PACKAGE_ID))

  # Get the package.
  query_result = package_service.getPackagesByStatement(statement.ToStatement())

  package = query_result['results'][0]

  # Perform update packages action.
  result = package_service.performPackageAction(
      {'xsi_type': 'CreateProposalLineItemsFromPackages'},
      statement.ToStatement())

これで、商品パッケージを通じて販売するプロポーザル広告申込情報を含んだプロポーザルを用意できました。プロポーザル広告申込情報の作成に使用したパッケージのステータスCOMPLETED となります。続けて、プロポーザルのワークフローを使って送信手続きを行うことができます。

次のステップ

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

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