使ってみる

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

このガイドでは、キャンペーン マネージャー 360 API の使用を開始する方法について説明します。

事前準備

キャンペーン マネージャー 360 API を使用するには、準備のため以下の手順を実施する必要があります。

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

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

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

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

プロジェクトを作成する

キャンペーン マネージャー 360 API を使用するには、まず Google API Console でプロジェクトを作成または選択して API を有効にする必要があります。このリンクをクリックすると、画面の指示に従ってキャンペーン マネージャー 360 API を自動的に有効にすることができます。

認証情報を生成する

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

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

  1. 手順に沿って Google API Console プロジェクトを設定します。

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

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

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

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

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

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

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

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

キャンペーン マネージャー 360 API は、HTTP と JSON をベースに構築されているため、標準の HTTP クライアントであれば、この API にリクエストを送信してレスポンスを解析できます。

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

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

C#

最新の .NET 向けキャンペーン マネージャー 360 API クライアント ライブラリをインストールします。インストールの管理には NuGet を使用することをおすすめします。

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

Install-Package Google.Apis.Dfareporting.v3_4

詳細

Java

最新の Java 向けキャンペーン マネージャー 360 API クライアント ライブラリをインストールします。インストールの管理には Maven を使用することをおすすめします。

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

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-dfareporting</artifactId>
  <version>v3.4-rev20200514-1.30.10</version>
  <exclusions>
    <exclusion>
      <groupId>com.google.guava</groupId>
      <artifactId>guava-jdk5</artifactId>
    </exclusion>
  </exclusions>
</dependency>

詳細

PHP

最新の PHP 向けキャンペーン マネージャー 360 API クライアント ライブラリをインストールします。インストールの管理には Composer を使用することをおすすめします。

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

composer require google/apiclient

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

composer update google/apiclient

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

詳細

Python

最新の Python 向けキャンペーン マネージャー 360 API クライアント ライブラリをインストールします。インストールの管理には pip を使用することをおすすめします。

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

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

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

詳細

Ruby

最新の Ruby 向けキャンペーン マネージャー 360 API クライアント ライブラリをインストールします。インストールの管理には RubyGems を使用することをおすすめします。

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

gem install google-api-client

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

gem update -y google-api-client

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

詳細

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

リクエストを発行する

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

C#

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

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャー 360 へのアクセス権を持つ 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. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャー 360 へのアクセス権を持つ 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. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャー 360 へのアクセス権を持つ 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. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャー 360 へのアクセス権を持つ 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.4', 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. クライアントのシークレット ファイルを読み込み、認証情報を生成する

    この手順を初めて行う際には、認証を求めるメッセージがブラウザに表示されます。承認する前に、キャンペーン マネージャー 360 へのアクセス権を持つ 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 が提供する豊富なコードサンプルを自由にご利用ください。ニーズに合わせてサンプルを変更または拡張できます。