package com.microsoft.bingads.examples.v10;
import java.rmi.RemoteException;
import com.microsoft.bingads.v10.campaignmanagement.*;
public class ExampleBase extends com.microsoft.bingads.examples.ExampleBase {
public ExampleBase(){}
static void outputCampaign(Campaign campaign){
if (campaign != null) {
outputBiddingScheme(campaign.getBiddingScheme());
outputStatusMessage(String.format("BudgetId: %s", campaign.getBudgetId()));
outputStatusMessage(String.format("BudgetType: %s", campaign.getBudgetType()));
if(campaign.getCampaignType() != null){
outputStatusMessage(String.format("CampaignType: %s", campaign.getCampaignType().toArray()[0]));
}
outputStatusMessage(String.format("DailyBudget: %s", campaign.getDailyBudget()));
outputStatusMessage(String.format("Description: %s", campaign.getDescription()));
outputStatusMessage(String.format("Id: %s", campaign.getId()));
outputStatusMessage(String.format("MonthlyBudget: %s", campaign.getMonthlyBudget()));
outputStatusMessage(String.format("Name: %s", campaign.getName()));
outputStatusMessage(String.format("NativeBidAdjustment: %s", campaign.getNativeBidAdjustment()));
outputStatusMessage("Settings: ");
if (campaign.getSettings() != null)
{
for (Setting setting : campaign.getSettings().getSettings())
{
if (setting instanceof ShoppingSetting)
{
outputStatusMessage("ShoppingSetting: ");
outputStatusMessage(String.format("Priority: %s", ((ShoppingSetting)setting).getPriority()));
outputStatusMessage(String.format("SalesCountryCode: %s", ((ShoppingSetting)setting).getSalesCountryCode()));
outputStatusMessage(String.format("StoreId: %s", ((ShoppingSetting)setting).getStoreId()));
}
}
}
outputStatusMessage(String.format("Status: %s", campaign.getStatus()));
outputStatusMessage(String.format("TimeZone: %s", campaign.getTimeZone()));
}
}
static void outputBudget(Budget budget)
{
if (budget != null)
{
outputStatusMessage(String.format("Amount: %s", budget.getAmount()));
outputStatusMessage(String.format("AssociationCount: %s", budget.getAssociationCount()));
outputStatusMessage(String.format("BudgetType: %s", budget.getBudgetType()));
outputStatusMessage(String.format("Id: %s", budget.getId()));
outputStatusMessage(String.format("Name: %s\n", budget.getName()));
}
}
static void outputAdGroup(AdGroup adGroup){
if (adGroup != null) {
if (adGroup.getAdDistribution() != null)
{
outputStatusMessage("AdDistribution: ");
for (AdDistribution distribution : adGroup.getAdDistribution())
{
outputStatusMessage(String.format("\t%s", distribution));
}
}
outputStatusMessage(String.format("AdRotation: %s",
adGroup.getAdRotation() != null ? adGroup.getAdRotation().getType() : null));
outputBiddingScheme(adGroup.getBiddingScheme());
outputStatusMessage(String.format("BiddingModel: %s", adGroup.getBiddingModel()));
outputStatusMessage(String.format("ContentMatchBid: %s",
adGroup.getContentMatchBid() != null ? adGroup.getContentMatchBid().getAmount() : null));
if (adGroup.getEndDate() != null)
{
outputStatusMessage(String.format("EndDate: %s/%s/%s",
adGroup.getEndDate().getMonth(),
adGroup.getEndDate().getDay(),
adGroup.getEndDate().getYear()));
}
outputStatusMessage(String.format("Id: %s", adGroup.getId()));
outputStatusMessage(String.format("Language: %s", adGroup.getLanguage()));
outputStatusMessage(String.format("Name: %s", adGroup.getName()));
outputStatusMessage(String.format("NativeBidAdjustment: %s", adGroup.getNativeBidAdjustment()));
outputStatusMessage(String.format("Network: %s", adGroup.getNetwork()));
outputStatusMessage(String.format("PricingModel: %s", adGroup.getPricingModel()));
outputStatusMessage(String.format("SearchBid: %s",
adGroup.getSearchBid() != null ? adGroup.getSearchBid().getAmount() : null));
if (adGroup.getStartDate() != null)
{
outputStatusMessage(String.format("StartDate: %s/%s/%s",
adGroup.getStartDate().getMonth(),
adGroup.getStartDate().getDay(),
adGroup.getStartDate().getYear()));
}
outputStatusMessage(String.format("Status: %s", adGroup.getStatus()));
}
}
static void outputCampaignCriterionWithProductScope(CampaignCriterion campaignCriterion){
if (campaignCriterion != null) {
outputStatusMessage(String.format("BidAdjustment: %s", campaignCriterion.getBidAdjustment()));
outputStatusMessage(String.format("CampaignId: %s", campaignCriterion.getCampaignId()));
outputStatusMessage(String.format("CampaignCriterion Id: %s", campaignCriterion.getId()));
outputStatusMessage(String.format("CampaignCriterion Type: %s", campaignCriterion.getType()));
// Output the Campaign Management ProductScope Object
outputProductScope((ProductScope)campaignCriterion.getCriterion());
}
}
static void outputProductScope(ProductScope productScope){
if (productScope != null) {
outputStatusMessage("Product Conditions: ");
for (ProductCondition condition : productScope.getConditions().getProductConditions())
{
outputStatusMessage(String.format("\tOperand: %s", condition.getOperand()));
outputStatusMessage(String.format("\tAttribute: %s", condition.getAttribute()));
}
}
}
static void outputCriterion(Criterion criterion)
{
if (criterion != null)
{
outputStatusMessage(String.format("Criterion Type: %s", criterion.getType()));
if (criterion instanceof ProductPartition)
{
outputProductPartition((ProductPartition)criterion);
}
else if (criterion instanceof ProductScope)
{
outputProductScope((ProductScope)criterion);
}
else if (criterion instanceof Webpage)
{
outputWebpage((Webpage)criterion);
}
}
}
static void outputProductPartition(ProductPartition productPartition){
if (productPartition != null) {
outputStatusMessage(String.format("ParentCriterionId: %s", productPartition.getParentCriterionId()));
outputStatusMessage(String.format("PartitionType: %s", productPartition.getPartitionType()));
if (productPartition.getCondition() != null) {
outputStatusMessage("Condition: ");
outputStatusMessage(String.format("\tOperand: %s", productPartition.getCondition().getOperand()));
outputStatusMessage(String.format("\tAttribute: %s", productPartition.getCondition().getAttribute()));
}
}
}
static void outputWebpage(Webpage webpage){
if (webpage != null && webpage.getParameter() != null && webpage.getParameter().getConditions() != null) {
outputStatusMessage(String.format("Webpage CriterionName: %s", webpage.getParameter().getCriterionName()));
outputStatusMessage("Webpage Conditions: ");
for (WebpageCondition condition : webpage.getParameter().getConditions().getWebpageConditions())
{
outputStatusMessage(String.format("\tOperand: %s", condition.getOperand()));
outputStatusMessage(String.format("\tArgument: %s", condition.getArgument()));
}
}
}
static void outputCriterionBid(CriterionBid criterionBid)
{
if (criterionBid != null)
{
outputStatusMessage(String.format("CriterionBid Type: %s", criterionBid.getType()));
if (criterionBid instanceof FixedBid)
{
outputFixedBid((FixedBid)criterionBid);
}
}
}
static void outputFixedBid(FixedBid fixedBid){
if (fixedBid != null && fixedBid.getBid() != null) {
outputStatusMessage(String.format("Bid Amount: %s", fixedBid.getBid().getAmount()));
}
}
static void outputBiddableAdGroupCriterion(BiddableAdGroupCriterion criterion)
{
if (criterion != null)
{
// output inherited properties of the AdGroupCriterion base class.
outputAdGroupCriterion(criterion);
// output properties that are specific to the BiddableAdGroupCriterion
outputCriterionBid(criterion.getCriterionBid());
outputStatusMessage(String.format("DestinationUrl: %s", criterion.getDestinationUrl()));
outputStatusMessage(String.format("EditorialStatus: %s", criterion.getEditorialStatus()));
outputStatusMessage("FinalMobileUrls: ");
if (criterion.getFinalMobileUrls() != null)
{
for(java.lang.String finalMobileUrl : criterion.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (criterion.getFinalUrls() != null)
{
for(java.lang.String finalUrl : criterion.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage(String.format("TrackingUrlTemplate: %s", criterion.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (criterion.getUrlCustomParameters() != null && criterion.getUrlCustomParameters().getParameters() != null)
{
for(CustomParameter customParameter : criterion.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
}
}
static void outputNegativeAdGroupCriterion(NegativeAdGroupCriterion criterion)
{
if (criterion != null)
{
// output inherited properties of the AdGroupCriterion base class.
outputAdGroupCriterion(criterion);
// There aren't any properties that are specific to the NegativeAdGroupCriterion
}
}
static void outputAdGroupCriterion(AdGroupCriterion criterion)
{
if (criterion != null)
{
outputStatusMessage(String.format("AdGroupId: %s", criterion.getAdGroupId()));
outputCriterion(criterion.getCriterion());
outputStatusMessage(String.format("Id: %s", criterion.getId()));
outputStatusMessage(String.format("Status: %s", criterion.getStatus()));
outputStatusMessage(String.format("AdGroupCriterion Type: %s", criterion.getType()));
}
}
// Prints the campaign identifiers, as well as any partial errors
static void outputCampaignsWithPartialErrors(ArrayOfCampaign campaigns, ArrayOfNullableOflong campaignIds, ArrayOfBatchError partialErrors)
{
if (campaigns == null || campaignIds == null || campaigns.getCampaigns().size() != campaignIds.getLongs().size())
{
return;
}
// Print the identifier of each successfully added campaign.
for (int index = 0; index < campaigns.getCampaigns().size(); index++ )
{
// The array of keyword identifiers equals the size of the attempted campaigns. If the element
// is not null, the campaign at that index was added successfully and has a campaign identifier.
if (campaignIds.getLongs().get(index) != null)
{
outputStatusMessage(String.format("Campaign[%s] (Name:%s) successfully added and assigned CampaignId %s\n",
index,
campaigns.getCampaigns().get(index).getName(),
campaignIds.getLongs().get(index)));
}
}
// Print the error details for any campaign not successfully added.
// Note also that multiple error reasons may exist for the same attempted campaign.
for (BatchError error : partialErrors.getBatchErrors())
{
// The index of the partial errors is equal to the index of the list
// specified in the call to AddCampaigns.
outputStatusMessage(String.format("\nCampaign[%s] (Name:%s) not added due to the following error:\n",
error.getIndex(), campaigns.getCampaigns().get(error.getIndex()).getName()));
outputStatusMessage(String.format("\tIndex: %s\n", error.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", error.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", error.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n", error.getMessage()));
// In the case of an EditorialError, more details are available
if (error.getType().equals("EditorialError") && error.getErrorCode().equals("CampaignServiceEditorialValidationError"))
{
outputStatusMessage(String.format("\tDisapprovedText: %s\n", ((EditorialError)(error)).getDisapprovedText()));
outputStatusMessage(String.format("\tLocation: %s\n", ((EditorialError)(error)).getLocation()));
outputStatusMessage(String.format("\tPublisherCountry: %s\n", ((EditorialError)(error)).getPublisherCountry()));
outputStatusMessage(String.format("\tReasonCode: %s\n", ((EditorialError)(error)).getReasonCode()));
}
}
outputStatusMessage("");
}
// Prints the ad group identifiers, as well as any partial errors
static void outputAdGroupsWithPartialErrors(ArrayOfAdGroup adGroups, ArrayOfNullableOflong adGroupIds, ArrayOfBatchError partialErrors)
{
if (adGroups == null || adGroupIds == null || adGroups.getAdGroups().size() != adGroupIds.getLongs().size())
{
return;
}
// Print the identifier of each successfully added ad group.
for (int index = 0; index < adGroups.getAdGroups().size(); index++ )
{
// The array of ad group identifiers equals the size of the attempted ad group. If the element
// is not null, the ad group at that index was added successfully and has an ad group identifier.
if (adGroupIds.getLongs().get(index) != null)
{
outputStatusMessage(String.format("AdGroup[%s] (Name:%s) successfully added and assigned AdGroupId %s\n",
index,
adGroups.getAdGroups().get(index).getName(),
adGroupIds.getLongs().get(index)));
}
}
// Print the error details for any ad group not successfully added.
// Note also that multiple error reasons may exist for the same attempted ad group.
for (BatchError error : partialErrors.getBatchErrors())
{
// The index of the partial errors is equal to the index of the list
// specified in the call to AddAdGroups.
outputStatusMessage(String.format("\nAdGroup[%s] (Name:%s) not added due to the following error:\n",
error.getIndex(), adGroups.getAdGroups().get(error.getIndex()).getName()));
outputStatusMessage(String.format("\tIndex: %s\n", error.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", error.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", error.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n", error.getMessage()));
// In the case of an EditorialError, more details are available
if (error.getType().equals("EditorialError") && error.getErrorCode().equals("CampaignServiceEditorialValidationError"))
{
outputStatusMessage(String.format("\tDisapprovedText: %s\n", ((EditorialError)(error)).getDisapprovedText()));
outputStatusMessage(String.format("\tLocation: %s\n", ((EditorialError)(error)).getLocation()));
outputStatusMessage(String.format("\tPublisherCountry: %s\n", ((EditorialError)(error)).getPublisherCountry()));
outputStatusMessage(String.format("\tReasonCode: %s\n", ((EditorialError)(error)).getReasonCode()));
}
}
outputStatusMessage("");
}
static void outputKeyword(Keyword keyword){
if (keyword != null) {
outputStatusMessage(String.format("Bid.Amount: %s", keyword.getBid() != null ? keyword.getBid().getAmount() : 0)
);
outputBiddingScheme(keyword.getBiddingScheme());
outputStatusMessage(String.format("DestinationUrl: %s", keyword.getDestinationUrl()));
outputStatusMessage(String.format("EditorialStatus: %s", keyword.getEditorialStatus()));
outputStatusMessage("FinalMobileUrls: ");
if (keyword.getFinalMobileUrls() != null)
{
for(java.lang.String finalMobileUrl : keyword.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (keyword.getFinalUrls() != null)
{
for(java.lang.String finalUrl : keyword.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage("ForwardCompatibilityMap: ");
if (keyword.getForwardCompatibilityMap() != null)
{
for(KeyValuePairOfstringstring pair : keyword.getForwardCompatibilityMap().getKeyValuePairOfstringstrings())
{
outputStatusMessage(String.format("Key: %s", pair.getKey()));
outputStatusMessage(String.format("Value: %s", pair.getValue()));
}
}
outputStatusMessage(String.format("Id: %s", keyword.getId()));
outputStatusMessage(String.format("MatchType: %s", keyword.getMatchType()));
outputStatusMessage(String.format("Param1: %s", keyword.getParam1()));
outputStatusMessage(String.format("Param2: %s", keyword.getParam2()));
outputStatusMessage(String.format("Param3: %s", keyword.getParam3()));
outputStatusMessage(String.format("Status: %s", keyword.getStatus()));
outputStatusMessage(String.format("Text: %s", keyword.getText()));
outputStatusMessage(String.format("TrackingUrlTemplate: %s", keyword.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (keyword.getUrlCustomParameters() != null && keyword.getUrlCustomParameters().getParameters() != null)
{
for(CustomParameter customParameter : keyword.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
}
}
// Prints the keyword identifiers, as well as any partial errors
static void outputKeywordsWithPartialErrors(ArrayOfKeyword keywords, ArrayOfNullableOflong keywordIds, ArrayOfBatchError partialErrors)
{
if (keywords == null || keywordIds == null || keywords.getKeywords().size() != keywordIds.getLongs().size())
{
return;
}
// Print the identifier of each successfully added keyword.
for (int index = 0; index < keywords.getKeywords().size(); index++ )
{
// The array of keyword identifiers equals the size of the attempted keywords. If the element
// is not null, the keyword at that index was added successfully and has a keyword identifier.
if (keywordIds.getLongs().get(index) != null)
{
outputStatusMessage(String.format("Keyword[%s] (Text:%s) successfully added and assigned KeywordId %s\n",
index,
keywords.getKeywords().get(index).getText(),
keywordIds.getLongs().get(index)));
}
}
// Print the error details for any keyword not successfully added.
// Note also that multiple error reasons may exist for the same attempted keyword.
for (BatchError error : partialErrors.getBatchErrors())
{
// The index of the partial errors is equal to the index of the list
// specified in the call to AddKeywords.
outputStatusMessage(String.format("\nKeyword[%s] (Text:%s) not added due to the following error:\n",
error.getIndex(), keywords.getKeywords().get(error.getIndex()).getText()));
outputStatusMessage(String.format("\tIndex: %s\n", error.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", error.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", error.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n", error.getMessage()));
// In the case of an EditorialError, more details are available
if (error.getType().equals("EditorialError") && error.getErrorCode().equals("CampaignServiceEditorialValidationError"))
{
outputStatusMessage(String.format("\tDisapprovedText: %s\n", ((EditorialError)(error)).getDisapprovedText()));
outputStatusMessage(String.format("\tLocation: %s\n", ((EditorialError)(error)).getLocation()));
outputStatusMessage(String.format("\tPublisherCountry: %s\n", ((EditorialError)(error)).getPublisherCountry()));
outputStatusMessage(String.format("\tReasonCode: %s\n", ((EditorialError)(error)).getReasonCode()));
}
}
outputStatusMessage("");
}
// Prints the ad identifiers, as well as any partial errors
static void outputAdsWithPartialErrors(ArrayOfAd ads, ArrayOfNullableOflong adIds, ArrayOfBatchError partialErrors)
{
if (ads == null || adIds == null || ads.getAds().size() != adIds.getLongs().size())
{
return;
}
for (int index = 0; index < ads.getAds().size(); index++ )
{
if (ads.getAds().get(index) instanceof ExpandedTextAd)
{
outputExpandedTextAd((ExpandedTextAd)(ads.getAds().get(index)));
}
else if (ads.getAds().get(index) instanceof ProductAd)
{
outputProductAd((ProductAd)(ads.getAds().get(index)));
}
else if (ads.getAds().get(index) instanceof TextAd)
{
outputTextAd((TextAd)(ads.getAds().get(index)));
}
else
{
outputStatusMessage("Unknown Ad Type");
}
}
// Print the error details for any ad not successfully added.
// Note also that multiple error reasons may exist for the same attempted ad.
for (BatchError error : partialErrors.getBatchErrors())
{
// The index of the partial errors is equal to the index of the list
// specified in the call to AddAds.
outputStatusMessage(String.format("\nAd[%s] not added due to the following error:\n", error.getIndex()));
outputStatusMessage(String.format("\tIndex: %s\n", error.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", error.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", error.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n", error.getMessage()));
// In the case of an EditorialError, more details are available
if (error.getType().equals("EditorialError") && error.getErrorCode().equals("CampaignServiceEditorialValidationError"))
{
outputStatusMessage(String.format("\tDisapprovedText: %s\n", ((EditorialError)(error)).getDisapprovedText()));
outputStatusMessage(String.format("\tLocation: %s\n", ((EditorialError)(error)).getLocation()));
outputStatusMessage(String.format("\tPublisherCountry: %s\n", ((EditorialError)(error)).getPublisherCountry()));
outputStatusMessage(String.format("\tReasonCode: %s\n", ((EditorialError)(error)).getReasonCode()));
}
}
outputStatusMessage("");
}
static void outputAd(Ad ad){
if(ad != null){
outputStatusMessage(String.format("DevicePreference: %s", ad.getDevicePreference()));
outputStatusMessage("FinalMobileUrls: ");
if (ad.getFinalMobileUrls() != null)
{
for (java.lang.String finalMobileUrl : ad.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (ad.getFinalUrls() != null)
{
for (java.lang.String finalUrl : ad.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage(String.format("Status: %s", ad.getStatus()));
outputStatusMessage(String.format("TrackingUrlTemplate: %s", ad.getTrackingUrlTemplate()));
outputStatusMessage(String.format("Type: %s", ad.getType()));
outputStatusMessage("UrlCustomParameters: ");
if (ad.getUrlCustomParameters() != null && ad.getUrlCustomParameters().getParameters() != null)
{
for (CustomParameter customParameter : ad.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
}
}
static void outputExpandedTextAd(ExpandedTextAd ad){
if (ad != null) {
// Output inherited properties of the Ad base class.
outputAd(ad);
// Output properties that are specific to the ExpandedTextAd
outputStatusMessage(String.format("DisplayUrl: %s", ad.getDisplayUrl()));
outputStatusMessage(String.format("Path1: %s", ad.getPath1()));
outputStatusMessage(String.format("Path2: %s", ad.getPath2()));
outputStatusMessage(String.format("Text: %s", ad.getText()));
outputStatusMessage(String.format("TitlePart1: %s", ad.getTitlePart1()));
outputStatusMessage(String.format("TitlePart2: %s", ad.getTitlePart2()));
}
}
static void outputProductAd(ProductAd ad){
if (ad != null) {
// Output inherited properties of the Ad base class.
outputAd(ad);
// Output properties that are specific to the ProductAd
outputStatusMessage(String.format("PromotionalText: %s", ad.getPromotionalText()));
}
}
static void outputTextAd(TextAd ad){
if (ad != null) {
// Output inherited properties of the Ad base class.
outputAd(ad);
// Output properties that are specific to the TextAd
outputStatusMessage(String.format("DestinationUrl: %s", ad.getDestinationUrl()));
outputStatusMessage(String.format("DisplayUrl: %s", ad.getDisplayUrl()));
outputStatusMessage(String.format("Text: %s", ad.getText()));
outputStatusMessage(String.format("Title: %s", ad.getTitle()));
}
}
static AdExtension setReadOnlyAdExtensionElementsToNull(AdExtension extension)
{
if (extension == null || extension.getId() == null)
{
return extension;
}
else
{
// Set to null for all extension types.
extension.setVersion(null);
if (extension instanceof LocationAdExtension)
{
((LocationAdExtension)extension).setGeoCodeStatus(null);
}
return extension;
}
}
static void outputAdExtensionsWithEditorialReasons(
ArrayOfAdExtension adExtensions,
ArrayOfAdExtensionEditorialReasonCollection adExtensionEditorialReasonCollection){
int index = 0;
for (AdExtension extension : adExtensions.getAdExtensions())
{
if (extension == null || extension.getId() == null)
{
outputStatusMessage("Extension is null or invalid.");
}
else
{
if (extension instanceof AppAdExtension)
{
outputAppAdExtension((AppAdExtension)extension);
}
else if (extension instanceof CallAdExtension)
{
outputCallAdExtension((CallAdExtension)extension);
}
else if (extension instanceof CalloutAdExtension)
{
outputCalloutAdExtension((CalloutAdExtension)extension);
}
else if (extension instanceof ImageAdExtension)
{
outputImageAdExtension((ImageAdExtension)extension);
}
else if (extension instanceof LocationAdExtension)
{
outputLocationAdExtension((LocationAdExtension)extension);
}
else if (extension instanceof ReviewAdExtension)
{
outputReviewAdExtension((ReviewAdExtension)extension);
}
else if (extension instanceof SiteLinksAdExtension)
{
outputSiteLinksAdExtension((SiteLinksAdExtension)extension);
}
else if (extension instanceof Sitelink2AdExtension)
{
outputSitelink2AdExtension((Sitelink2AdExtension)extension);
}
else if (extension instanceof StructuredSnippetAdExtension)
{
outputStructuredSnippetAdExtension((StructuredSnippetAdExtension)extension);
}
else
{
outputStatusMessage("Unknown extension type");
}
if (adExtensionEditorialReasonCollection != null
&& adExtensionEditorialReasonCollection.getAdExtensionEditorialReasonCollections().size() > 0
&& adExtensionEditorialReasonCollection.getAdExtensionEditorialReasonCollections().get(index) != null)
{
outputStatusMessage("\n");
// Print any editorial rejection reasons for the corresponding extension. This sample
// assumes the same list index for adExtensions and adExtensionEditorialReasonCollection
// as defined above.
for (AdExtensionEditorialReason adExtensionEditorialReason :
adExtensionEditorialReasonCollection.getAdExtensionEditorialReasonCollections().get(index).getReasons().getAdExtensionEditorialReasons())
{
if (adExtensionEditorialReason != null &&
adExtensionEditorialReason.getPublisherCountries() != null)
{
outputStatusMessage("Editorial Rejection Location: " + adExtensionEditorialReason.getLocation());
outputStatusMessage("Editorial Rejection PublisherCountries: ");
for (java.lang.String publisherCountry : adExtensionEditorialReason.getPublisherCountries().getStrings())
{
outputStatusMessage(" " + publisherCountry);
}
outputStatusMessage("Editorial Rejection ReasonCode: " + adExtensionEditorialReason.getReasonCode());
outputStatusMessage("Editorial Rejection Term: " + adExtensionEditorialReason.getTerm());
outputStatusMessage("\n");
}
}
}
}
outputStatusMessage("");
index++;
}
}
static void outputAdExtension(AdExtension extension){
if (extension != null) {
outputStatusMessage(String.format("Id: %s", extension.getId()));
outputStatusMessage(String.format("Type: %s", extension.getType()));
outputStatusMessage("ForwardCompatibilityMap: ");
if(extension.getForwardCompatibilityMap() != null){
for (KeyValuePairOfstringstring pair : extension.getForwardCompatibilityMap().getKeyValuePairOfstringstrings()){
outputStatusMessage(String.format("Key: %s", pair.getKey()));
outputStatusMessage(String.format("Value: %s", pair.getValue()));
}
}
outputStatusMessage("Scheduling: ");
if (extension.getScheduling() != null)
{
outputSchedule(extension.getScheduling());
}
outputStatusMessage(String.format("Status: %s", extension.getStatus()));
outputStatusMessage(String.format("Version: %s", extension.getVersion()));
}
}
static void outputSchedule(Schedule schedule)
{
if (schedule != null)
{
if (schedule.getDayTimeRanges() != null)
{
for (DayTime dayTime : schedule.getDayTimeRanges().getDayTimes())
{
outputStatusMessage(String.format("Day: %s", dayTime.getDay()));
outputStatusMessage(String.format("EndHour: %s", dayTime.getEndHour()));
outputStatusMessage(String.format("EndMinute: %s", dayTime.getEndMinute()));
outputStatusMessage(String.format("StartHour: %s", dayTime.getStartHour()));
outputStatusMessage(String.format("StartMinute: %s", dayTime.getStartMinute()));
}
}
if (schedule.getEndDate() != null)
{
outputStatusMessage(String.format("EndDate: %s/%s/%s",
schedule.getEndDate().getMonth(),
schedule.getEndDate().getDay(),
schedule.getEndDate().getYear()));
}
if (schedule.getStartDate() != null)
{
outputStatusMessage(String.format("StartDate: %s/%s/%s",
schedule.getStartDate().getMonth(),
schedule.getStartDate().getDay(),
schedule.getStartDate().getYear()));
}
boolean useSearcherTimeZone =
(schedule.getUseSearcherTimeZone() != null && (boolean)schedule.getUseSearcherTimeZone()) ? true : false;
outputStatusMessage(String.format("UseSearcherTimeZone: %s", useSearcherTimeZone));
}
}
static void outputAppAdExtension(AppAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the AppAdExtension
outputStatusMessage(String.format("AppPlatform: %s", extension.getAppPlatform()));
outputStatusMessage(String.format("AppStoreId: %s", extension.getAppStoreId()));
outputStatusMessage(String.format("DestinationUrl: %s", extension.getDestinationUrl()));
outputStatusMessage(String.format("DevicePreference: %s", extension.getDevicePreference()));
outputStatusMessage(String.format("DisplayText: %s", extension.getDisplayText()));
outputStatusMessage("FinalMobileUrls: ");
if (extension.getFinalMobileUrls() != null)
{
for (java.lang.String finalMobileUrl : extension.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (extension.getFinalUrls() != null)
{
for (java.lang.String finalUrl : extension.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage(String.format("TrackingUrlTemplate: %s", extension.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (extension.getUrlCustomParameters() != null &&
extension.getUrlCustomParameters().getParameters() != null)
{
for (CustomParameter customParameter : extension.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
}
}
static void outputCallAdExtension(CallAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the CallAdExtension
outputStatusMessage(String.format("CountryCode: %s", extension.getCountryCode()));
outputStatusMessage(String.format("DevicePreference: %s", extension.getDevicePreference()));
outputStatusMessage(String.format("IsCallOnly: %s", extension.getIsCallOnly()));
outputStatusMessage(String.format("IsCallTrackingEnabled: %s", extension.getIsCallTrackingEnabled()));
outputStatusMessage(String.format("PhoneNumber: %s", extension.getPhoneNumber()));
outputStatusMessage(String.format("RequireTollFreeTrackingNumber: %s", extension.getRequireTollFreeTrackingNumber()));
}
}
static void outputCalloutAdExtension(CalloutAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the CalloutAdExtension
outputStatusMessage(String.format("Callout Text: %s", extension.getText()));
}
}
static void outputImageAdExtension(ImageAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the ImageAdExtension
outputStatusMessage(String.format("AppPlatform: %s", extension.getAlternativeText()));
outputStatusMessage(String.format("AppStoreId: %s", extension.getDescription()));
outputStatusMessage(String.format("DestinationUrl: %s", extension.getDestinationUrl()));
outputStatusMessage("FinalMobileUrls: ");
if (extension.getFinalMobileUrls() != null)
{
for (java.lang.String finalMobileUrl : extension.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (extension.getFinalUrls() != null)
{
for (java.lang.String finalUrl : extension.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage("ImageMediaIds: ");
if (extension.getFinalUrls() != null)
{
for (java.lang.Long id : extension.getImageMediaIds().getLongs())
{
outputStatusMessage(String.format("\t%s", id));
}
}
outputStatusMessage(String.format("TrackingUrlTemplate: %s", extension.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (extension.getUrlCustomParameters() != null &&
extension.getUrlCustomParameters().getParameters() != null)
{
for (CustomParameter customParameter : extension.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
}
}
static void outputLocationAdExtension(LocationAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the LocationAdExtension
outputStatusMessage("Address: ");
if(extension.getAddress() != null){
outputStatusMessage(String.format("Street: %s", extension.getAddress().getStreetAddress()));
outputStatusMessage(String.format("City: %s", extension.getAddress().getCityName()));
outputStatusMessage(String.format("State: %s", extension.getAddress().getProvinceName()));
outputStatusMessage(String.format("Country: %s", extension.getAddress().getCountryCode()));
outputStatusMessage(String.format("Zip code: %s", extension.getAddress().getPostalCode()));
}
outputStatusMessage(String.format("Company name: %s", extension.getCompanyName()));
outputStatusMessage(String.format("Phone number: %s", extension.getPhoneNumber()));
outputStatusMessage(String.format("Business coordinates determined?: %s", extension.getGeoCodeStatus()));
if(extension.getGeoPoint() != null){
outputStatusMessage("GeoPoint: ");
outputStatusMessage(String.format("\tLatitudeInMicroDegrees: %s",
extension.getGeoPoint().getLatitudeInMicroDegrees()));
outputStatusMessage(String.format("\tLongitudeInMicroDegrees: %s",
extension.getGeoPoint().getLongitudeInMicroDegrees()));
}
outputStatusMessage(String.format("Map icon ID: %s", extension.getIconMediaId()));
outputStatusMessage(String.format("Business image ID: %s", extension.getImageMediaId()));
}
}
static void outputReviewAdExtension(ReviewAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the ReviewAdExtension
outputStatusMessage(String.format("IsExact: %s", extension.getIsExact()));
outputStatusMessage(String.format("Source: %s", extension.getSource()));
outputStatusMessage(String.format("Text: %s", extension.getText()));
outputStatusMessage(String.format("Url: %s", extension.getUrl()));
}
}
static void outputStructuredSnippetAdExtension(StructuredSnippetAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the StructuredSnippetAdExtension
outputStatusMessage(String.format("Header: %s", extension.getHeader()));
outputStatusMessage("Values: ");
if (extension.getValues() != null)
{
for (java.lang.String value : extension.getValues().getStrings())
{
outputStatusMessage(String.format("\t%s", value));
}
}
}
}
static void outputSiteLinksAdExtension(SiteLinksAdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the SiteLinksAdExtension
if(extension.getSiteLinks() != null){
outputSiteLinks(extension.getSiteLinks().getSiteLinks());
}
}
}
static void outputSitelink2AdExtension(Sitelink2AdExtension extension){
if (extension != null) {
// Output inherited properties of the AdExtension base class.
outputAdExtension(extension);
// Output properties that are specific to the Sitelink2AdExtension
outputStatusMessage(String.format("Description1: %s", extension.getDescription1()));
outputStatusMessage(String.format("Description2: %s", extension.getDescription2()));
outputStatusMessage(String.format("DestinationUrl: %s", extension.getDestinationUrl()));
outputStatusMessage(String.format("DevicePreference: %s", extension.getDevicePreference()));
outputStatusMessage(String.format("DisplayText: %s", extension.getDisplayText()));
outputStatusMessage("FinalMobileUrls: ");
if (extension.getFinalMobileUrls() != null)
{
for (java.lang.String finalMobileUrl : extension.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (extension.getFinalUrls() != null)
{
for (java.lang.String finalUrl : extension.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage(String.format("TrackingUrlTemplate: %s", extension.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (extension.getUrlCustomParameters() != null &&
extension.getUrlCustomParameters().getParameters() != null)
{
for (CustomParameter customParameter : extension.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
outputStatusMessage("");
}
}
static void outputSiteLinks(Iterable<SiteLink> siteLinks){
if (siteLinks != null) {
for (SiteLink siteLink : siteLinks)
{
outputStatusMessage(String.format("Description1: %s", siteLink.getDescription1()));
outputStatusMessage(String.format("Description2: %s", siteLink.getDescription2()));
outputStatusMessage(String.format("DestinationUrl: %s", siteLink.getDestinationUrl()));
outputStatusMessage(String.format("DevicePreference: %s", siteLink.getDevicePreference()));
outputStatusMessage(String.format("DisplayText: %s", siteLink.getDisplayText()));
outputStatusMessage("FinalMobileUrls: ");
if (siteLink.getFinalMobileUrls() != null)
{
for (java.lang.String finalMobileUrl : siteLink.getFinalMobileUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalMobileUrl));
}
}
outputStatusMessage("FinalUrls: ");
if (siteLink.getFinalUrls() != null)
{
for (java.lang.String finalUrl : siteLink.getFinalUrls().getStrings())
{
outputStatusMessage(String.format("\t%s", finalUrl));
}
}
outputStatusMessage(String.format("TrackingUrlTemplate: %s", siteLink.getTrackingUrlTemplate()));
outputStatusMessage("UrlCustomParameters: ");
if (siteLink.getUrlCustomParameters() != null &&
siteLink.getUrlCustomParameters().getParameters() != null)
{
for (CustomParameter customParameter : siteLink.getUrlCustomParameters().getParameters().getCustomParameters())
{
outputStatusMessage(String.format("\tKey: %s", customParameter.getKey()));
outputStatusMessage(String.format("\tValue: %s", customParameter.getValue()));
}
}
outputStatusMessage("");
}
}
}
// Outputs the negative keyword identifiers added to each campaign or ad group entity.
// The IdCollection items are available by calling AddNegativeKeywordsToEntities.
static void outputNegativeKeywordIds(ArrayOfIdCollection idCollections)
{
if (idCollections == null)
{
return;
}
for (int index = 0; index < idCollections.getIdCollections().size(); index++)
{
outputStatusMessage(String.format("NegativeKeyword Ids at entity index %s:\n\n", index));
for (long id : idCollections.getIdCollections().get(index).getIds().getLongs())
{
outputStatusMessage(String.format("\tId: %s\n\n", id));
}
}
}
// Outputs the negative keywords
static void outputNegativeKeywords(ArrayOfNegativeKeyword negativeKeywords)
{
if (negativeKeywords == null)
{
return;
}
for (NegativeKeyword negativeKeyword : negativeKeywords.getNegativeKeywords())
{
outputStatusMessage(String.format("\tNegativeKeyword Text: %s\n", negativeKeyword.getText()));
outputStatusMessage(String.format("\tId: %s\n", negativeKeyword.getId()));
outputStatusMessage(String.format("\tMatchType: %s\n\n", negativeKeyword.getMatchType()));
}
}
// Outputs the shared list items e.g. negative keywords
static void outputSharedListItems(ArrayOfSharedListItem sharedListItems)
{
if (sharedListItems == null)
{
return;
}
for (SharedListItem sharedListItem : sharedListItems.getSharedListItems())
{
if(sharedListItem instanceof NegativeKeyword)
{
outputStatusMessage(String.format("\tNegativeKeyword Text: %s\n", ((NegativeKeyword)sharedListItem).getText()));
outputStatusMessage(String.format("\tId: %s\n", ((NegativeKeyword)sharedListItem).getId()));
outputStatusMessage(String.format("\tMatchType: %s\n\n", ((NegativeKeyword)sharedListItem).getMatchType()));
}
}
}
// Outputs a list of EntityNegativeKeyword objects
static void outputEntityNegativeKeywords(ArrayOfEntityNegativeKeyword entityNegativeKeywords)
{
if (entityNegativeKeywords == null)
{
return;
}
outputStatusMessage("EntityNegativeKeyword items:\n");
for (EntityNegativeKeyword entityNegativeKeyword : entityNegativeKeywords.getEntityNegativeKeywords())
{
outputStatusMessage(String.format("\tEntityId: %s\n", entityNegativeKeyword.getEntityId()));
outputStatusMessage(String.format("\tEntityType: %s\n\n", entityNegativeKeyword.getEntityType()));
outputNegativeKeywords(entityNegativeKeyword.getNegativeKeywords());
}
}
// Outputs a list of EntityNegativeKeyword objects
static void outputSharedEntityIdentifiers(ArrayOfSharedEntity sharedEntities) throws RemoteException, Exception
{
if (sharedEntities != null)
{
for (int index = 0; index < sharedEntities.getSharedEntities().size(); index++)
{
SharedEntity sharedEntity = sharedEntities.getSharedEntities().get(index);
if (sharedEntity.getId() != null)
{
outputStatusMessage(String.format("SharedEntity[%s] (%s) has SharedEntity Id %s.\n\n",
index,
sharedEntities.getSharedEntities().get(index).getName(),
sharedEntities.getSharedEntities().get(index).getId()));
}
}
}
}
// Outputs a list of BatchError objects that represent partial errors while managing negative keywords.
static void outputPartialErrors(ArrayOfBatchError partialErrors)
{
if (partialErrors == null || partialErrors.getBatchErrors().size() == 0)
{
return;
}
outputStatusMessage("BatchError (PartialErrors) items:\n");
for (BatchError error : partialErrors.getBatchErrors())
{
outputStatusMessage(String.format("\tIndex: %s\n", error.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", error.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", error.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n\n", error.getMessage()));
// In the case of an EditorialError, more details are available
if (error.getType().equals("EditorialError") && error.getErrorCode().equals("CampaignServiceEditorialValidationError"))
{
outputStatusMessage(String.format("\tDisapprovedText: %s\n", ((EditorialError)(error)).getDisapprovedText()));
outputStatusMessage(String.format("\tLocation: %s\n", ((EditorialError)(error)).getLocation()));
outputStatusMessage(String.format("\tPublisherCountry: %s\n", ((EditorialError)(error)).getPublisherCountry()));
outputStatusMessage(String.format("\tReasonCode: %s\n\n", ((EditorialError)(error)).getReasonCode()));
}
}
}
// Outputs the list item identifiers, as well as any partial errors
static void outputNegativeKeywordIdsWithPartialErrors(
long sharedListId,
ArrayOfSharedListItem sharedListItems,
ArrayOflong sharedListItemIds,
ArrayOfBatchError partialErrors)
{
if (sharedListItemIds == null)
{
return;
}
for (int index = 0; index < sharedListItems.getSharedListItems().size(); index++)
{
// Determine if the SharedListItem is a NegativeKeyword.
if (sharedListItems.getSharedListItems().get(index) instanceof NegativeKeyword)
{
// Determine if the corresponding index has a valid identifier
if(sharedListItemIds.getLongs().get(index) > 0)
{
outputStatusMessage(String.format("NegativeKeyword[%s] (%s) successfully added to NegativeKeywordList (%s) and assigned Negative Keyword Id %s.\n",
index,
((NegativeKeyword)(sharedListItems.getSharedListItems().get(index))).getText(),
sharedListId,
sharedListItemIds.getLongs().get(index)));
}
}
else
{
outputStatusMessage("SharedListItem is not a NegativeKeyword.");
}
}
outputStatusMessage("");
outputPartialErrors(partialErrors);
}
// Outputs a list of SharedEntityAssociation objects.
static void outputSharedEntityAssociations(ArrayOfSharedEntityAssociation associations)
{
if (associations == null || associations.getSharedEntityAssociations().size() == 0)
{
return;
}
outputStatusMessage("SharedEntityAssociation items:\n");
for (SharedEntityAssociation sharedEntityAssociation : associations.getSharedEntityAssociations())
{
outputStatusMessage(String.format("\tEntityId: %s\n", sharedEntityAssociation.getEntityId()));
outputStatusMessage(String.format("\tEntityType: %s\n", sharedEntityAssociation.getEntityType()));
outputStatusMessage(String.format("\tSharedEntityId: %s\n", sharedEntityAssociation.getSharedEntityId()));
outputStatusMessage(String.format("\tSharedEntityType: %s\n\n", sharedEntityAssociation.getSharedEntityType()));
}
}
// Outputs a list of BatchErrorCollection objects that represent partial errors while managing
// negative keywords.
static void outputNestedPartialErrors(ArrayOfBatchErrorCollection nestedPartialErrors)
{
if (nestedPartialErrors == null || nestedPartialErrors.getBatchErrorCollections().size() == 0)
{
return;
}
outputStatusMessage("BatchErrorCollection (NestedPartialErrors) items:\n");
for (BatchErrorCollection collection : nestedPartialErrors.getBatchErrorCollections())
{
// The top level list index corresponds to the campaign or ad group index identifier.
if (collection != null)
{
if (collection.getCode() != null)
{
outputStatusMessage(String.format("\tIndex: %s\n", collection.getIndex()));
outputStatusMessage(String.format("\tCode: %s\n", collection.getCode()));
outputStatusMessage(String.format("\tErrorCode: %s\n", collection.getErrorCode()));
outputStatusMessage(String.format("\tMessage: %s\n\n", collection.getMessage()));
}
outputPartialErrors(collection.getBatchErrors());
}
}
}
static void outputRemarketingList(RemarketingList remarketingList){
if (remarketingList != null) {
outputStatusMessage(String.format("Description: %s", remarketingList.getDescription()));
outputStatusMessage("ForwardCompatibilityMap:");
if(remarketingList.getForwardCompatibilityMap() != null){
for (KeyValuePairOfstringstring pair : remarketingList.getForwardCompatibilityMap().getKeyValuePairOfstringstrings()){
outputStatusMessage(String.format("Key: %s", pair.getKey()));
outputStatusMessage(String.format("Value: %s", pair.getValue()));
}
}
outputStatusMessage(String.format("Id: %s", remarketingList.getId()));
outputStatusMessage(String.format("MembershipDuration: %s", remarketingList.getMembershipDuration()));
outputStatusMessage(String.format("Name: %s", remarketingList.getName()));
outputStatusMessage(String.format("ParentId: %s", remarketingList.getParentId()));
outputStatusMessage(String.format("Scope: %s", remarketingList.getScope()));
outputStatusMessage(String.format("TagId: %s\n", remarketingList.getTagId()));
}
}
static void outputAdGroupRemarketingListAssociation(AdGroupRemarketingListAssociation adGroupRemarketingListAssociation){
if (adGroupRemarketingListAssociation != null) {
outputStatusMessage(String.format("AdGroupId: %s", adGroupRemarketingListAssociation.getAdGroupId()));
outputStatusMessage(String.format("BidAdjustment: %s", adGroupRemarketingListAssociation.getBidAdjustment()));
outputStatusMessage(String.format("Id: %s", adGroupRemarketingListAssociation.getId()));
outputStatusMessage(String.format("RemarketingListId: %s", adGroupRemarketingListAssociation.getRemarketingListId()));
outputStatusMessage(String.format("Status: %s\n", adGroupRemarketingListAssociation.getStatus()));
}
}
static void outputBiddingScheme(BiddingScheme biddingScheme){
if (biddingScheme == null)
return;
if (biddingScheme instanceof EnhancedCpcBiddingScheme) {
outputStatusMessage("BiddingScheme Type: EnhancedCpc");
} else if (biddingScheme instanceof InheritFromParentBiddingScheme) {;
outputStatusMessage("BiddingScheme Type: InheritFromParent");
} else if (biddingScheme instanceof MaxConversionsBiddingScheme) {
outputStatusMessage("BiddingScheme Type: MaxConversions");
} else if (biddingScheme instanceof ManualCpcBiddingScheme) {
outputStatusMessage("BiddingScheme Type: ManualCpc");
} else if (biddingScheme instanceof TargetCpaBiddingScheme) {
outputStatusMessage("BiddingScheme Type: TargetCpa");
} else if (biddingScheme instanceof MaxClicksBiddingScheme) {
outputStatusMessage("BiddingScheme Type: MaxClicks");
} else {
outputStatusMessage("BiddingScheme Type: Unknown bidding scheme");
}
}
static void outputAccountMigrationStatusesInfo(AccountMigrationStatusesInfo accountMigrationStatusesInfo)
{
if (accountMigrationStatusesInfo != null)
{
outputStatusMessage(String.format("AccountId: %s", accountMigrationStatusesInfo.getAccountId()));
for (MigrationStatusInfo migrationStatusInfo : accountMigrationStatusesInfo.getMigrationStatusInfo().getMigrationStatusInfos())
{
outputMigrationStatusInfo(migrationStatusInfo);
}
}
}
static void outputMigrationStatusInfo(MigrationStatusInfo migrationStatusInfo)
{
if (migrationStatusInfo != null)
{
outputStatusMessage(String.format("MigrationType: %s", migrationStatusInfo.getMigrationType()));
outputStatusMessage(String.format("StartTimeInUtc: %s", migrationStatusInfo.getStartTimeInUtc()));
outputStatusMessage(String.format("Status: %s\n", migrationStatusInfo.getStatus()));
}
}
static void outputUetTag(UetTag uetTag)
{
if (uetTag != null)
{
outputStatusMessage(String.format("Description: %s", uetTag.getDescription()));
outputStatusMessage(String.format("Id: %s", uetTag.getId()));
outputStatusMessage(String.format("Name: %s", uetTag.getName()));
outputStatusMessage(String.format("TrackingNoScript: %s", uetTag.getTrackingNoScript()));
outputStatusMessage(String.format("TrackingScript: %s", uetTag.getTrackingScript()));
outputStatusMessage(String.format("TrackingStatus: %s\n", uetTag.getTrackingStatus()));
}
}
static void outputConversionGoal(ConversionGoal conversionGoal)
{
if (conversionGoal != null)
{
outputStatusMessage(String.format("ConversionWindowInMinutes: %s", conversionGoal.getConversionWindowInMinutes()));
outputStatusMessage(String.format("CountType: %s", conversionGoal.getCountType()));
outputStatusMessage(String.format("Id: %s", conversionGoal.getId()));
outputStatusMessage(String.format("Name: %s", conversionGoal.getName()));
outputConversionGoalRevenue(conversionGoal.getRevenue());
outputStatusMessage(String.format("Scope: %s", conversionGoal.getScope()));
outputStatusMessage(String.format("Status: %s", conversionGoal.getStatus()));
outputStatusMessage(String.format("TagId: %s", conversionGoal.getTagId()));
outputStatusMessage(String.format("TrackingStatus: %s", conversionGoal.getTrackingStatus()));
if(conversionGoal.getType() != null){
outputStatusMessage(String.format("Type: %s", conversionGoal.getType().toArray()[0]));
}
if (conversionGoal instanceof AppInstallGoal)
{
outputStatusMessage(String.format("AppPlatform: %s", ((AppInstallGoal)conversionGoal).getAppPlatform()));
outputStatusMessage(String.format("AppStoreId: %s\n", ((AppInstallGoal)conversionGoal).getAppStoreId()));
}
else if (conversionGoal instanceof DurationGoal)
{
outputStatusMessage(String.format("MinimumDurationInSeconds: %s\n", ((DurationGoal)conversionGoal).getMinimumDurationInSeconds()));
}
else if (conversionGoal instanceof EventGoal)
{
outputStatusMessage(String.format("ActionExpression: %s", ((EventGoal)conversionGoal).getActionExpression()));
outputStatusMessage(String.format("ActionOperator: %s", ((EventGoal)conversionGoal).getActionOperator()));
outputStatusMessage(String.format("CategoryExpression: %s", ((EventGoal)conversionGoal).getCategoryExpression()));
outputStatusMessage(String.format("CategoryOperator: %s", ((EventGoal)conversionGoal).getCategoryOperator()));
outputStatusMessage(String.format("LabelExpression: %s", ((EventGoal)conversionGoal).getLabelExpression()));
outputStatusMessage(String.format("LabelOperator: %s", ((EventGoal)conversionGoal).getLabelOperator()));
outputStatusMessage(String.format("Value: %s", ((EventGoal)conversionGoal).getValue()));
outputStatusMessage(String.format("ValueOperator: %s\n", ((EventGoal)conversionGoal).getValueOperator()));
}
else if (conversionGoal instanceof PagesViewedPerVisitGoal)
{
outputStatusMessage(String.format("MinimumPagesViewed: %s\n", ((PagesViewedPerVisitGoal)conversionGoal).getMinimumPagesViewed()));
}
else if (conversionGoal instanceof UrlGoal)
{
outputStatusMessage(String.format("UrlExpression: %s", ((UrlGoal)conversionGoal).getUrlExpression()));
outputStatusMessage(String.format("UrlOperator: %s\n", ((UrlGoal)conversionGoal).getUrlOperator()));
}
}
}
static void outputConversionGoalRevenue(ConversionGoalRevenue conversionGoalRevenue)
{
if (conversionGoalRevenue != null)
{
outputStatusMessage(String.format("CurrencyCode: %s", conversionGoalRevenue.getCurrencyCode()));
outputStatusMessage(String.format("Type: %s", conversionGoalRevenue.getType()));
outputStatusMessage(String.format("Value: %s", conversionGoalRevenue.getValue()));
}
}
}