Invalid Rule Item when downloading account structure

GregThoen 1 Reputation point
2020-12-04T20:30:48.99+00:00

Hi,

Starting a couple weeks ago or so, we've had errors when trying to download the structure for some of the accounts we manage. At first, it was a single account, but it's grown to 8 of our accounts now. The cause appears to be that Microsoft's Java SDK cannot parse some of the audience entities being downloaded. We are using the latest Java SDK (in gradle: com.microsoft.bingads:microsoft.bingads:13.0.6), and our code to handle this hasn't changed in quite a long time.

We are using the SDK's BulkServiceManager to download the structure to a file. For these 8 accounts, it fails with exceptions like the following:

com.microsoft.bingads.v13.bulk.EntityReadException: Couldn't parse column Combination Rule of BulkCombinedList entity: Invalid Rule Item: OR(808883818). See ColumnValues for detailed row information and cause for error details. 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.BulkCombinedList.processMappingsFromRowValues(BulkCombinedList.java:68) 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: Invalid Rule Item: OR(808883818) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.parseCombinationRule(StringExtensions.java:1157) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.lambda$parseCombinationRules$3(StringExtensions.java:1142) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.parseCombinationRules(StringExtensions.java:1144) at com.microsoft.bingads.v13.bulk.entities.BulkCombinedList$2.accept(BulkCombinedList.java:56) at com.microsoft.bingads.v13.bulk.entities.BulkCombinedList$2.accept(BulkCombinedList.java:53) 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)

This is using JDK 11, if that matters, but I expect it doesn't, as it just seems to be an issue that the BingAds Java SDK doesn't understand an entry in the file that the API is returning.

We'd appreciate your help getting this resolved as quickly as possible, as this is the height of the shopping season, and we're unable to manage multiple of our clients' accounts.

Thanks in advance,
Greg

Microsoft Advertising API
Microsoft Advertising API
A Microsoft API that provides programmatic access to Microsoft Advertising to manage large campaigns or to integrate your marketing with other in-house systems.
382 questions
{count} votes

6 answers

Sort by: Most helpful
  1. Eric Urban - MSFT 626 Reputation points Microsoft Employee
    2020-12-08T03:56:35.987+00:00

    @GregThoen we have identified the issue and are in the process of releasing a fix with SDK version 13.0.6.1.

    Thanks again!

    0 comments No comments

  2. GregThoen 1 Reputation point
    2020-12-09T18:09:04.15+00:00

    Hi, Eric.

    Thanks for the quick work on that. I upgraded to the 13.0.6.1 version, but it still fails, just with a different exception now about a different type of audience rule/clause it can't parse:

    Caused by: com.microsoft.bingads.v13.bulk.EntityReadException: Couldn't parse column Combination Rule of BulkCombinedList entity: Invalid Rule Item: AND(808890553). See ColumnValues for detailed row information and cause for error details. 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.BulkCombinedList.processMappingsFromRowValues(BulkCombinedList.java:68) 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: Invalid Rule Item: AND(808890553) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.parseCombinationRule(StringExtensions.java:1157) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.lambda$parseCombinationRules$3(StringExtensions.java:1142) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177) at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) at com.microsoft.bingads.v13.internal.bulk.StringExtensions.parseCombinationRules(StringExtensions.java:1144) at com.microsoft.bingads.v13.bulk.entities.BulkCombinedList$2.accept(BulkCombinedList.java:56) at com.microsoft.bingads.v13.bulk.entities.BulkCombinedList$2.accept(BulkCombinedList.java:53) 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) ... 87 common frames omitted

    Note that if you/engineering needs an account to test it on, let me know, and I can post an id of one of the accounts with the issue (assuming it's safe security-wise to post an account id, which I would imagine it is). We're downloading the following entities:
    DownloadEntity.CAMPAIGNS, DownloadEntity.CAMPAIGN_TARGET_CRITERIONS, DownloadEntity.CAMPAIGN_NEGATIVE_KEYWORDS, DownloadEntity.BUDGETS, DownloadEntity.LABELS, DownloadEntity.CAMPAIGN_LABELS, DownloadEntity.AUDIENCES

    0 comments No comments

  3. GregThoen 1 Reputation point
    2020-12-18T19:45:30.693+00:00

    Hi, Eric.

    Just wondering if you have any update about this?

    Thanks,
    Greg


  4. GregThoen 1 Reputation point
    2021-01-04T23:10:13.09+00:00

    Hi, anonymous user

    Sorry - was out for the holidays. The exact value in the file giving this error is "AND(808890553)&NOT(808890549,808890547)". Here is the header row of the file:

    Type,Status,Id,Parent Id,Sub Type,Campaign,Ad Group,Website,Sync Time,Client Id,Modified Time,MSCLKID Auto Tagging Enabled,Include View Through Conversions,Profile Expansion Enabled,Tracking Template,Final Url Suffix,Custom Parameter,Final Url,Mobile Final Url,Ad Click Parallel Tracking,Time Zone,Budget Id,Budget Name,Budget,Budget Type,Bid Strategy Id,Bid Strategy Name,Bid Strategy Type,Bid Strategy MaxCpc,Bid Strategy TargetCpa,Bid Strategy TargetRoas,Bid Strategy TargetAdPosition,Bid Strategy TargetImpressionShare,Inherited Bid Strategy Type,KeywordVariantMatchEnabled,Campaign Type,Priority,LocalInventoryAdsEnabled,Start Date,End Date,Network Distribution,Ad Rotation,Cpc Bid,Language,Target Setting,Privacy Status,Bid Option,Bid Boost Value,Ad Group Type,Title,Text,Display Url,Domain,Destination Url,Business Name,Phone Number,Promotion,Editorial Status,Editorial Location,Editorial Term,Editorial Reason Code,Editorial Appeal Status,Editorial Entity Id,Device Preference,Ad Format Preference,Title Part 1,Title Part 2,Title Part 3,Text Part 2,Path 1,Path 2,Source Ad Id,Keyword,Match Type,Bid,Param1,Param2,Param3,Target,Physical Intent,Bid Adjustment,Radius Target Id,Name,OS Names,Radius,Unit,Business Id,From Hour,From Minute,To Hour,To Minute,Version,Ad Schedule,Use Searcher Time Zone,Sitelink Extension Order,Sitelink Extension Link Text,Sitelink Extension Destination Url,Sitelink Extension Description1,Sitelink Extension Description2,Geo Code Status,Map Icon,Business Icon,Address Line 1,Address Line 2,Postal Code,City,State Or Province Code,Province Name,Latitude,Longitude,StoreCode,SundayHours,MondayHours,TuesdayHours,WednesdayHours,ThursdayHours,FridayHours,SaturdayHours,SpecialHours,LogoPhotoURL,GoogleIdentifier,Country Code,Call Only,Call Tracking Enabled,Toll Free,Alternative Text,Media Ids,Display Text,Layouts,Publisher Countries,Store Id,Product Condition 1,Product Value 1,Product Condition 2,Product Value 2,Product Condition 3,Product Value 3,Product Condition 4,Product Value 4,Product Condition 5,Product Value 5,Product Condition 6,Product Value 6,Product Condition 7,Product Value 7,Action Text,Callout Text,Feed Id,Feed Type Id,Flyer Name,Media Urls,Price Extension Type,Header 1,Header 2,Header 3,Header 4,Header 5,Header 6,Header 7,Header 8,Price Description 1,Price Description 2,Price Description 3,Price Description 4,Price Description 5,Price Description 6,Price Description 7,Price Description 8,Final Url 1,Final Url 2,Final Url 3,Final Url 4,Final Url 5,Final Url 6,Final Url 7,Final Url 8,Final Mobile Url 1,Final Mobile Url 2,Final Mobile Url 3,Final Mobile Url 4,Final Mobile Url 5,Final Mobile Url 6,Final Mobile Url 7,Final Mobile Url 8,Price 1,Price 2,Price 3,Price 4,Price 5,Price 6,Price 7,Price 8,Currency Code 1,Currency Code 2,Currency Code 3,Currency Code 4,Currency Code 5,Currency Code 6,Currency Code 7,Currency Code 8,Price Unit 1,Price Unit 2,Price Unit 3,Price Unit 4,Price Unit 5,Price Unit 6,Price Unit 7,Price Unit 8,Price Qualifier 1,Price Qualifier 2,Price Qualifier 3,Price Qualifier 4,Price Qualifier 5,Price Qualifier 6,Price Qualifier 7,Price Qualifier 8,Promotion Target,Discount Modifier,Percent Off,Money Amount Off,Promotion Code,Orders Over Amount,Occasion,Promotion Start,Promotion End,Currency Code,Is Exact,Video Name,Alt Text,Video Url,Video Id,Thumbnail Url,Media Url,Video Status,Video Duration,Video Height,Video Width,Structured Snippet Header,Structured Snippet Values,AdExtension Header Type,Texts,Spend,Impressions,Clicks,CTR,Avg CPC,Avg CPM,Avg position,Conversions,CPA,Quality Score,Keyword Relevance,Landing Page Relevance,Landing Page User Experience,App Platform,App Id,Tracking Enabled,App Status,Error,Error Number,Field Path,Is Excluded,Parent Criterion Id,Audience,Audience Id,Scope,Membership Duration,UET Tag Id,Description,Remarketing Rule,Audience Search Size,Audience Network Size,Product Audience Type,Supported Campaign Types,Source Id,Domain Language,Source,Dynamic Ad Target Condition 1,Dynamic Ad Target Condition 2,Dynamic Ad Target Condition 3,Dynamic Ad Target Value 1,Dynamic Ad Target Value 2,Dynamic Ad Target Value 3,Label,Color,Microsoft Click Id,Conversion Name,Conversion Value,Conversion Time,Conversion Currency Code,Adjustment Value,Adjustment Time,Adjustment Currency Code,Adjustment Type,External Attribution Credit,External Attribution Model,Maximum Bid,Bid Multiplier Source,Call To Action,Headline,Long Headline,Landscape Image Media Id,Square Image Media Id,Landscape Logo Media Id,Square Logo Media Id,Images,Impression Tracking Urls,Profile,Profile Id,Traffic Split Percent,Base Campaign Id,Experiment Campaign Id,Experiment Id,Experiment Type,Feed Name,Custom Attributes,Page Feed Ids,Target Campaign Id,Target Ad Group Id,Schedule,Disclaimer Ads Enabled,Disclaimer Title,Disclaimer Name,Disclaimer Layout,Disclaimer Popup Text,Disclaimer Line Text,Ad Schedule Use Searcher Time Zone,Action Type,Combination Rule,Url,Height,Width

    The line with this particular issue (but note that there are other similar types of audience lists with similar things, just different numbers):
    Combined List,Active,808890583,150019628,,,,,,,01/04/2021 00:06:01.466,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,redacted,,Account,,,,,0,0,,Search;DynamicSearchAds;Shopping;Audience,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,"AND(808890553)&NOT(808890549,808890547)",,,

    Note also that I manually took out the "&NOT(808890549,808890547)" part in the file and tried iterating through the entries, so that all that was left for this entry was "AND(808890553)" and that still failed with the same error (which appears to be contrary to what your dev team found). This is using the latest version of the java SDK, which is now 13.0.7.1.

    Thanks,
    Greg


  5. GregThoen 1 Reputation point
    2021-01-08T18:04:51.523+00:00

    Hey, Eric.

    Just wanted to check in and see if there were any updates on this?

    Thanks,
    Greg

    0 comments No comments