code: public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session)
        throws RemoteException {
      // Get all of the feeds for the session's account.
      List<Feed> feeds = getFeeds(adWordsServices, session);
  
      for (Feed feed : feeds) {
        // Retrieve all the sitelinks from the current feed.
        Map<Long, SiteLinkFromFeed> feedItems = getSiteLinksFromFeed(adWordsServices, session, feed);
  
        // Get all the instances where a sitelink from this feed has been added to a campaign.
        List<CampaignFeed> campaignFeeds =
            getCampaignFeeds(adWordsServices, session, feed, PLACEHOLDER_SITELINKS);
  
        Set<Long> allFeedItemsToDelete = Sets.newHashSet();
        for (CampaignFeed campaignFeed : campaignFeeds) {
          // Retrieve the sitelinks that have been associated with this campaign.
          Set<Long> feedItemIds = getFeedItemIdsForCampaign(campaignFeed);
  
          ExtensionSettingPlatform platformRestrictions =
              getPlatformRestictionsForCampaign(campaignFeed);
  
          if (feedItemIds.isEmpty()) {
            System.out.printf("Migration skipped for campaign feed with campaign ID %d "
                + "and feed ID %d because no mapped feed item IDs were found in the "
                + "campaign feed's matching function.%n", campaignFeed.getCampaignId(),
                campaignFeed.getFeedId());
          } else {
            // Delete the campaign feed that associates the sitelinks from the feed to the campaign.
            deleteCampaignFeed(adWordsServices, session, campaignFeed);
  
            // Create extension settings instead of sitelinks.
            createExtensionSetting(adWordsServices,
                session,
                feedItems,
                campaignFeed,
                feedItemIds,
                platformRestrictions);
  
            // Mark the sitelinks from the feed for deletion.
            allFeedItemsToDelete.addAll(feedItemIds);
          }
        }
  
        // Delete all the sitelinks from the feed.
        deleteOldFeedItems(adWordsServices, session, allFeedItemsToDelete, feed);
      }
    }
docs: Runs the example.
  
  @param adWordsServices the services factory.
  @param session the session.
  @throws ApiException if the API request failed with one or more service errors.
  @throws RemoteException if the API request failed due to other errors.