code: public static void runExample(
        AdWordsServicesInterface adWordsServices, AdWordsSession session, Long campaignId)
        throws RemoteException {
      // Get the CampaignCriterionService.
      CampaignCriterionServiceInterface campaignCriterionService =
          adWordsServices.get(session, CampaignCriterionServiceInterface.class);
  
      // Create mobile platform. The ID can be found in the documentation.
      // https://developers.google.com/adwords/api/docs/appendix/platforms
      Platform mobile = new Platform();
      mobile.setId(30001L);
  
      // Create criterion with modified bid.
      CampaignCriterion campaignCriterion = new CampaignCriterion();
      campaignCriterion.setCampaignId(campaignId);
      campaignCriterion.setCriterion(mobile);
      campaignCriterion.setBidModifier(BID_MODIFIER);
  
      // Create SET operation.
      CampaignCriterionOperation operation = new CampaignCriterionOperation();
      operation.setOperand(campaignCriterion);
      operation.setOperator(Operator.SET);
  
      // Update campaign criterion.
      CampaignCriterionReturnValue result =
          campaignCriterionService.mutate(new CampaignCriterionOperation[] {operation});
      for (CampaignCriterion campaignCriterionResult : result.getValue()) {
        System.out.printf("Campaign criterion with campaign ID %d, criterion ID %d, "
            + "and type '%s' was modified with bid %.4f.%n",
            campaignCriterionResult.getCampaignId(),
            campaignCriterionResult.getCriterion().getId(),
            campaignCriterionResult.getCriterion().getType(),
            campaignCriterionResult.getBidModifier());
      }
    }
docs: Runs the example.
  
  @param adWordsServices the services factory.
  @param session the session.
  @param campaignId the ID of the campaign.
  @throws ApiException if the API request failed with one or more service errors.
  @throws RemoteException if the API request failed due to other errors.