Reminder: v201611 will be sunset on November 30, 2017.

スタートガイド

デベロッパーは、DFP API を使用して、広告枠の管理、オーダーの作成、レポートの取得などを行うアプリケーションを作成できます。

DFP API では SOAP が採用されています。作成開始にあたっては、Java、.NET、Python、PHP、Ruby 形式のクライアント ライブラリをご利用いただけます。最初の API リクエストを行うための方法は以下のとおりです。

DFP ネットワークにアクセスする

DFP アカウントをまだお持ちでない場合は、アカウントを作成します。他と切り離した環境で API をテストする場合は、テスト ネットワークを作成することもできます。

ネットワーク コードをメモしておきます。このコードは、ネットワークにログインしたときの URL に含まれています。たとえば、URL が https://www.google.com/dfp/2032576#delivery の場合、2032576 がネットワーク コードです。

認証情報を作成する

すべての DFP API リクエストは OAuth 2.0 を使用して認証する必要があります。以下では、ご自分の DFP データにアクセスする単純な場合を例に、手順を説明します。詳細とその他の方法については、認証をご覧ください。

  1. Google Cloud Platform コンソールの認証情報ページを開きます。
  2. プロジェクト メニューで [プロジェクトを作成] を選択し、プロジェクトの名前を入力します。また、必要に応じてプロジェクト ID を編集します。指定が終わったら [作成] をクリックします。
  3. 認証情報ページで [認証情報を作成] を選択し、[サービス アカウント キー] を選択します。
  4. [新しいサービス アカウント] を選択し、キーのタイプとして JSON を選択します。
  5. [作成] をクリックして、秘密鍵を含んだファイルをダウンロードします。

DFP ネットワークを設定する

  1. DoubleClick for Publishers ネットワークを開きます。
  2. [管理者] タブをクリックします。
  3. [API アクセス] が有効になっていることを確認します。
  4. [サービス アカウント ユーザーを追加] をクリックします。
  5. 前の手順で作成したサービス アカウントのメールアドレスを使ってフォームに記入します。
  6. [保存] をクリックします。サービス アカウントの追加を確認するメッセージが表示されます。

クライアントを設定する

DFP クライアント ライブラリの 1 つをダウンロードします。クライアント ライブラリには、アプリケーションをより短時間で簡単に開発できるようにするためのラッパー関数やラッパー機能が用意されています。

クライアント ライブラリが提供されている各言語について、コーディングの方法を紹介します。該当するタブをクリックしてご覧ください。

Java

Java クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。

  1. Eclipse プロジェクトを作成する

    Eclipse を開き、説明どおり Eclipse と Maven を設定します。

  2. 認証情報を設定する

    ads.properties ファイルをホーム ディレクトリにコピーし、必須フィールドに入力します。

    [...]
    api.dfp.applicationName=INSERT_APPLICATION_NAME_HERE
    api.dfp.jsonKeyPairPath=INSERT_PATH_TO_JSON_KEY_FILE_HERE
    api.dfp.networkCode=INSERT_NETWORK_CODE_HERE
    [...]

    fromFile() の認証情報とプロパティは、ads.properties ファイルから取得されます。詳しくは README をご覧ください。

    // Generate a refreshable OAuth2 credential.
    Credential oAuth2Credential = new OfflineCredentials.Builder()
        .forApi(Api.DFP)
        .fromFile()
        .build()
        .generateCredential();

    次に、Builder パターンを使用して DfpSession を作成します。

    // Construct a DfpSession.
    DfpSession session = new DfpSession.Builder()
        .fromFile()
        .withOAuth2Credential(oAuth2Credential)
        .build();
  3. InventoryService のクライアントを構築する

    API の呼び出しを行うには SOAP クライアント スタブが必要になります。DfpServices クラスによってこのロジックが処理されます。このオブジェクトの作成には費用がかかるため、インスタンスは 1 回作成してできるだけスレッド内で再利用するようにします。

    // Construct a DFP service factory, which can only be used once per thread,
    // but should be reused as much as possible.
    DfpServices dfpServices = new DfpServices();
    次に、サービスクラスへの参照を取得できます。
    InventoryServiceInterface inventoryService =
        dfpServices.get(session, InventoryServiceInterface.class);
  4. 操作を実行する

    API に接続するクライアントをインスタンス化したら操作を実行できます。次のコードでは、アカウント内にあるすべての広告ユニットが AdUnitPage オブジェクトに返されます。 

    // Create a statement to select all ad units.
    StatementBuilder statementBuilder = new StatementBuilder()
        .orderBy("id ASC")
        .limit(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    
    // Default for total result set size.
    int totalResultSetSize = 0;
    
    do {
      // Get ad units by statement.
      AdUnitPage page = inventoryService.getAdUnitsByStatement(statementBuilder.toStatement());
    
      if (page.getResults() != null) {
        totalResultSetSize = page.getTotalResultSetSize();
        int i = page.getStartIndex();
        for (AdUnit adUnit : page.getResults()) {
          System.out.printf(
              "%d) Ad unit with ID '%s' and name '%s' was found.%n", i++,
              adUnit.getId(), adUnit.getName());
        }
      }
    
      statementBuilder.increaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    } while (statementBuilder.getOffset() < totalResultSetSize);
    
    System.out.printf("Number of results found: %d%n", totalResultSetSize);

Java クライアント ライブラリの利用方法について詳しくは、クライアント ライブラリの提供物に含まれる README ファイルをご覧ください。

Python

Python クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。

Python クライアント ライブラリでは、Python v2.7、または Python v3.0 以上(2to3 コンバータ使用)がサポートされています。

この例を使用するには、その前に、Python クライアント ライブラリと一緒に配布される README ファイルの手順を行っておく必要があります。 クライアント ライブラリに対する認証がうまくいかない場合は、OAuth 2.0 の Wiki に記載の手順に沿って OAuth 2.0 の認証情報も設定する必要があります。

  1. 認証情報を設定する

    googleads.yaml ファイルをホーム ディレクトリにコピーし、必須フィールドに入力します。

    dfp:
      application_name: INSERT_APPLICATION_NAME_HERE
      network_code: INSERT_NETWORK_CODE_HERE
      path_to_private_key_file: INSERT_PATH_TO_FILE_HERE
    

    Client オブジェクトを初期化するには、DfpClient.LoadFromStorage() を呼び出して googleads.yaml ファイルのフィールドを読み取ります。

    from googleads import dfp
    
    # Initialize client object.
    dfp_client = dfp.DfpClient.LoadFromStorage()
    
  2. InventoryService のクライアントを構築する

    各サービスは、適切な getService() メソッドを使用して取得できます。getService() メソッドにより、対象のサービスに SOAP クライアントが返されます。

    # Initialize appropriate service.
    ad_unit_service = client.GetService('InventoryService', version='v201705')
    
  3. 操作を実行する

    API に接続するクライアントをインスタンス化したら操作を実行できます。次のコードが返され、ネットワーク内にあるすべての広告ユニットが出力されます。

    statement = dfp.FilterStatement()
    
    # Retrieve a small amount of ad units at a time, paging
    # through until all ad units have been retrieved.
    while True:
      response = ad_unit_service.getAdUnitsByStatement(statement.ToStatement())
      if 'results' in response:
        for ad_unit in response['results']:
          # Print out some information for each ad unit.
          print('Ad unit with ID "%s" and name "%s" was found.\n' %
                (ad_unit['id'], ad_unit['name']))
        statement.offset += dfp.SUGGESTED_PAGE_LIMIT
      else:
        break
    
    print '\nNumber of results found: %s' % response['totalResultSetSize']

PHP

開始するには、広告用 PHP クライアント ライブラリの README にある手順を行います。

.NET

.NET クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。

  1. 新しいプロジェクトを作成する

    Visual Studio を開いて、新しいプロジェクト(コンソール アプリケーション)を作成します。

  2. プロジェクトに必要なライブラリ参照を追加する

    NuGet を使用している場合は、Google.Dfp または Google.Dfp.Examples.CSharp(コードサンプルを実行する場合)の依存関係を追加します。

    それ以外の場合は、GitHub からバイナリ配布ファイルをダウンロードし、\lib フォルダにある dll をすべてプロジェクトにコピーします。そして、プロジェクトでこれらの dll への参照と System.Web.Services への参照を追加します。

  3. App.config を設定する

    src\App.config をプロジェクト ディレクトリにコピーして、プロジェクトに追加します。開発するアプリケーションに独自の App.config がある場合は、以下のノードを App.config にコピーします。

    • configuration/DfpApi
    • configuration/system.web
    • configuration/configSections/section[name="DfpApi"]
    • configuration/system.net
  4. 認証情報を設定する

    App.config を開いて以下のキーを編集します。

    <add key="ApplicationName" value="INSERT_YOUR_APPLICATION_NAME_HERE" />
    <add key="NetworkCode" value="INSERT_YOUR_NETWORK_CODE_HERE" />
    <add key="OAuth2Mode" value="SERVICE_ACCOUNT" />
    <add key="OAuth2SecretsJsonPath" value="INSERT_OAUTH2_SECRETS_JSON_FILE_PATH_HERE" />
    
  5. ライブラリを呼び出す

    ライブラリを呼び出すには、次の C# コードのようにします。

    DfpUser user = new DfpUser();
    InventoryService inventoryService =
        (InventoryService) dfpUser.GetService(DfpService.v201705.InventoryService);
    
    // Create a statement to select ad units.
    int pageSize = StatementBuilder.SUGGESTED_PAGE_LIMIT;
    StatementBuilder statementBuilder = new StatementBuilder()
        .OrderBy("id ASC")
        .Limit(pageSize);
    
    // Retrieve a small amount of ad units at a time, paging through until all
    // ad units have been retrieved.
    int totalResultSetSize = 0;
    do {
      AdUnitPage page = inventoryService.getAdUnitsByStatement(
          statementBuilder.ToStatement());
    
      // Print out some information for each ad unit.
      if (page.results != null) {
        totalResultSetSize = page.totalResultSetSize;
        int i = page.startIndex;
        foreach (AdUnit adUnit in page.results) {
          Console.WriteLine(
              "{0}) Ad unit with ID \"{1}\" and name \"{2}\" was found.",
              i++,
              adUnit.id,
              adUnit.name
          );
        }
      }
    
      statementBuilder.IncreaseOffsetBy(pageSize);
    } while (statementBuilder.GetOffset() < totalResultSetSize);
    
    Console.WriteLine("Number of results found: {0}", totalResultSetSize);
    

App.config ファイルで認証情報を設定しない場合は、DfpUser クラスを使用した別の方法について、こちらの Wiki の記事をご覧ください。.NET クライアント ライブラリを使用する方法について詳しくは、README をご覧ください。.NET でクライアント ライブラリを使わずに開発する場合は、NoClientLibrary の Wiki 記事をご覧ください。

Ruby

Ruby クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。

Ruby クライアント ライブラリを使用するには、Ruby 2.1 または 2.2 と、Google Ads Savon SOAP ツールキット(バージョン 1.0.0 以降)が必要です。

この例を使用するには、その前に、Ruby クライアント ライブラリと一緒に配布される README ファイルの手順を行っておく必要があります。認証情報を含めるには、dfp_api.yml を編集する必要があります。

  1. 認証情報を設定する

    dfp_api.yml ファイルをホーム ディレクトリにコピーし、必須フィールドに入力します。

    [...]
    :oauth2_keyfile: INSERT_PATH_TO_JSON_KEY_FILE_HERE
    :application_name: INSERT_APPLICATION_NAME_HERE
    :network_code: INSERT_NETWORK_CODE_HERE
    [...]
    

    まず、新しい DfpApi インスタンスを作成します。これにより、~/dfp_api.yml ファイルから認証情報が読み込まれます。認証情報を指定する別の方法については README ファイルをご覧ください。

    # Get DfpApi instance and load configuration from ~/dfp_api.yml.
    dfp = DfpApi::Api.new
    
  2. InventoryService のインスタンスを構築する

    各サービスは、service() メソッドを使用して取得できます。このメソッドでは、サービス スタブ オブジェクトが返されます。これを使用して、そのオブジェクトのメソッドを呼び出すことができます。1 番目のパラメータとしてサービス名を、2 番目のパラメータとして必要な API バージョンを指定します。

    inventory_service =
        dfp.service(:InventoryService, :v201705)
    
  3. 操作を実行する

    API に接続するクライアントをインスタンス化したら操作を実行できます。次のコードでは、アカウント内のすべての広告ユニットを、一度に 500 ずつ page オブジェクトに返しています。

    # Create a statement to select ad units.
    statement = DfpApi::FilterStatement.new()
    
    # Retrieve a small amount of ad units at a time, paging
    # through until all ad units have been retrieved.
    total_result_set_size = 0;
    begin
      page = inventory_service.get_ad_units_by_statement(
          statement.toStatement())
    
      # Print out some information for each ad unit.
      if page[:results]
        total_result_set_size = page[:total_result_set_size]
        page[:results].each_with_index do |ad_unit, index|
          puts "%d) Ad unit with ID '%s' and name '%s' was found." % [
              index + statement.offset,
              ad_unit[:id],
              ad_unit[:name]
          ]
        end
      end
      statement.offset += DfpApi::SUGGESTED_PAGE_LIMIT
    end while statement.offset < page[:total_result_set_size]
    
    puts 'Total number of ad units: %d' %
        total_result_set_size

Ruby でクライアント ライブラリを使わずに開発作業を行う場合は、Wiki の記事をご覧ください。

次のステップ

クライアント ライブラリの準備が整ったら、提供されるサンプルをニーズに合わせて変更してみてください。

API の詳細については、リファレンス ドキュメントをご覧ください。

不明点がある場合は、ガイド セクションにある詳細トピックをご覧になるか、フォーラムをご利用ください。

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

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