public static void runExample(AdManagerServices adManagerServices, AdManagerSession session)
      throws RemoteException {
    // Get the CustomTargetingService.
    CustomTargetingServiceInterface customTargetingService =
        adManagerServices.get(session, CustomTargetingServiceInterface.class);

    // Create predefined key.
    CustomTargetingKey genderKey = new CustomTargetingKey();
    genderKey.setDisplayName("gender");
    genderKey.setName("g" + new Random().nextInt(1000));
    genderKey.setType(CustomTargetingKeyType.PREDEFINED);

    // Create predefined key that may be used for content targeting.
    CustomTargetingKey genreKey = new CustomTargetingKey();
    genreKey.setDisplayName("genre");
    genreKey.setName("genre" + new Random().nextInt(1000));
    genreKey.setType(CustomTargetingKeyType.PREDEFINED);

    // Create free-form key.
    CustomTargetingKey carModelKey = new CustomTargetingKey();
    carModelKey.setDisplayName("car model");
    carModelKey.setName("c" + new Random().nextInt(1000));
    carModelKey.setType(CustomTargetingKeyType.FREEFORM);

    // Create the custom targeting keys on the server.
    CustomTargetingKey[] customTargetingKeys = customTargetingService.createCustomTargetingKeys(
        new CustomTargetingKey[] {genderKey, genreKey, carModelKey});

    for (CustomTargetingKey createdCustomTargetingKey : customTargetingKeys) {
      System.out.printf("A custom targeting key with ID %d, name '%s', and display name "
          + "'%s' was created.%n", createdCustomTargetingKey.getId(),
          createdCustomTargetingKey.getName(), createdCustomTargetingKey.getDisplayName());
    }

    // Set the created custom targeting keys.
    genderKey = customTargetingKeys[0];
    genreKey = customTargetingKeys[1];
    carModelKey = customTargetingKeys[2];

    // Create custom targeting value for the predefined gender key.
    CustomTargetingValue genderMaleValue = new CustomTargetingValue();
    genderMaleValue.setCustomTargetingKeyId(genderKey.getId());
    genderMaleValue.setDisplayName("male");
    // Name is set to 1 so that the actual name can be hidden from website
    // users.
    genderMaleValue.setName("1");
    genderMaleValue.setMatchType(CustomTargetingValueMatchType.EXACT);

    CustomTargetingValue genderFemaleValue = new CustomTargetingValue();
    genderFemaleValue.setCustomTargetingKeyId(genderKey.getId());
    genderFemaleValue.setDisplayName("female");
    // Name is set to 2 so that the actual name can be hidden from website
    // users.
    genderFemaleValue.setName("2");
    genderFemaleValue.setMatchType(CustomTargetingValueMatchType.EXACT);

    // Create custom targeting value for the predefined genre key.
    CustomTargetingValue genreComedyValue = new CustomTargetingValue();
    genreComedyValue.setCustomTargetingKeyId(genreKey.getId());
    genreComedyValue.setDisplayName("comedy");
    genreComedyValue.setName("comedy");
    genreComedyValue.setMatchType(CustomTargetingValueMatchType.EXACT);

    CustomTargetingValue genreDramaValue = new CustomTargetingValue();
    genreDramaValue.setCustomTargetingKeyId(genreKey.getId());
    genreDramaValue.setDisplayName("drama");
    genreDramaValue.setName("drama");
    genreDramaValue.setMatchType(CustomTargetingValueMatchType.EXACT);

    // Create custom targeting value for the free-form car model key. These are
    // values that would be suggested in the UI or can be used when targeting
    // with a FreeFormCustomCriteria.
    CustomTargetingValue carModelHondaValue = new CustomTargetingValue();
    carModelHondaValue.setCustomTargetingKeyId(carModelKey.getId());
    carModelHondaValue.setDisplayName("~honda");
    carModelHondaValue.setName("honda");
    // A match type of broad will match anything including "honda",
    // i.e. "~honda".
    carModelHondaValue.setMatchType(CustomTargetingValueMatchType.BROAD);

    // Create the custom targeting values on the server.
    CustomTargetingValue[] customTargetingValues =
        customTargetingService.createCustomTargetingValues(new CustomTargetingValue[] {
            genderMaleValue, genderFemaleValue, genreComedyValue, genreDramaValue,
            carModelHondaValue});

    for (CustomTargetingValue createdCustomTargetingValue : customTargetingValues) {
      System.out.printf("A custom targeting value with ID %d, belonging to key with ID %d, "
          + "name '%s' and display name '%s' was created.%n",
          createdCustomTargetingValue.getId(),
          createdCustomTargetingValue.getCustomTargetingKeyId(),
          createdCustomTargetingValue.getName(), createdCustomTargetingValue.getDisplayName());
    }
  }
public static void runExample ( AdManagerServices adManagerServices , AdManagerSession session ) throws RemoteException { CustomTargetingServiceInterface customTargetingService = adManagerServices . get ( session , CustomTargetingServiceInterface . class ) ; CustomTargetingKey genderKey = new CustomTargetingKey ( ) ; genderKey . setDisplayName ( "gender" ) ; genderKey . setName ( "g" + new Random ( ) . nextInt ( 1000 ) ) ; genderKey . setType ( CustomTargetingKeyType . PREDEFINED ) ; CustomTargetingKey genreKey = new CustomTargetingKey ( ) ; genreKey . setDisplayName ( "genre" ) ; genreKey . setName ( "genre" + new Random ( ) . nextInt ( 1000 ) ) ; genreKey . setType ( CustomTargetingKeyType . PREDEFINED ) ; CustomTargetingKey carModelKey = new CustomTargetingKey ( ) ; carModelKey . setDisplayName ( "car model" ) ; carModelKey . setName ( "c" + new Random ( ) . nextInt ( 1000 ) ) ; carModelKey . setType ( CustomTargetingKeyType . FREEFORM ) ; CustomTargetingKey [ ] customTargetingKeys = customTargetingService . createCustomTargetingKeys ( new CustomTargetingKey [ ] { genderKey , genreKey , carModelKey } ) ; for ( CustomTargetingKey createdCustomTargetingKey : customTargetingKeys ) { System . out . printf ( "A custom targeting key with ID %d, name '%s', and display name " + "'%s' was created.%n" , createdCustomTargetingKey . getId ( ) , createdCustomTargetingKey . getName ( ) , createdCustomTargetingKey . getDisplayName ( ) ) ; } genderKey = customTargetingKeys [ 0 ] ; genreKey = customTargetingKeys [ 1 ] ; carModelKey = customTargetingKeys [ 2 ] ; CustomTargetingValue genderMaleValue = new CustomTargetingValue ( ) ; genderMaleValue . setCustomTargetingKeyId ( genderKey . getId ( ) ) ; genderMaleValue . setDisplayName ( "male" ) ; genderMaleValue . setName ( "1" ) ; genderMaleValue . setMatchType ( CustomTargetingValueMatchType . EXACT ) ; CustomTargetingValue genderFemaleValue = new CustomTargetingValue ( ) ; genderFemaleValue . setCustomTargetingKeyId ( genderKey . getId ( ) ) ; genderFemaleValue . setDisplayName ( "female" ) ; genderFemaleValue . setName ( "2" ) ; genderFemaleValue . setMatchType ( CustomTargetingValueMatchType . EXACT ) ; CustomTargetingValue genreComedyValue = new CustomTargetingValue ( ) ; genreComedyValue . setCustomTargetingKeyId ( genreKey . getId ( ) ) ; genreComedyValue . setDisplayName ( "comedy" ) ; genreComedyValue . setName ( "comedy" ) ; genreComedyValue . setMatchType ( CustomTargetingValueMatchType . EXACT ) ; CustomTargetingValue genreDramaValue = new CustomTargetingValue ( ) ; genreDramaValue . setCustomTargetingKeyId ( genreKey . getId ( ) ) ; genreDramaValue . setDisplayName ( "drama" ) ; genreDramaValue . setName ( "drama" ) ; genreDramaValue . setMatchType ( CustomTargetingValueMatchType . EXACT ) ; CustomTargetingValue carModelHondaValue = new CustomTargetingValue ( ) ; carModelHondaValue . setCustomTargetingKeyId ( carModelKey . getId ( ) ) ; carModelHondaValue . setDisplayName ( "~honda" ) ; carModelHondaValue . setName ( "honda" ) ; carModelHondaValue . setMatchType ( CustomTargetingValueMatchType . BROAD ) ; CustomTargetingValue [ ] customTargetingValues = customTargetingService . createCustomTargetingValues ( new CustomTargetingValue [ ] { genderMaleValue , genderFemaleValue , genreComedyValue , genreDramaValue , carModelHondaValue } ) ; for ( CustomTargetingValue createdCustomTargetingValue : customTargetingValues ) { System . out . printf ( "A custom targeting value with ID %d, belonging to key with ID %d, " + "name '%s' and display name '%s' was created.%n" , createdCustomTargetingValue . getId ( ) , createdCustomTargetingValue . getCustomTargetingKeyId ( ) , createdCustomTargetingValue . getName ( ) , createdCustomTargetingValue . getDisplayName ( ) ) ; } }
Runs the example.

@param adManagerServices 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.