Search in sources :

Example 16 with Targeting

use of com.google.api.ads.admanager.axis.v202202.Targeting in project googleads-java-lib by googleads.

the class DeleteCustomTargetingKeys method runExample.

/**
 * Runs the example.
 *
 * @param adManagerServices the services factory.
 * @param session the session.
 * @param customTargetingKeyId the ID of the custom targeting key.
 * @throws ApiException if the API request failed with one or more service errors.
 * @throws RemoteException if the API request failed due to other errors.
 */
public static void runExample(AdManagerServices adManagerServices, AdManagerSession session, long customTargetingKeyId) throws RemoteException {
    // Get the CustomTargetingService.
    CustomTargetingServiceInterface customTargetingService = adManagerServices.get(session, CustomTargetingServiceInterface.class);
    // Create a statement to select a custom targeting key.
    StatementBuilder statementBuilder = new StatementBuilder().where("WHERE id = :id").orderBy("id ASC").limit(StatementBuilder.SUGGESTED_PAGE_LIMIT).withBindVariableValue("id", customTargetingKeyId);
    // Default for total result set size.
    int totalResultSetSize = 0;
    do {
        // Get custom targeting keys by statement.
        CustomTargetingKeyPage page = customTargetingService.getCustomTargetingKeysByStatement(statementBuilder.toStatement());
        if (page.getResults() != null) {
            totalResultSetSize = page.getTotalResultSetSize();
            int i = page.getStartIndex();
            for (CustomTargetingKey customTargetingKey : page.getResults()) {
                System.out.printf("%d) Custom targeting key with ID %d" + " will be deleted.%n", i++, customTargetingKey.getId());
            }
        }
        statementBuilder.increaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    } while (statementBuilder.getOffset() < totalResultSetSize);
    System.out.printf("Number of custom targeting keys to be deleted: %d%n", totalResultSetSize);
    if (totalResultSetSize > 0) {
        // Remove limit and offset from statement.
        statementBuilder.removeLimitAndOffset();
        // Create action.
        com.google.api.ads.admanager.axis.v202202.DeleteCustomTargetingKeys action = new com.google.api.ads.admanager.axis.v202202.DeleteCustomTargetingKeys();
        // Perform action.
        UpdateResult result = customTargetingService.performCustomTargetingKeyAction(action, statementBuilder.toStatement());
        if (result != null && result.getNumChanges() > 0) {
            System.out.printf("Number of custom targeting keys deleted: %d%n", result.getNumChanges());
        } else {
            System.out.println("No custom targeting keys were deleted.");
        }
    }
}
Also used : CustomTargetingServiceInterface(com.google.api.ads.admanager.axis.v202202.CustomTargetingServiceInterface) CustomTargetingKey(com.google.api.ads.admanager.axis.v202202.CustomTargetingKey) StatementBuilder(com.google.api.ads.admanager.axis.utils.v202202.StatementBuilder) CustomTargetingKeyPage(com.google.api.ads.admanager.axis.v202202.CustomTargetingKeyPage) UpdateResult(com.google.api.ads.admanager.axis.v202202.UpdateResult)

Example 17 with Targeting

use of com.google.api.ads.admanager.axis.v202202.Targeting in project googleads-java-lib by googleads.

the class GetAllCustomTargetingKeysAndValues method runExample.

/**
 * 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.
 */
public static void runExample(AdManagerServices adManagerServices, AdManagerSession session) throws RemoteException {
    // Get the CustomTargetingService.
    CustomTargetingServiceInterface customTargetingService = adManagerServices.get(session, CustomTargetingServiceInterface.class);
    // Get all custom targeting keys.
    List<Long> customTargetingKeyIds = getAllCustomTargetingKeyIds(adManagerServices, session);
    // Create a statement to get all custom targeting values for a custom
    // targeting key.
    StatementBuilder statementBuilder = new StatementBuilder().where("customTargetingKeyId = :customTargetingKeyId").orderBy("id ASC").limit(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    int totalResultsCounter = 0;
    for (Long customTargetingKeyId : customTargetingKeyIds) {
        // Set the custom targeting key ID to select from.
        statementBuilder.withBindVariableValue("customTargetingKeyId", customTargetingKeyId);
        // Default for total result set size and offset.
        int totalResultSetSize = 0;
        statementBuilder.offset(0);
        do {
            // Get custom targeting values by statement.
            CustomTargetingValuePage page = customTargetingService.getCustomTargetingValuesByStatement(statementBuilder.toStatement());
            if (page.getResults() != null) {
                totalResultSetSize = page.getTotalResultSetSize();
                for (CustomTargetingValue customTargetingValue : page.getResults()) {
                    System.out.printf("%d) Custom targeting value with ID %d, belonging to key " + "with ID %d, name '%s' and display name '%s' was found.%n", totalResultsCounter++, customTargetingValue.getId(), customTargetingValue.getCustomTargetingKeyId(), customTargetingValue.getName(), customTargetingValue.getDisplayName());
                }
            }
            statementBuilder.increaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT);
        } while (statementBuilder.getOffset() < totalResultSetSize);
    }
    System.out.printf("Number of results found: %d%n", totalResultsCounter);
}
Also used : CustomTargetingValue(com.google.api.ads.admanager.axis.v202202.CustomTargetingValue) CustomTargetingServiceInterface(com.google.api.ads.admanager.axis.v202202.CustomTargetingServiceInterface) StatementBuilder(com.google.api.ads.admanager.axis.utils.v202202.StatementBuilder) CustomTargetingValuePage(com.google.api.ads.admanager.axis.v202202.CustomTargetingValuePage)

Example 18 with Targeting

use of com.google.api.ads.admanager.axis.v202202.Targeting in project googleads-java-lib by googleads.

the class GetAllCustomTargetingKeysAndValues method getAllCustomTargetingKeyIds.

/**
 * Gets all custom targeting key IDs.
 */
private static List<Long> getAllCustomTargetingKeyIds(AdManagerServices adManagerServices, AdManagerSession session) throws RemoteException {
    List<Long> customTargetingKeyIds = new ArrayList<>();
    // Get the CustomTargetingService.
    CustomTargetingServiceInterface customTargetingService = adManagerServices.get(session, CustomTargetingServiceInterface.class);
    // Create a statement to get all custom targeting keys.
    StatementBuilder statementBuilder = new StatementBuilder().orderBy("id ASC").limit(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    // Default for total result set size.
    int totalResultSetSize = 0;
    do {
        // Get custom targeting keys by statement.
        CustomTargetingKeyPage page = customTargetingService.getCustomTargetingKeysByStatement(statementBuilder.toStatement());
        if (page.getResults() != null) {
            totalResultSetSize = page.getTotalResultSetSize();
            int i = page.getStartIndex();
            for (CustomTargetingKey customTargetingKey : page.getResults()) {
                System.out.printf("%d) Custom targeting key with ID %d, name '%s', and " + "display name '%s' was found.%n", i++, customTargetingKey.getId(), customTargetingKey.getName(), customTargetingKey.getDisplayName());
                customTargetingKeyIds.add(customTargetingKey.getId());
            }
        }
        statementBuilder.increaseOffsetBy(StatementBuilder.SUGGESTED_PAGE_LIMIT);
    } while (statementBuilder.getOffset() < totalResultSetSize);
    return customTargetingKeyIds;
}
Also used : CustomTargetingServiceInterface(com.google.api.ads.admanager.axis.v202202.CustomTargetingServiceInterface) CustomTargetingKey(com.google.api.ads.admanager.axis.v202202.CustomTargetingKey) StatementBuilder(com.google.api.ads.admanager.axis.utils.v202202.StatementBuilder) ArrayList(java.util.ArrayList) CustomTargetingKeyPage(com.google.api.ads.admanager.axis.v202202.CustomTargetingKeyPage)

Example 19 with Targeting

use of com.google.api.ads.admanager.axis.v202202.Targeting in project googleads-java-lib by googleads.

the class CreateTrafficForecastSegments method runExample.

/**
 * 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.
 */
public static void runExample(AdManagerServices adManagerServices, AdManagerSession session) throws RemoteException {
    // Get the adjustment service and the network service.
    AdjustmentServiceInterface adjustmentService = adManagerServices.get(session, AdjustmentServiceInterface.class);
    NetworkServiceInterface networkService = adManagerServices.get(session, NetworkServiceInterface.class);
    // Get the root ad unit ID used to target the whole site.
    String rootAdUnitId = networkService.getCurrentNetwork().getEffectiveRootAdUnitId();
    // Create inventory targeting.
    InventoryTargeting inventoryTargeting = new InventoryTargeting();
    // Create ad unit targeting for the root ad unit (i.e. the whole network).
    AdUnitTargeting adUnitTargeting = new AdUnitTargeting();
    adUnitTargeting.setAdUnitId(rootAdUnitId);
    adUnitTargeting.setIncludeDescendants(true);
    inventoryTargeting.setTargetedAdUnits(new AdUnitTargeting[] { adUnitTargeting });
    // Create targeting for United States traffic.
    GeoTargeting geoTargeting = new GeoTargeting();
    Location countryLocation = new Location();
    countryLocation.setId(2840L);
    geoTargeting.setTargetedLocations(new Location[] { countryLocation });
    Targeting targeting = new Targeting();
    targeting.setInventoryTargeting(inventoryTargeting);
    targeting.setGeoTargeting(geoTargeting);
    TrafficForecastSegment segment = new TrafficForecastSegment();
    segment.setTargeting(targeting);
    segment.setName("Forecast segment #" + new Random().nextInt(Integer.MAX_VALUE));
    // Create the traffic forecst segment on the server.
    TrafficForecastSegment[] segments = adjustmentService.createTrafficForecastSegments(new TrafficForecastSegment[] { segment });
    for (TrafficForecastSegment createdSegment : segments) {
        System.out.printf("Traffic forecast segment with ID %d and %d forecast adjustments was created.%n", createdSegment.getId(), createdSegment.getActiveForecastAdjustmentCount());
    }
}
Also used : NetworkServiceInterface(com.google.api.ads.admanager.axis.v202202.NetworkServiceInterface) TrafficForecastSegment(com.google.api.ads.admanager.axis.v202202.TrafficForecastSegment) AdUnitTargeting(com.google.api.ads.admanager.axis.v202202.AdUnitTargeting) InventoryTargeting(com.google.api.ads.admanager.axis.v202202.InventoryTargeting) Targeting(com.google.api.ads.admanager.axis.v202202.Targeting) GeoTargeting(com.google.api.ads.admanager.axis.v202202.GeoTargeting) AdUnitTargeting(com.google.api.ads.admanager.axis.v202202.AdUnitTargeting) Random(java.util.Random) AdjustmentServiceInterface(com.google.api.ads.admanager.axis.v202202.AdjustmentServiceInterface) InventoryTargeting(com.google.api.ads.admanager.axis.v202202.InventoryTargeting) GeoTargeting(com.google.api.ads.admanager.axis.v202202.GeoTargeting) Location(com.google.api.ads.admanager.axis.v202202.Location)

Example 20 with Targeting

use of com.google.api.ads.admanager.axis.v202202.Targeting in project googleads-java-lib by googleads.

the class CreateCustomTargetingKeysAndValues method runExample.

/**
 * 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.
 */
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());
    }
}
Also used : CustomTargetingValue(com.google.api.ads.admanager.axis.v202202.CustomTargetingValue) CustomTargetingServiceInterface(com.google.api.ads.admanager.axis.v202202.CustomTargetingServiceInterface) CustomTargetingKey(com.google.api.ads.admanager.axis.v202202.CustomTargetingKey) Random(java.util.Random)

Aggregations

Random (java.util.Random)17 StatementBuilder (com.google.api.ads.admanager.axis.utils.v202202.StatementBuilder)9 Targeting (com.google.api.ads.admanager.axis.v202108.Targeting)9 Targeting (com.google.api.ads.admanager.axis.v202111.Targeting)9 AdUnitTargeting (com.google.api.ads.admanager.axis.v202202.AdUnitTargeting)9 InventoryTargeting (com.google.api.ads.admanager.axis.v202202.InventoryTargeting)9 Targeting (com.google.api.ads.admanager.axis.v202202.Targeting)9 AdUnitTargeting (com.google.api.ads.admanager.axis.v202108.AdUnitTargeting)8 InventoryTargeting (com.google.api.ads.admanager.axis.v202108.InventoryTargeting)8 AdUnitTargeting (com.google.api.ads.admanager.axis.v202111.AdUnitTargeting)8 InventoryTargeting (com.google.api.ads.admanager.axis.v202111.InventoryTargeting)8 LinkedHashSet (java.util.LinkedHashSet)8 Set (java.util.Set)8 Before (org.junit.Before)8 CustomTargetingServiceInterface (com.google.api.ads.admanager.axis.v202202.CustomTargetingServiceInterface)7 NetworkServiceInterface (com.google.api.ads.admanager.axis.v202108.NetworkServiceInterface)6 NetworkServiceInterface (com.google.api.ads.admanager.axis.v202111.NetworkServiceInterface)6 CreativePlaceholder (com.google.api.ads.admanager.axis.v202108.CreativePlaceholder)5 Goal (com.google.api.ads.admanager.axis.v202108.Goal)5 Size (com.google.api.ads.admanager.axis.v202108.Size)5