スタート ガイド

DCM/DFA Reporting and Trafficking API を使用すると、キャンペーン マネージャー アカウントからプログラムを通じて情報にアクセスできます。キャンペーン マネージャーとレポート ビルダー ウェブサービスを使う場合とまったく同じように、この API を使ってキャンペーンとレポートを作成および管理できます。

このガイドでは、DCM/DFA Reporting and Trafficking API の使用を開始する方法について説明します。

事前の準備

DCM/DFA Reporting and Trafficking API を使用するには、準備のため以下の手順を実施する必要があります。

  1. キャンペーン マネージャー アカウントが必要です。登録の詳細については、広告主または代理店に関する説明をご覧ください。

  2. キャンペーン マネージャー アカウントで API アクセス権を有効にする必要があります。このアクセス権は、ほとんどのアカウントでデフォルトで有効になっています。不明な場合は、アカウント担当者またはキャンペーン マネージャーのサポートチームにお問い合わせください。

  3. このアカウントへのアクセス権を持つユーザー プロファイルが必要です。キャンペーン マネージャー アカウント管理者に、このアカウントに関連付けられたユーザー プロフィールの作成を依頼してください。

  4. キャンペーン マネージャーの UI でユーザー プロフィールの権限を確認します。これらの権限により、ユーザー プロフィールで API を介してアクセスできるものが制御されます。これとは別に API の権限が設定されることはありません。

プロジェクトを作成する

DCM/DFA Reporting and Trafficking API を使用するには、まず Google API コンソールでプロジェクトを作成または選択して API を有効にする必要があります。このリンクをクリックし、表示される手順に沿って操作すると、DCM/DFA Reporting and Trafficking API が自動的に有効になります。

認証情報を生成する

DCM/DFA Reporting and Trafficking API へのすべてのリクエストは認証を受ける必要があります。認証の概要については、Google に対してアプリケーションを認証および識別する方法をご覧ください。

以下の手順に沿って、OAuth 2.0 クライアント ID を作成します。この ID はインストール型アプリケーションのフローで使用します。サービス アカウントのフローで使用する認証情報の生成手順については、サービス アカウントのガイドをご覧ください。

  1. 手順に沿って Google API コンソール プロジェクトを設定します。

  2. API コンソールで [認証情報] ページを開きます。
  3. [認証情報を作成] > [OAuth クライアント ID] をクリックします。

    1. このプロジェクトの OAuth 同意画面をまだ設定していない場合は、この段階で作成するよう求められます。[同意画面を構成] をクリックします。

    2. ユーザータイプを選択し、[作成] をクリックします。

    3. 初回フォームに入力します。これは必要に応じて後で編集できます。入力が完了したら、[保存] をクリックします。

    4. [認証情報] > [認証情報を作成] > [OAuth クライアント ID] に戻り、手順を進めます。

  4. アプリケーションの種類として [デスクトップ アプリ] を選択し、名前を付けて [作成] をクリックします。

手順を完了すると、OAuth 2.0 クライアント ID とクライアント シークレットが表示されます。これらを JSON 形式でダウンロードして保存しておけば、後で使用できます。

クライアント ライブラリをインストールする

DCM/DFA Reporting and Trafficking API は HTTP と JSON をベースとしているため、標準の HTTP クライアントであれば、この API にリクエストを送信してレスポンスを解析できます。

ただし、Google API クライアント ライブラリがあれば、言語の統合とセキュリティの強化に役立つうえに、認証済みリクエストの作成がサポートされます。クライアント ライブラリにはさまざまなプログラミング言語向けのものが用意されています。それらのライブラリを使用すれば、手動で HTTP リクエストを設定してレスポンスを解析する必要がなくなります。

まず、開発に使用するプログラミング言語を選択してください。

C#

最新の .NET 向け DCM/DFA Reporting and Trafficking API クライアント ライブラリをインストールします。インストールの管理には NuGet を使用することをおすすめします。

NuGet Package Manager Console を開いて次のコマンドを実行します。

Install-Package Google.Apis.Dfareporting.v3_2

詳細

Java

最新の Java 向け DCM/DFA Reporting and Trafficking API クライアント ライブラリをインストールします。インストールの管理には Maven を使用することをおすすめします。

pom.xml ファイルに次の依存関係を追加します。

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-dfareporting</artifactId>
  <version>v3.3-rev20190124-1.28.0</version>
  <exclusions>
    <exclusion>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-jdk5</artifactId>
    </exclusion>
  </exclusions>
</dependency>

詳細

PHP

最新の PHP 向け DCM/DFA Reporting and Trafficking API クライアント ライブラリをインストールします。インストールの管理には Composer を使用することをおすすめします。

ターミナルを開いて次のコマンドを実行します。

composer require google/apiclient

インストール済みのライブラリがすでにあり、最新バージョンに更新するだけの場合は、次のコマンドを実行します。

composer update google/apiclient

システムによっては、これらのコマンドの前に sudo を付ける必要があります。

詳細

Python

最新の Python 向け DCM/DFA Reporting and Trafficking API クライアント ライブラリをインストールします。インストールの管理には pip を使用することをおすすめします。

ターミナルを開いて次のコマンドを実行します。

pip install --upgrade google-api-python-client

システムによっては、これらのコマンドの前に sudo を付ける必要があります。

詳細

Ruby

最新の Ruby 向け DCM/DFA Reporting and Trafficking API クライアント ライブラリをインストールします。インストールの管理には RubyGems を使用することをおすすめします。

ターミナルを開いて次のコマンドを実行します。

gem install google-api-client

インストール済みのライブラリがすでにあり、最新バージョンに更新するだけの場合は、次のコマンドを実行します。

gem update -y google-api-client

システムによっては、これらのコマンドの前に sudo を付ける必要があります。

詳細

サポートされている言語については、クライアント ライブラリのページでご確認ください。

リクエストを発行する

OAuth 2.0 認証情報を作成してクライアント ライブラリをインストールしたら、DCM/DFA Reporting and Trafficking API を使用する準備は完了です。認証方法、クライアントの設定方法、最初のリクエストの発行方法については、下記のクイックスタートをご覧ください。

C#

  1. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャーへのアクセス権を持つ Google アカウントでログインしていることをご確認ください。現在ログインしているアカウントに代わって、アプリケーションがデータにアクセスすることが認証されます。

    // Load client secrets from the specified JSON file.
    GoogleClientSecrets clientSecrets;
    using(Stream json = new FileStream(pathToJsonFile, FileMode.Open, FileAccess.Read)) {
      clientSecrets = GoogleClientSecrets.Load(json);
    }
    
    // Create an asynchronous authorization task.
    //
    // Note: providing a data store allows auth credentials to be cached, so they survive multiple
    // runs of the application. This avoids prompting the user for authorization every time the
    // access token expires, by remembering the refresh token. The "user" value is used to
    // identify a specific set of credentials within the data store. You may provide different
    // values here to persist credentials for multiple users to the same data store.
    Task<UserCredential> authorizationTask = GoogleWebAuthorizationBroker.AuthorizeAsync(
        clientSecrets.Secrets,
        OAuthScopes,
        "user",
        CancellationToken.None,
        dataStore);
    
    // Authorize and persist credentials to the data store.
    UserCredential credential = authorizationTask.Result;
    
  2. 認証を受けた Dfareporting クライアントを作成する

    // Create a Dfareporting service object.
    //
    // Note: application name should be replaced with a value that identifies your application.
    service = new DfareportingService(
        new BaseClientService.Initializer {
          HttpClientInitializer = credential,
          ApplicationName = "C# installed app sample"
        }
    );
    
  3. 操作を実行する

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = service.UserProfiles.List().Execute();
    
    foreach (UserProfile profile in profiles.Items) {
      Console.WriteLine("Found user profile with ID {0} and name \"{1}\".",
          profile.ProfileId, profile.UserName);
    }
    

Java

  1. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャーへのアクセス権を持つ Google アカウントでログインしていることをご確認ください。現在ログインしているアカウントに代わって、アプリケーションがデータにアクセスすることが認証されます。

    // Load the client secrets JSON file.
    GoogleClientSecrets clientSecrets =
        GoogleClientSecrets.load(
            jsonFactory, Files.newBufferedReader(Paths.get(pathToClientSecretsFile), UTF_8));
    
    // Set up the authorization code flow.
    //
    // Note: providing a DataStoreFactory allows auth credentials to be cached, so they survive
    // multiple runs of the program. This avoids prompting the user for authorization every time the
    // access token expires, by remembering the refresh token.
    GoogleAuthorizationCodeFlow flow =
        new GoogleAuthorizationCodeFlow.Builder(
                httpTransport, jsonFactory, clientSecrets, OAUTH_SCOPES)
            .setDataStoreFactory(dataStoreFactory)
            .build();
    
    // Authorize and persist credentials to the data store.
    //
    // Note: the "user" value below is used to identify a specific set of credentials in the data
    // store. You may provide different values here to persist credentials for multiple users to
    // the same data store.
    Credential credential =
        new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
    
  2. 認証を受けた Dfareporting クライアントを作成する

    // Create a Dfareporting client instance.
    //
    // Note: application name below should be replaced with a value that identifies your
    // application. Suggested format is "MyCompany-ProductName/Version.MinorVersion".
    Dfareporting reporting =
        new Dfareporting.Builder(credential.getTransport(), credential.getJsonFactory(), credential)
            .setApplicationName("dfareporting-java-installed-app-sample")
            .build();
    
  3. 操作を実行する

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = reporting.userProfiles().list().execute();
    for (int i = 0; i < profiles.getItems().size(); i++) {
      System.out.printf("%d) %s%n", i + 1, profiles.getItems().get(i).getUserName());
    }
    

PHP

  1. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャーへのアクセス権を持つ Google アカウントでログインしていることをご確認ください。現在ログインしているアカウントに代わって、アプリケーションがデータにアクセスすることが認証されます。

    // Create a Google_Client instance.
    //
    // Note: application name should be replaced with a value that identifies
    // your application. Suggested format is "MyCompany-ProductName".
    $client = new Google_Client();
    $client->setAccessType('offline');
    $client->setApplicationName('PHP installed app sample');
    $client->setRedirectUri(self::OAUTH_REDIRECT_URI);
    $client->setScopes(self::$OAUTH_SCOPES);
    
    // Load the client secrets file.
    $client->setAuthConfig($pathToJsonFile);
    
    // Try to load cached credentials from the token store. Using a token store
    // allows auth credentials to be cached, so they survive multiple runs of
    // the application. This avoids prompting the user for authorization every
    // time the access token expires, by remembering the refresh token.
    if (file_exists($tokenStore) && filesize($tokenStore) > 0) {
        $client->setAccessToken(file_get_contents($tokenStore));
    } else {
        // If no cached credentials were found, authorize and persist
        // credentials to the token store.
        print 'Open this URL in your browser and authorize the application.';
        printf("\n\n%s\n\n", $client->createAuthUrl());
        print 'Enter the authorization code: ';
        $code = trim(fgets(STDIN));
        $client->authenticate($code);
    
        file_put_contents($tokenStore, json_encode($client->getAccessToken()));
    }
    
  2. 認証を受けた Dfareporting クライアントを作成する

    // Create a Dfareporting service object.
    $service = new Google_Service_Dfareporting($client);
    
  3. 操作を実行する

    // Retrieve and print all user profiles for the current authorized user.
    $result = $service->userProfiles->listUserProfiles();
    foreach ($result['items'] as $userProfile) {
        printf(
            "User profile \"%s\" (ID: %d) found for account %d.\n",
            $userProfile->getUserName(),
            $userProfile->getProfileId(),
            $userProfile->getAccountId()
        );
    }
    

Python

  1. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャーへのアクセス権を持つ Google アカウントでログインしていることをご確認ください。現在ログインしているアカウントに代わって、アプリケーションがデータにアクセスすることが認証されます。

    # Set up a Flow object to be used if we need to authenticate.
    flow = client.flow_from_clientsecrets(
        path_to_client_secrets_file, scope=OAUTH_SCOPES)
    
    # Check whether credentials exist in the credential store. Using a credential
    # store allows auth credentials to be cached, so they survive multiple runs
    # of the application. This avoids prompting the user for authorization every
    # time the access token expires, by remembering the refresh token.
    storage = Storage(CREDENTIAL_STORE_FILE)
    credentials = storage.get()
    
    # If no credentials were found, go through the authorization process and
    # persist credentials to the credential store.
    if credentials is None or credentials.invalid:
      credentials = tools.run_flow(flow, storage,
                                   tools.argparser.parse_known_args()[0])
    
    # Use the credentials to authorize an httplib2.Http instance.
    http = credentials.authorize(httplib2.Http())
    
  2. 認証を受けた Dfareporting クライアントを作成する

    # Construct a service object via the discovery service.
    service = discovery.build('dfareporting', 'v3.3', http=http)
    
  3. 操作を実行する

    # Construct the request.
    request = service.userProfiles().list()
    
    # Execute request and print response.
    response = request.execute()
    
    for profile in response['items']:
      print('Found user profile with ID %s and user name "%s".' %
            (profile['profileId'], profile['userName']))
    

Ruby

  1. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャーへのアクセス権を持つ Google アカウントでログインしていることをご確認ください。現在ログインしているアカウントに代わって、アプリケーションがデータにアクセスすることが認証されます。

    # Load client ID from the specified file.
    client_id = Google::Auth::ClientId.from_file(path_to_json_file)
    
    # Set up the user authorizer.
    #
    # Note: providing a token store allows auth credentials to be cached, so they
    # survive multiple runs of the application. This avoids prompting the user for
    # authorization every time the access token expires, by remembering the
    # refresh token.
    authorizer = Google::Auth::UserAuthorizer.new(
      client_id, [API_NAMESPACE::AUTH_DFAREPORTING], token_store
    )
    
    # Authorize and persist credentials to the data store.
    #
    # Note: the 'user' value below is used to identify a specific set of
    # credentials in the token store. You may provide different values here to
    # persist credentials for multiple users to the same token store.
    authorization = authorizer.get_credentials('user')
    if authorization.nil?
      puts format(
        "Open this URL in your browser and authorize the application.\n\n%s" \
        "\n\nEnter the authorization code:",
        authorizer.get_authorization_url(base_url: OAUTH_REDIRECT_URI)
      )
      code = STDIN.gets.chomp
      authorization = authorizer.get_and_store_credentials_from_code(
        base_url: OAUTH_REDIRECT_URI, code: code, user_id: 'user'
      )
    end
    
  2. 認証を受けた Dfareporting クライアントを作成する

    # Create a Dfareporting service object.
    #
    # Note: application name should be replaced with a value that identifies
    # your application. Suggested format is "MyCompany-ProductName".
    service = API_NAMESPACE::DfareportingService.new
    service.authorization = authorization
    service.client_options.application_name = 'Ruby installed app sample'
    service.client_options.application_version = '1.0.0'
    
  3. 操作を実行する

    // Retrieve and print all user profiles for the current authorized user.
    UserProfileList profiles = service.UserProfiles.List().Execute();
    
    foreach (UserProfile profile in profiles.Items) {
      Console.WriteLine("Found user profile with ID {0} and name \"{1}\".",
          profile.ProfileId, profile.UserName);
    }
    

詳細

API が提供するすべてのサービスについては、API リファレンスをご確認ください。各メソッドの詳細ページには API Explorer が組み込まれており、それを使ってブラウザからテスト リクエストを直接発行できます。

高度なトピックを扱ったガイドや、一般的なタスクの詳細な例を紹介するガイドもご覧になれます。

コードを作成する際は、Google が提供する豊富なコードサンプルを自由にご利用ください。ニーズに合わせてサンプルを変更または拡張できます。