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

はじめに

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

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

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

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

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

認証情報を作成する

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

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

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

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

クライアントを設定する

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

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

Java

Java クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。使用方法について詳しくは、クライアント ライブラリの提供物に含まれる README ファイルをご覧ください。

  1. 認証情報を設定する

    シェルで次のコマンドを実行します。

    curl https://raw.githubusercontent.com/googleads/googleads-java-lib/master/examples/dfp_axis/src/main/resources/ads.properties -o ~/ads.properties
    ~/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
    [...]
  2. 依存関係を指定する

    pom.xml ファイルを編集用に開き、dependencies タグに以下を追加します。最新のバージョン番号は Github で確認できます。

    <dependency>
      <groupId>com.google.api-ads</groupId>
      <artifactId>ads-lib</artifactId>
      <version>RELEASE</version>
    </dependency>
    <dependency>
      <groupId>com.google.api-ads</groupId>
      <artifactId>dfp-axis</artifactId>
      <version>RELEASE</version>
    </dependency>
  3. コードを記述し、リクエストを行う

    import com.google.api.ads.common.lib.auth.OfflineCredentials;
    import com.google.api.ads.common.lib.auth.OfflineCredentials.Api;
    import com.google.api.ads.dfp.axis.factory.DfpServices;
    import com.google.api.ads.dfp.axis.v201802.Network;
    import com.google.api.ads.dfp.axis.v201802.NetworkServiceInterface;
    import com.google.api.ads.dfp.lib.client.DfpSession;
    import com.google.api.client.auth.oauth2.Credential;
    
    public class App {
      public static void main(String[] args) throws Exception {
        Credential oAuth2Credential = new OfflineCredentials.Builder()
            .forApi(Api.DFP)
            .fromFile()
            .build()
            .generateCredential();
    
        // Construct a DfpSession.
        DfpSession session = new DfpSession.Builder()
            .fromFile()
            .withOAuth2Credential(oAuth2Credential)
            .build();
    
        // 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();
    
        // Retrieve the appropriate service
        NetworkServiceInterface networkService = dfpServices.get(session,
            NetworkServiceInterface.class);
    
        // Make a request
        Network network = networkService.getCurrentNetwork();
    
        System.out.printf("Current network has network code '%s' and display" +
            " name '%s'.%n", network.getNetworkCode(), network.getDisplayName());
      }
    }
    

Python

Python クライアント ライブラリの使い方を示す簡単な例を以下に紹介します。Python クライアント ライブラリでは、Python v2.7、または Python v3.0 以上(2to3 コンバータ使用)がサポートされています。使用方法について詳しくは、クライアント ライブラリの提供物に含まれる README ファイルをご覧ください。

  1. ライブラリをインストールし、認証情報を設定する

    シェルで次のコマンドを実行します。

    pip install googleads
    curl https://raw.githubusercontent.com/googleads/googleads-python-lib/master/googleads.yaml -o ~/googleads.yaml
  2. ~/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
    
  3. コードを実行し、リクエストを行う
    # Import the library.
    from googleads import dfp
    
    # Initialize a client object, by default uses the credentials in ~/googleads.yaml.
    dfp_client = dfp.DfpClient.LoadFromStorage()
    
    # Initialize a service.
    network_service = dfp_client.GetService('NetworkService', version='v201802')
    
    # Make a request.
    current_network = network_service.getCurrentNetwork()
    
    print 'Found network %s (%s)!' % (current_network['displayName'],
                                      current_network['networkCode'])
    

PHP

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

  1. ライブラリをインストールし、認証情報を設定する

    シェルで次のコマンドを実行して、クライアント ライブラリをインストールし、adsapi_php.ini ファイルをホーム ディレクトリにダウンロードします。

    composer require googleads/googleads-php-lib
    curl https://raw.githubusercontent.com/googleads/googleads-php-lib/master/examples/Dfp/adsapi_php.ini -o ~/adsapi_php.ini
  2. ~/adsapi_php.ini ファイルを設定する

    次のフィールドに値を設定します。

    [DFP]
    networkCode = "INSERT_NETWORK_CODE_HERE"
    applicationName = "INSERT_APPLICATION_NAME_HERE"
    
    [OAUTH2]
    jsonKeyFilePath = "INSERT_ABSOLUTE_PATH_TO_OAUTH2_JSON_KEY_FILE_HERE"
    scopes = "https://www.googleapis.com/auth/dfp"
    
  3. コードを実行し、リクエストを行う
    <?php
    require 'vendor/autoload.php';
    use Google\AdsApi\Common\OAuth2TokenBuilder;
    use Google\AdsApi\Dfp\DfpServices;
    use Google\AdsApi\Dfp\DfpSession;
    use Google\AdsApi\Dfp\DfpSessionBuilder;
    use Google\AdsApi\Dfp\v201708\NetworkService;
    
    // Generate a refreshable OAuth2 credential for authentication.
    $oAuth2Credential = (new OAuth2TokenBuilder())
        ->fromFile()
        ->build();
    // Construct an API session configured from a properties file and the OAuth2
    // credentials above.
    $session = (new DfpSessionBuilder())
        ->fromFile()
        ->withOAuth2Credential($oAuth2Credential)
        ->build();
    
    // Get a service.
    $dfpServices = new DfpServices();
    $networkService = $dfpServices->get($session, NetworkService::class);
    
    // Make a request
    $network = $networkService->getCurrentNetwork();
    printf(
        "Network with code %d and display name '%s' was found.\n",
        $network->getNetworkCode(),
        $network->getDisplayName()
    );
    

.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();
    using (InventoryService inventoryService =
        (InventoryService) dfpUser.GetService(DfpService.v201711.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 以降が必要です。

  1. Ruby gem をインストールし、設定ファイルを取得する

    シェルで次のコマンドを実行します。

    gem install google-dfp-api
    curl https://raw.githubusercontent.com/googleads/google-api-ads-ruby/master/dfp_api/dfp_api.yml -o ~/dfp_api.yml
    
  2. 認証情報を設定する

    ~/dfp_api.yml ファイルで必須フィールドに値を設定します。OAuth 2.0 キーファイルがまだない場合は、OAuth 2.0 認証情報を作成するための手順を行います。

    :authentication:
      :oauth2_keyfile: INSERT_PATH_TO_JSON_KEY_FILE_HERE
      :application_name: INSERT_APPLICATION_NAME_HERE
      :network_code: INSERT_NETWORK_CODE_HERE
    
  3. コードを記述し、リクエストを行う
    # Import the library.
    require 'dfp_api'
    
    # Initialize a dfp client instance (uses credentials in ~/dfp_api.yml by default).
    dfp = DfpApi::Api.new
    
    # Get a service instance.
    network_service = dfp.service(:NetworkService, :v201802)
    
    # Make a request.
    network = network_service.get_current_network()
    
    puts "The current network is %s (%d)." %
            [network[:display_name], network[:network_code]]
    

開始の手順について詳しくは、Ruby クライアント ライブラリと一緒に配布される README ファイルをご覧ください。また、Ruby の完全なサンプル ライブラリもご確認ください。

次のステップ

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

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

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

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

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