Search in sources :

Example 1 with Asset

use of com.google.api.ads.adwords.axis.v201809.cm.Asset in project googleads-java-lib by googleads.

the class AddMultiAssetResponsiveDisplayAd method runExample.

/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @param adGroupId the ID of the ad group where the ad will be created.
 * @throws ApiException if the API request failed with one or more service errors.
 * @throws RemoteException if the API request failed due to other errors.
 * @throws IOException if unable to retrieve an image from a URL.
 */
public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session, long adGroupId) throws IOException {
    // Get the AdGroupAdService.
    AdGroupAdServiceInterface adGroupAdService = adWordsServices.get(session, AdGroupAdServiceInterface.class);
    List<AdGroupAdOperation> operations = new ArrayList<>();
    MultiAssetResponsiveDisplayAd ad = new MultiAssetResponsiveDisplayAd();
    List<AssetLink> headlines = new ArrayList<>();
    headlines.add(createAssetLinkForText("Travel to Mars"));
    headlines.add(createAssetLinkForText("Travel to Jupiter"));
    headlines.add(createAssetLinkForText("Travel to Pluto"));
    headlines.add(createAssetLinkForText("Experience the Stars"));
    ad.setHeadlines(headlines.toArray(new AssetLink[0]));
    List<AssetLink> descriptions = new ArrayList<>();
    descriptions.add(createAssetLinkForText("Visit the planet in a luxury spaceship."));
    descriptions.add(createAssetLinkForText("See the planet in style."));
    ad.setDescriptions(descriptions.toArray(new AssetLink[0]));
    ad.setBusinessName("Galactic Luxury Cruises");
    ad.setLongHeadline(createAssetLinkForText("Visit the planet in a luxury spaceship."));
    // This ad format does not allow the creation of an image asset by setting the asset.imageData
    // field. An image asset must first be created using the AssetService, and asset.assetId must be
    // populated when creating the ad.
    ad.setMarketingImages(new AssetLink[] { createAssetLinkForImageAsset(uploadImageAsset(adWordsServices, session, "https://goo.gl/3b9Wfh")) });
    ad.setSquareMarketingImages(new AssetLink[] { createAssetLinkForImageAsset(uploadImageAsset(adWordsServices, session, "https://goo.gl/mtt54n")) });
    ad.setFinalUrls(new String[] { "http://www.example.com" });
    // Optional: set call to action text.
    ad.setCallToActionText("Shop Now");
    // Set color settings using hexadecimal values. Set allowFlexibleColor to false if you want
    // your ads to render by always using your colors strictly.
    ad.setMainColor("#0000ff");
    ad.setAccentColor("#ffff00");
    ad.setAllowFlexibleColor(false);
    // Set the format setting that the ad will be served in.
    ad.setFormatSetting(DisplayAdFormatSetting.NON_NATIVE);
    // Optional: Set dynamic display ad settings, composed of landscape logo image, promotion text,
    // and price prefix.
    ad.setDynamicSettingsPricePrefix("as low as");
    ad.setDynamicSettingsPromoText("Free shipping!");
    ad.setLogoImages(new AssetLink[] { createAssetLinkForImageAsset(uploadImageAsset(adWordsServices, session, "https://goo.gl/mtt54n")) });
    // Create ad group ad.
    AdGroupAd adGroupAd = new AdGroupAd();
    adGroupAd.setAdGroupId(adGroupId);
    adGroupAd.setAd(ad);
    // Optional: set the status.
    adGroupAd.setStatus(AdGroupAdStatus.PAUSED);
    // Create the operation.
    AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation();
    adGroupAdOperation.setOperand(adGroupAd);
    adGroupAdOperation.setOperator(Operator.ADD);
    operations.add(adGroupAdOperation);
    // Add ad.
    AdGroupAdReturnValue result = adGroupAdService.mutate(operations.toArray(new AdGroupAdOperation[operations.size()]));
    Arrays.stream(result.getValue()).map(adGroupAdResult -> (MultiAssetResponsiveDisplayAd) adGroupAdResult.getAd()).forEach(newAd -> System.out.printf("New responsive display ad with ID %d and long headline '%s' was added.%n", newAd.getId(), ((TextAsset) newAd.getLongHeadline().getAsset()).getAssetText()));
}
Also used : Arrays(java.util.Arrays) Parameter(com.beust.jcommander.Parameter) ArrayList(java.util.ArrayList) AssetLink(com.google.api.ads.adwords.axis.v201809.cm.AssetLink) AssetServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AssetServiceInterface) OfflineCredentials(com.google.api.ads.common.lib.auth.OfflineCredentials) ApiException(com.google.api.ads.adwords.axis.v201809.cm.ApiException) AssetOperation(com.google.api.ads.adwords.axis.v201809.cm.AssetOperation) ImageAsset(com.google.api.ads.adwords.axis.v201809.cm.ImageAsset) ArgumentNames(com.google.api.ads.adwords.lib.utils.examples.ArgumentNames) Credential(com.google.api.client.auth.oauth2.Credential) AdGroupAdReturnValue(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdReturnValue) AdGroupAdStatus(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdStatus) OAuthException(com.google.api.ads.common.lib.exception.OAuthException) DisplayAdFormatSetting(com.google.api.ads.adwords.axis.v201809.cm.DisplayAdFormatSetting) AdWordsServices(com.google.api.ads.adwords.axis.factory.AdWordsServices) ConfigurationLoadException(com.google.api.ads.common.lib.conf.ConfigurationLoadException) IOException(java.io.IOException) Operator(com.google.api.ads.adwords.axis.v201809.cm.Operator) CodeSampleParams(com.google.api.ads.common.lib.utils.examples.CodeSampleParams) RemoteException(java.rmi.RemoteException) DEFAULT_CONFIGURATION_FILENAME(com.google.api.ads.common.lib.utils.Builder.DEFAULT_CONFIGURATION_FILENAME) AdGroupAd(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAd) List(java.util.List) AdWordsSession(com.google.api.ads.adwords.lib.client.AdWordsSession) AdWordsServicesInterface(com.google.api.ads.adwords.lib.factory.AdWordsServicesInterface) ApiError(com.google.api.ads.adwords.axis.v201809.cm.ApiError) ValidationException(com.google.api.ads.common.lib.exception.ValidationException) MultiAssetResponsiveDisplayAd(com.google.api.ads.adwords.axis.v201809.cm.MultiAssetResponsiveDisplayAd) AdGroupAdOperation(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdOperation) Api(com.google.api.ads.common.lib.auth.OfflineCredentials.Api) TextAsset(com.google.api.ads.adwords.axis.v201809.cm.TextAsset) AdGroupAdServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdServiceInterface) TextAsset(com.google.api.ads.adwords.axis.v201809.cm.TextAsset) AdGroupAd(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAd) MultiAssetResponsiveDisplayAd(com.google.api.ads.adwords.axis.v201809.cm.MultiAssetResponsiveDisplayAd) AdGroupAdReturnValue(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdReturnValue) AdGroupAdServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdServiceInterface) ArrayList(java.util.ArrayList) AdGroupAdOperation(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdOperation) AssetLink(com.google.api.ads.adwords.axis.v201809.cm.AssetLink)

Example 2 with Asset

use of com.google.api.ads.adwords.axis.v201809.cm.Asset in project googleads-java-lib by googleads.

the class AddMultiAssetResponsiveDisplayAd method uploadImageAsset.

/**
 * Creates and uploads an {@link ImageAsset} for the specified URL.
 *
 * @return the ID of the {@link ImageAsset}.
 * @throws IOException if unable to read the image from the specified URL.
 */
private static long uploadImageAsset(AdWordsServicesInterface adWordsServices, AdWordsSession session, String url) throws IOException {
    AssetServiceInterface assetService = adWordsServices.get(session, AssetServiceInterface.class);
    // Create the image asset.
    ImageAsset image = new ImageAsset();
    // Optional: Provide a unique friendly name to identify your asset. If you specify the assetName
    // field, then both the asset name and the image being uploaded should be unique, and should not
    // match another ACTIVE asset in this customer account.
    // image.setAssetName("Image asset #" + System.currentTimeMillis());
    image.setImageData(com.google.api.ads.common.lib.utils.Media.getMediaDataFromUrl(url));
    // Create the operation.
    AssetOperation operation = new AssetOperation();
    operation.setOperator(Operator.ADD);
    operation.setOperand(image);
    // Create the asset and return the ID.
    return assetService.mutate(new AssetOperation[] { operation }).getValue(0).getAssetId();
}
Also used : AssetServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AssetServiceInterface) ImageAsset(com.google.api.ads.adwords.axis.v201809.cm.ImageAsset) AssetOperation(com.google.api.ads.adwords.axis.v201809.cm.AssetOperation)

Example 3 with Asset

use of com.google.api.ads.adwords.axis.v201809.cm.Asset in project googleads-java-lib by googleads.

the class UploadImageAsset method runExample.

/**
 * 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.
 * @throws IOException if unable to get media data from the URL.
 */
public static void runExample(AdWordsServicesInterface adWordsServices, AdWordsSession session) throws IOException {
    // Get the AssetService.
    AssetServiceInterface assetService = adWordsServices.get(session, AssetServiceInterface.class);
    // Create the image asset.
    ImageAsset image = new ImageAsset();
    // Optional: Provide a unique friendly name to identify your asset. If you specify the assetName
    // field, then both the asset name and the image being uploaded should be unique, and should not
    // match another ACTIVE asset in this customer account.
    // image.setAssetName("Jupiter Trip #" + System.currentTimeMillis());
    image.setImageData(com.google.api.ads.common.lib.utils.Media.getMediaDataFromUrl("https://goo.gl/3b9Wfh"));
    // Create the operation.
    AssetOperation operation = new AssetOperation();
    operation.setOperator(Operator.ADD);
    operation.setOperand(image);
    // Create the asset.
    AssetReturnValue result = assetService.mutate(new AssetOperation[] { operation });
    // Display the results.
    if (result != null && result.getValue() != null && result.getValue().length > 0) {
        Asset newAsset = result.getValue(0);
        System.out.printf("Image asset with ID %d and name '%s' was created.%n", newAsset.getAssetId(), newAsset.getAssetName());
    } else {
        System.out.println("No image asset was created.");
    }
}
Also used : AssetReturnValue(com.google.api.ads.adwords.axis.v201809.cm.AssetReturnValue) Asset(com.google.api.ads.adwords.axis.v201809.cm.Asset) ImageAsset(com.google.api.ads.adwords.axis.v201809.cm.ImageAsset) AssetServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AssetServiceInterface) ImageAsset(com.google.api.ads.adwords.axis.v201809.cm.ImageAsset) AssetOperation(com.google.api.ads.adwords.axis.v201809.cm.AssetOperation)

Example 4 with Asset

use of com.google.api.ads.adwords.axis.v201809.cm.Asset in project googleads-java-lib by googleads.

the class AddResponsiveSearchAd method runExample.

/**
 * Runs the example.
 *
 * @param adWordsServices the services factory.
 * @param session the session.
 * @param adGroupId the ID of the ad group where the ad will be created.
 * @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(AdWordsServicesInterface adWordsServices, AdWordsSession session, long adGroupId) throws RemoteException {
    // Get the AdGroupAdService.
    AdGroupAdServiceInterface adGroupAdService = adWordsServices.get(session, AdGroupAdServiceInterface.class);
    List<AdGroupAdOperation> operations = new ArrayList<>();
    ResponsiveSearchAd responsiveSearchAd = new ResponsiveSearchAd();
    List<AssetLink> headlines = new ArrayList<>();
    AssetLink pinnedHeadline = createAssetLinkForText("Cruise to Mars #" + System.currentTimeMillis());
    // Set a pinning to always choose this asset for HEADLINE_1. Pinning is optional; if no pinning
    // is set, then headlines and descriptions will be rotated and the ones that perform best will
    // be used more often.
    pinnedHeadline.setPinnedField(ServedAssetFieldType.HEADLINE_1);
    headlines.add(pinnedHeadline);
    headlines.add(createAssetLinkForText("Best Space Cruise Line"));
    headlines.add(createAssetLinkForText("Experience the Stars"));
    responsiveSearchAd.setHeadlines(headlines.toArray(new AssetLink[0]));
    List<AssetLink> descriptions = new ArrayList<>();
    descriptions.add(createAssetLinkForText("Buy your tickets now"));
    descriptions.add(createAssetLinkForText("Visit the Red Planet"));
    responsiveSearchAd.setDescriptions(descriptions.toArray(new AssetLink[0]));
    responsiveSearchAd.setFinalUrls(new String[] { "http://www.example.com/cruise" });
    responsiveSearchAd.setPath1("all-inclusive");
    responsiveSearchAd.setPath2("deals");
    // Create ad group ad.
    AdGroupAd responsiveSearchAdGroupAd = new AdGroupAd();
    responsiveSearchAdGroupAd.setAdGroupId(adGroupId);
    responsiveSearchAdGroupAd.setAd(responsiveSearchAd);
    // Optional: set the status.
    responsiveSearchAdGroupAd.setStatus(AdGroupAdStatus.PAUSED);
    // Create the operation.
    AdGroupAdOperation adGroupAdOperation = new AdGroupAdOperation();
    adGroupAdOperation.setOperand(responsiveSearchAdGroupAd);
    adGroupAdOperation.setOperator(Operator.ADD);
    operations.add(adGroupAdOperation);
    // Add ad.
    AdGroupAdReturnValue result = adGroupAdService.mutate(operations.toArray(new AdGroupAdOperation[0]));
    for (AdGroupAd adGroupAdResult : result.getValue()) {
        ResponsiveSearchAd newAd = (ResponsiveSearchAd) adGroupAdResult.getAd();
        System.out.printf("New responsive search ad with ID %d was added.%n", adGroupAdResult.getAd().getId());
        System.out.println("Headlines:");
        for (AssetLink headline : newAd.getHeadlines()) {
            ServedAssetFieldType pinning = headline.getPinnedField();
            System.out.printf("    %s%n", ((TextAsset) headline.getAsset()).getAssetText());
            if (pinning != null) {
                System.out.printf("    (pinned to %s)%n", pinning);
            }
        }
        System.out.println("Descriptions:");
        for (AssetLink description : newAd.getDescriptions()) {
            ServedAssetFieldType pinning = description.getPinnedField();
            System.out.printf("    %s%n", ((TextAsset) description.getAsset()).getAssetText());
            if (pinning != null) {
                System.out.printf("    (pinned to %s)%n", pinning);
            }
        }
    }
}
Also used : AdGroupAd(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAd) ServedAssetFieldType(com.google.api.ads.adwords.axis.v201809.cm.ServedAssetFieldType) AdGroupAdReturnValue(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdReturnValue) AdGroupAdServiceInterface(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdServiceInterface) ArrayList(java.util.ArrayList) AdGroupAdOperation(com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdOperation) ResponsiveSearchAd(com.google.api.ads.adwords.axis.v201809.cm.ResponsiveSearchAd) AssetLink(com.google.api.ads.adwords.axis.v201809.cm.AssetLink)

Example 5 with Asset

use of com.google.api.ads.adwords.axis.v201809.cm.Asset in project googleads-java-lib by googleads.

the class AddMultiAssetResponsiveDisplayAd method createAssetLinkForText.

/**
 * Creates an {@link AssetLink} containing a {@link TextAsset} with the specified string.
 *
 * @param text the text for the text asset.
 * @return a new {@link AssetLink}
 */
private static AssetLink createAssetLinkForText(String text) {
    AssetLink assetLink = new AssetLink();
    TextAsset textAsset = new TextAsset();
    textAsset.setAssetText(text);
    assetLink.setAsset(textAsset);
    return assetLink;
}
Also used : TextAsset(com.google.api.ads.adwords.axis.v201809.cm.TextAsset) AssetLink(com.google.api.ads.adwords.axis.v201809.cm.AssetLink)

Aggregations

AssetLink (com.google.api.ads.adwords.axis.v201809.cm.AssetLink)5 AssetServiceInterface (com.google.api.ads.adwords.axis.v201809.cm.AssetServiceInterface)4 ImageAsset (com.google.api.ads.adwords.axis.v201809.cm.ImageAsset)4 AssetOperation (com.google.api.ads.adwords.axis.v201809.cm.AssetOperation)3 TextAsset (com.google.api.ads.adwords.axis.v201809.cm.TextAsset)3 AdGroupAd (com.google.api.ads.adwords.axis.v201809.cm.AdGroupAd)2 AdGroupAdOperation (com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdOperation)2 AdGroupAdReturnValue (com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdReturnValue)2 AdGroupAdServiceInterface (com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdServiceInterface)2 Asset (com.google.api.ads.adwords.axis.v201809.cm.Asset)2 ArrayList (java.util.ArrayList)2 Parameter (com.beust.jcommander.Parameter)1 AdWordsServices (com.google.api.ads.adwords.axis.factory.AdWordsServices)1 SelectorBuilder (com.google.api.ads.adwords.axis.utils.v201809.SelectorBuilder)1 AdGroupAdStatus (com.google.api.ads.adwords.axis.v201809.cm.AdGroupAdStatus)1 ApiError (com.google.api.ads.adwords.axis.v201809.cm.ApiError)1 ApiException (com.google.api.ads.adwords.axis.v201809.cm.ApiException)1 AssetPage (com.google.api.ads.adwords.axis.v201809.cm.AssetPage)1 AssetReturnValue (com.google.api.ads.adwords.axis.v201809.cm.AssetReturnValue)1 DisplayAdFormatSetting (com.google.api.ads.adwords.axis.v201809.cm.DisplayAdFormatSetting)1