code: private static void runExample(
        AdWordsServicesInterface services,
        AdWordsSession session,
        long merchantId,
        long budgetId,
        long userListId)
        throws IOException {
      Campaign campaign = createCampaign(services, session, merchantId, budgetId);
      System.out.printf(
          "Campaign with name '%s' and ID %d was added.%n", campaign.getName(), campaign.getId());
  
      AdGroup adGroup = createAdGroup(services, session, campaign);
      System.out.printf(
          "Ad group with name '%s' and ID %d was added.%n", adGroup.getName(), adGroup.getId());
  
      AdGroupAd adGroupAd = createAd(services, session, adGroup);
      System.out.printf("Responsive display ad with ID %d was added.%n", adGroupAd.getAd().getId());
  
      attachUserList(services, session, adGroup, userListId);
      System.out.printf(
          "User list with ID %d was attached to ad group with ID %d.%n", userListId, adGroup.getId());
    }
docs: Runs the example.
  
  @param services the services factory.
  @param session the session.
  @param merchantId the ID of the merchant center account from which to source product feed data.
  @param budgetId the ID of a shared budget to associate with the campaign.
  @param userListId the ID of a user list to target.
  @throws ApiException if the API request failed with one or more service errors.
  @throws RemoteException if the API request failed due to other errors.
  @throws IOException if the ad images failed to load.