The optimized targeting launch has been postponed. Line items will continue to use the targeting expansion feature and the targetingExpansion field of the LineItem resource will continue to behave as it has previously.

Configure your client

With OAuth 2.0 credentials created and a client library installed, you're ready to start using the Display & Video 360 API. Learn how to authorize, configure your client, and make your first request by following the quickstart below.

Java

  1. Import the necessary libraries.

    import static java.nio.charset.StandardCharsets.UTF_8;
    import com.google.api.client.auth.oauth2.Credential;
    import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp;
    import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver;
    import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
    import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
    import com.google.api.client.googleapis.util.Utils;
    import com.google.api.services.displayvideo.v1.DisplayVideo;
    import com.google.api.services.displayvideo.v1.DisplayVideo.Advertisers;
    import com.google.api.services.displayvideo.v1.model.Advertiser;
    import com.google.api.services.displayvideo.v1.model.ListAdvertisersResponse;
    import java.io.Reader;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
  2. Load the client secrets file and generate authorization credentials.

    The first time you perform this step, you are asked to accept an authorization prompt in your browser. Before accepting, make sure you're signed in with a Google Account that has access to Display & Video 360. Your app will be authorized to access data on behalf of whichever account is currently signed in.

    // Read client secrets file.
    GoogleClientSecrets clientSecrets;
    try (Reader reader = Files.newBufferedReader(Paths.get(path-to-client-secrets-file), UTF_8)) {
      clientSecrets = GoogleClientSecrets.load(Utils.getDefaultJsonFactory(), reader);
    }
    
    // Generate authorization credentials.
    // Set up the authorization code flow.
    GoogleAuthorizationCodeFlow flow =
        new GoogleAuthorizationCodeFlow.Builder(
            Utils.getDefaultTransport(),
            Utils.getDefaultJsonFactory(),
            clientSecrets,
            oauth-scopes)
        .build();
    
    Credential credential =
        new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
    
  3. Create an authorized API client.

    // Create authorized API client.
    DisplayVideo service =
        new DisplayVideo.Builder(credential.getTransport(), credential.getJsonFactory(), credential)
            .setApplicationName("displayvideo-java-installed-app-sample")
            .build();
    
  4. Perform an operation.

    // Perform an operation.
    // Retrieve and print the first ten advertisers under a partner.
    ListAdvertisersResponse response =
        service
            .advertisers()
            .list()
            .setPartnerId(partner-id)
            .setPageSize(10)
            .execute();
    if (response.getAdvertisers().size() > 0) {
      for (int i = 0; i < response.getAdvertisers().size(); i++) {
        System.out.printf(
            "ID: %s Display Name: %s%n",
            response.getAdvertisers().get(i).getAdvertiserId(),
            response.getAdvertisers().get(i).getDisplayName());
      }
    } else {
      System.out.print("No advertisers found.");
    }
    

Python

  1. Import the necessary libraries.

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient import discovery
    
  2. Load the client secrets file and generate authorization credentials.

    The first time you perform this step, you are asked to accept an authorization prompt in your browser. Before accepting, make sure you're signed in with a Google Account that has access to Display & Video 360. Your app will be authorized to access data on behalf of whichever account is currently signed in.

    # Set up a flow object to create the credentials using the
    # client secrets file and OAuth scopes.
    credentials = InstalledAppFlow.from_client_secrets_file(
        path-to-client-secrets-file, oauth-scopes).run_local_server()
    
  3. Create an authorized API client.

    # Build the discovery document URL.
    discovery_url = f'https://displayvideo.googleapis.com/$discovery/rest?version=v1'
    
    # Build the API service.
    service = discovery.build(
        'displayvideo',
        'v1',
        discoveryServiceUrl=discovery_url,
        credentials=credentials)
    
  4. Perform an operation.

    # Build advertisers.list request.
    request = service.advertisers().list(
        partnerId=partner-id, pageSize='10')
    
    # Execute request.
    response = request.execute()
    
    # Print response.
    if len(response['advertisers']) > 0:
      for advertiser in response['advertisers']:
        print(f'ID: {advertiser["advertiserId"]} Display Name: {advertiser["displayName"]}')
    else:
      print('No advertisers found.')
    

PHP

This sample assumes that you are running the PHP with a built-in web server and have configured your credentials to redirect to the relevant web page. For example, this code, in an index.php file, can be run using the following command and credentials configured to redirect to http://localhost:8000 after authentication:

php -S localhost:8000 -t ./

  1. Download and install the Google API PHP Client.

    The preferred method is via Composer:

    composer require google/apiclient:^2.0
    

    Once installed, be sure to include the autoloader

    require_once '/path/to/your-project/vendor/autoload.php';
    

  2. Create a Google_Client object.

    $client = new Google_Client();
    
  3. Set up the client, redirect to authentication URL if needed, and retrieve an access token.

    The first time you perform this step, you are asked to accept an authorization prompt in your browser. Before accepting, make sure you're signed in with a Google Account that has access to Display & Video 360. Your app will be authorized to access data on behalf of whichever account is currently signed in.

    // Set up the client.
    $client->setApplicationName('DV360 API PHP Samples');
    $client->addScope(oauth-scope);
    $client->setAccessType('offline');
    $client->setAuthConfigFile(path-to-client-secrets-file);
    
    // If the code is passed, authenticate. If not, redirect to authentication page.
    if (isset($_GET['code'])) {
      $client->authenticate($_GET['code']);
    } else {
      $authUrl = $client->createAuthUrl();
      header('Location: ' . $authUrl);
    }
    
    // Exchange authorization code for an access token.
    $accessToken = $client->getAccessToken();
    $client->setAccessToken($accessToken);
    
  4. Construct a client for the Display & Video 360 API service.

    $service = new Google_Service_DisplayVideo($client);
    
  5. Perform an operation.

    // Configure params for the advertisers.list request.
    $optParams = array('pageSize' => 10, 'partnerId' => partner-id);
    
    // Execute the request.
    $result = $service->advertisers->listAdvertisers($optParams);
    
    // Print the retrieved advertisers.
    if (!empty($result->getAdvertisers())) {
      print('<pre>');
      foreach ($result->getAdvertisers() as $advertiser) {
        printf('<p>ID: %s, Display Name: %s</p>', $advertiser->advertiserId, $advertiser->displayName);
      }
      print('</pre>');
    } else {
      print '<p>No advertisers found.</p>';
    }