code: public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session,
        Long adGroupId) throws RemoteException {
      // Get the AdGroupBidModifierService.
      AdGroupBidModifierServiceInterface adGroupBidModifierService =
          adWordsServices.get(session, AdGroupBidModifierServiceInterface.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);
  
      AdGroupBidModifier adGroupBidModifier = new AdGroupBidModifier();
      adGroupBidModifier.setAdGroupId(adGroupId);
      adGroupBidModifier.setBidModifier(BID_MODIFIER);
      adGroupBidModifier.setCriterion(mobile);
  
      // Create ADD operation.
      AdGroupBidModifierOperation operation = new AdGroupBidModifierOperation();
      operation.setOperand(adGroupBidModifier);
      // Use 'ADD' to add a new modifier and 'SET' to update an existing one. A
      // modifier can be removed with the 'REMOVE' operator.
      operation.setOperator(Operator.ADD);
  
      // Update ad group bid modifier.
      AdGroupBidModifierReturnValue result =
          adGroupBidModifierService.mutate(new AdGroupBidModifierOperation[] {operation});
      for (AdGroupBidModifier bidModifierResult : result.getValue()) {
        System.out.printf(
            "Campaign ID %d, ad group ID %d was updated with ad group level modifier: %.4f%n",
            bidModifierResult.getCampaignId(), bidModifierResult.getAdGroupId(),
            bidModifierResult.getBidModifier());
      }
    }
docs: Runs the example.
  
  @param adWordsServices the services factory.
  @param session the session.
  @param adGroupId the ID of the ad group where bid modifiers 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.