We've noticed a bug in the bulk api. For one of our clients the response has a Hotel Ad Group Type value of "HotelAd, PropertyAd" which the SDK is unable to parse. We are on sdk 13.0.15.1.
Full stacktrace:
Exception in thread "main" com.microsoft.bingads.v13.bulk.EntityReadException: Couldn't parse column Hotel Ad Group Type of BulkAdGroup entity: PropertyAd. See ColumnValues for detailed row information and cause for error details. Column values are Ad Click Parallel Tracking = ''; Experiment Id = ''; Device Preference = ''; Texts = ''; Target Ad Group Id = ''; SundayHours = ''; Boost Publisher IDs = ''; Auto Apply Recommendations = ''; MSCLKID Auto Tagging Enabled = ''; Bid Strategy TargetImpressionShare = ''; Domain Language = ''; Lead Gen SOV = ''; Media Url = ''; Status = 'Active'; Physical Intent = ''; Landing Page Relevance = ''; Value 3 = ''; Disclaimer Title = ''; Value 1 = ''; Audience = ''; Value 2 = ''; Images = ''; Cpv Bid = ''; Orders Over Amount = ''; Final Url Suffix = ''; Landscape Image Media Id = ''; From Hour = ''; WednesdayHours = ''; Adjustment Time = ''; Disclaimer Line Text = ''; Multi Media Ad Bid Adjustment = ''; Adjustment Value = ''; Include View Through Conversions = ''; Website = ''; Sync Time = ''; Province Name = ''; Bid Strategy TargetAdPosition = ''; Long Headline = ''; Budget = ''; Discount Modifier = ''; Adjustment Currency Code = ''; MondayHours = ''; Quality Score = ''; External Attribution Credit = ''; Client Id = ''; Ad Schedule = ''; To Minute = ''; Product Value 4 = ''; Product Value 5 = ''; Product Value 6 = ''; Product Value 7 = ''; Action Name = ''; Product Value 1 = ''; Product Value 2 = ''; Product Value 3 = ''; RSA Auto Generated Assets Enabled = ''; Phone Number = ''; Clicks = ''; Ad Group Type = 'HotelAds'; Corporate Image = ''; Editorial Location = ''; Display Text = ''; Bid Strategy TargetRoas = ''; Placement = ''; Version = ''; Ad Group = 'Ad group #1'; Headline = ''; Price Qualifier 3 = ''; Price Qualifier 4 = ''; Price Qualifier 1 = ''; Price Qualifier 2 = ''; Color = ''; Price Qualifier 7 = ''; Price Qualifier 8 = ''; Price Qualifier 5 = ''; Price Qualifier 6 = ''; Action Type = ''; Commission Rate = ''; Confirmation Url = ''; Sitelink Extension Destination Url = ''; TuesdayHours = ''; Alternative Text = ''; Dynamic Ad Target Condition Operator 3 = ''; Dynamic Ad Target Condition Operator 2 = ''; Dynamic Ad Target Condition Operator 1 = ''; Percent Cpc Bid = '0.1'; Budget Id = ''; SpecialHours = ''; Publisher Countries = ''; Language = ''; Audience Network Size = ''; Bid = ''; Currency Code 8 = ''; GoogleIdentifier = ''; Currency Code 4 = ''; Currency Code 5 = ''; Form Business Name = ''; Currency Code 6 = ''; Currency Code 7 = ''; Audiences = ''; Lead Delivery = ''; Schedule = ''; Currency Code 1 = ''; Currency Code 2 = ''; Currency Code 3 = ''; Parent Criterion Id = ''; LocalInventoryAdsEnabled = ''; Source Ad Id = ''; Cashback Percent = ''; Occasion = ''; Path 1 = ''; Path 2 = ''; Frequency Cap Settings = ''; Business Id = ''; Media Urls = ''; Age Ranges = ''; Hotel Ad Group Type = 'HotelAd, PropertyAd'; Confirmation Message = ''; Profile Expansion Enabled = ''; Bid Adjustment = ''; Condition 1 = ''; Impressions = ''; Condition 2 = ''; Condition 3 = ''; UET Tag Id = ''; Percent Off = ''; Modified Time = '10/20/2022 07:13:07.930'; Mobile Final Url = ''; Dynamic Description Enabled = ''; Personalized Offers Enabled = ''; Sub Type = ''; Promotion Code = ''; Id = '1232552843772103'; Custom Parameter = ''; Network Distribution = 'OwnedAndOperatedOnly'; Traffic Split Percent = ''; Error Number = ''; Max Target Value = ''; Profile = ''; Url = ''; Display Url = ''; Parent Listing Group Id = ''; Target = ''; Audience Id = ''; Cashback Scope = ''; Supported Campaign Types = ''; Final Url 2 = ''; Bid Strategy Type = 'InheritFromParent'; Final Url 1 = ''; Bid Multiplier Source = ''; Final Url 4 = ''; Form Headline = ''; Final Url 3 = ''; Final Url 6 = ''; Final Url 5 = ''; Final Url 8 = ''; Final Url 7 = ''; AdExtension Header Type = ''; Width = ''; Smart Listing = ''; Transaction Id = ''; Text Part 2 = ''; Landing Page User Experience = ''; Price Extension Type = ''; Text = ''; Conversion Name = ''; Bid Strategy MaxCpc = ''; Destination Url = ''; Disclaimer Layout = ''; CPA = ''; Source Id = ''; Is Promotions For Brands = ''; Is Excluded = ''; Maximum Bid = ''; Business Icon = ''; Bid Strategy Name = ''; Target Setting = ''; Thumbnail Id = ''; Unit = ''; Start Date = '10/19/2022'; Audience Group Id = ''; Percent Bid = ''; Asset Group = ''; Call Only = ''; Product Audience Type = ''; Postal Code = ''; City = ''; Video Status = ''; Promotion End = ''; Lead Webhook Url = ''; Radius = ''; Is Exact = ''; Hotel Attribute = ''; ThursdayHours = ''; Bid Boost Value = ''; Bid Option = ''; Conversion Time = ''; OS Names = ''; Height = ''; Use Optimized Targeting = ''; Error = ''; Editorial Status = ''; Remarketing Rule = ''; Inherited Bid Strategy Type = 'ManualCpc'; FridayHours = ''; Editorial Term = ''; Spend = ''; AdCustomizer DataType = ''; CTR = ''; Tracking Enabled = ''; Dynamic Ad Target Value 1 = ''; Map Icon = ''; StoreCode = ''; Target Campaign Id = ''; Ad Rotation = 'OptimizeForClicks'; Editorial Reason Code = ''; Dynamic Ad Target Value 2 = ''; Dynamic Ad Target Value 3 = ''; Url Expansion Opt Out = ''; Header 1 = ''; Header 2 = ''; Price Description 2 = ''; Final Mobile Url 1 = ''; Price Description 1 = ''; Final Mobile Url 2 = ''; Final Mobile Url 3 = ''; ShoppableAdsEnabled = ''; Final Mobile Url 4 = ''; Feed Name = ''; Bid Strategy TargetCpa = ''; Price Description 8 = ''; Profile Id = ''; Price Description 7 = ''; Price Description 6 = ''; Longitude = ''; Price Description 5 = ''; Price Description 4 = ''; Sitelink Extension Link Text = ''; Price Description 3 = ''; Radius Target Id = ''; Experiment Campaign Id = ''; Final Mobile Url 5 = ''; Final Mobile Url 6 = ''; Hotel Attribute Value = ''; Final Mobile Url 7 = ''; Final Mobile Url 8 = ''; Negative Audiences = ''; Landscape Logo Media Id = ''; Audience Group Name = ''; Price Unit 8 = ''; Square Image Media Id = ''; Sitelink Extension Description1 = ''; Price Unit 7 = ''; Sitelink Extension Description2 = ''; Price Unit 6 = ''; Price Unit 5 = ''; Form Policy Url = ''; Condition Operator 3 = ''; Price Unit 4 = ''; Price Unit 3 = ''; Toll Free = ''; Price Unit 2 = ''; Condition Operator 1 = ''; Price Unit 1 = ''; Condition Operator 2 = ''; Promotion Start = ''; Feed Type Id = ''; Boost Account IDs = ''; Square Logo Media Id = ''; Custom Attributes = ''; Error Detail = ''; Field Path = ''; HotSpots = ''; Privacy Status = ''; Tracking Template = ''; KeywordVariantMatchEnabled = ''; Membership Duration = ''; Business Attributes = ''; Call To Action Language = ''; Personalized Coupons Enabled = ''; Money Amount Off = ''; Avg CPC = ''; Dynamic Ad Target Condition 3 = ''; Dynamic Ad Target Condition 2 = ''; Parent Id = '590022571'; Dynamic Ad Target Condition 1 = ''; Label = ''; Lead Webhook Key = ''; Latitude = ''; Price 2 = ''; Price 1 = ''; Match Type = ''; Price 4 = ''; Price 3 = ''; Price 6 = ''; Name = ''; Price 5 = ''; Bid Strategy Id = ''; AdCustomizer AttributeValue = ''; Page Feed Ids = ''; Avg CPM = ''; Action Text = ''; Base Campaign Id = ''; Title Part 3 = ''; Disclaimer Name = ''; Title Part 2 = ''; Canvas = ''; Editorial Entity Id = ''; Title Part 1 = ''; Form Questions = ''; Currency Code = ''; Campaign = 'A. HSDE - Manual - DE'; To Hour = ''; Boost AdUnit IDs = ''; Budget Type = ''; From Minute = ''; Domain = ''; Gender Types = ''; External Attribution Model = ''; Video Url = ''; Store Id = ''; Bid Strategy TargetCostPerSale = ''; Media Ids = ''; Sitelink Extension Order = ''; Layouts = ''; Keyword Relevance = ''; Bid Strategy CommissionRate = ''; State Or Province Code = ''; Features = ''; Header 3 = ''; Header 4 = ''; Header 5 = ''; Header 6 = ''; Header 7 = ''; Callout Text = ''; Header 8 = ''; Avg position = ''; Title = ''; Lead Emails = ''; App Id = ''; Scope = ''; SaturdayHours = ''; Country Code = ''; Address Line 1 = ''; Disclaimer Popup Text = ''; Allow Image Auto Retrieve = ''; Address Line 2 = ''; Structured Snippet Values = ''; Time Zone = ''; Final Url = ''; App Status = ''; Budget Name = ''; Action Description = ''; Conversion Currency Code = ''; Mcpa Bid = ''; Flyer Name = ''; Long Headlines = ''; Conversions = ''; End Date = ''; Impression Tracking Urls = ''; Min Target Value = ''; Combination Rule = ''; Editorial Appeal Status = ''; Description = ''; Experiment Type = ''; Structured Snippet Header = ''; Ad Format Preference = ''; Cashback Monthly Budget = ''; Use Searcher Time Zone = ''; Promotion = ''; Business Name = ''; Descriptions = ''; Disclaimer Ads Enabled = ''; Cpm Bid = ''; Video Id = ''; Product Condition 7 = ''; Product Condition 6 = ''; Keyword = ''; Param3 = ''; Param2 = ''; Param1 = ''; Price 8 = ''; Price 7 = ''; Type = 'Ad Group'; Campaign Goal = ''; Goal Id = ''; Geo Code Status = ''; Microsoft Click Id = ''; Source Url = ''; Bid Strategy PercentMaxCpc = ''; Product Condition 1 = ''; Product Condition 5 = ''; Product Condition 4 = ''; Product Condition 3 = ''; Product Condition 2 = ''; Adjustment Type = ''; Audience Search Size = ''; App Platform = ''; Product Operator 1 = ''; Product Operator 2 = ''; Priority = ''; Duration In Milliseconds = ''; Product Operator 5 = ''; Thumbnail Url = ''; Product Operator 6 = ''; Product Operator 3 = ''; Product Operator 4 = ''; Verified Tracking Setting = ''; Product Operator 7 = ''; Product Operator 8 = ''; Ad Schedule Use Searcher Time Zone = 'False'; Is Lead Gen Campaign = ''; Form Description = ''; LogoPhotoURL = ''; Source = ''; Videos = ''; Cpc Bid = '0.5'; Feed Id = ''; Confirmation Action = ''; Headlines = ''; Call Tracking Enabled = ''; Call To Action = ''; Campaign Type = 'Hotel'; Aspect Ratio = ''; Promotion Target = ''; Conversion Value = ''; Confirmation Description = '';
at com.microsoft.bingads.v13.internal.bulk.MappingHelpers.createEntityReadException(MappingHelpers.java:71)
at com.microsoft.bingads.v13.internal.bulk.MappingHelpers.convertToEntity(MappingHelpers.java:29)
at com.microsoft.bingads.v13.bulk.entities.BulkAdGroup.processMappingsFromRowValues(BulkAdGroup.java:704)
at com.microsoft.bingads.v13.internal.bulk.entities.SingleRecordBulkEntity.readFromRowValues(SingleRecordBulkEntity.java:111)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkObjectReader.readNextBulkObject(SimpleBulkObjectReader.java:135)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.peek(SimpleBulkRecordReader.java:114)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.tryRead(SimpleBulkRecordReader.java:75)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.tryRead(SimpleBulkRecordReader.java:56)
at com.microsoft.bingads.v13.internal.bulk.entities.SingleRecordBulkEntity.readErrors(SingleRecordBulkEntity.java:161)
at com.microsoft.bingads.v13.internal.bulk.entities.SingleRecordBulkEntity.readRelatedData(SingleRecordBulkEntity.java:145)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.tryRead(SimpleBulkRecordReader.java:81)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.tryRead(SimpleBulkRecordReader.java:56)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkRecordReader.read(SimpleBulkRecordReader.java:32)
at com.microsoft.bingads.v13.internal.bulk.EntityIterator.readNextBatch(EntityIterator.java:54)
at com.microsoft.bingads.v13.internal.bulk.EntityIterator.updateNextBatch(EntityIterator.java:46)
at com.microsoft.bingads.v13.internal.bulk.EntityIterator.hasNext(EntityIterator.java:27)
Caused by: java.lang.IllegalArgumentException: PropertyAd
at com.microsoft.bingads.v13.campaignmanagement.HotelAdGroupType.fromValue(HotelAdGroupType.java:27)
at com.microsoft.bingads.v13.internal.bulk.StringExtensions.lambda$parseHotelSetting$13(StringExtensions.java:1737)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.microsoft.bingads.v13.internal.bulk.StringExtensions.parseHotelSetting(StringExtensions.java:1738)
at com.microsoft.bingads.v13.bulk.entities.BulkAdGroup$52.accept(BulkAdGroup.java:513)
at com.microsoft.bingads.v13.bulk.entities.BulkAdGroup$52.accept(BulkAdGroup.java:509)
at com.microsoft.bingads.v13.internal.bulk.SingleFieldBulkMapping.convertToEntity(SingleFieldBulkMapping.java:32)
at com.microsoft.bingads.v13.internal.bulk.SimpleBulkMapping.convertToEntity(SimpleBulkMapping.java:16)
at com.microsoft.bingads.v13.internal.bulk.MappingHelpers.convertToEntity(MappingHelpers.java:21)
... 22 more
We've noticed a bug in the bulk api. For one of our clients the response has a
Hotel Ad Group Type
value of"HotelAd, PropertyAd"
which the SDK is unable to parse. We are on sdk 13.0.15.1. Full stacktrace: