code: public static void runExample(
        AdWordsServicesInterface adWordsServices,
        AdWordsSession session,
        Long campaignId,
        Long adGroupId)
        throws RemoteException {
      String dsaPageUrlLabel = "discounts";
  
      // Get the page feed details. This code example creates a new feed, but you can
      // fetch and re-use an existing feed.
      DSAFeedDetails feedDetails = createFeed(adWordsServices, session);
      createFeedMapping(adWordsServices, session, feedDetails);
      createFeedItems(adWordsServices, session, feedDetails, dsaPageUrlLabel);
  
      // Associate the page feed with the campaign.
      updateCampaignDsaSetting(adWordsServices, session, campaignId, feedDetails);
  
      // Optional: Target web pages matching the feed's label in the ad group.
      addDsaTargeting(adWordsServices, session, adGroupId, dsaPageUrlLabel);
  
      System.out.printf("Dynamic page feed setup is complete for campaign ID %s.%n", campaignId);
    }
docs: Runs the example.
  
  @param adWordsServices the services factory.
  @param session the session.
  @param campaignId the ID of the campaign where the dynamic page feed will be added.
  @param adGroupId the ID of the ad group where web page targeting will be added.
  @throws ApiException if the API request failed with one or more service errors.
  @throws RemoteException if the API request failed due to other errors.