Expand my Community achievements bar.

Join us January 15th for an AMA with Champion Achaia Walton, who will be talking about her article on Event-Based Reporting and Measuring Content Groups!

Adobe Analytics 2.0 API changes in the last few weeks: any documentation?

Avatar

Level 2

Happy New Year all!

 

I've been using the Reporting 2.0 API to power our Tableau dashboards for years. Since the Christmas break, I've noticed that all the API responses have changed and I can't find any API-specific documentation to learn more. Are more changes coming? What is the intention of the changes? 

 

For example, when requesting visits by week by tracking code, the response used to include the following data: 

data: list

itemId: str

value: str

 

Now, I see the addition of two lists:

data: list

itemId: str

itemIds: list

value: str

values: list

 

Any ideas? 

9 Replies

Avatar

Community Advisor and Adobe Champion

This isn't the first post about changes to the APIs... I haven't seen any new documentation yet, but I have reached out to someone at Adobe to see if we can get some info for people.

Avatar

Employee Advisor

Which API endpoint is this for? Reporting API, Data Warehouse API, or something else?

Avatar

Level 1

Similar thread is here: Adobe Analytics API - Adobe Experience League Community - 643303

A few members have surfaced the same issue of having new fields "itemIds" and "values", with "s" on the end. 

@Gigazelle FYI regarding the other thread but I'm assuming you're already aware. 

Avatar

Level 2

I just got this reply on my support ticket:

 


The fix is pushed to prod. Additional fields `itemIds` and `values` are removed from the response in traditional analytics.

 

Avatar

Level 1

Additional info from support: 

In the future, Adobe may add additional fields to the JSON response in their APIs. Customers should not rely on strict JSON parsing and should be flexible to the presence of new fields in the future.

 

Well-built (interoperable) JSON parsing and data handling systems are expected to ignore new members that they don't understand and thus new members should be addable to an object without affecting existing members.

 

In addition, the Report API documentation Reporting API (adobe.com) specifically states, "This guide does not include descriptions for all request and response parameters for the reports endpoint. "

 

Adobe reserves the right to add additional members to JSON objects and considers the addition of new members to existing objects to be a non-breaking change and thus does not version API methods when new members are added. A breaking change, which would result in versioning of the API methods, would be something like changing the name of a member or deleting or no longer returning a member.

Avatar

Community Advisor and Adobe Champion

I agree with this.. processing the response shouldn't be rigid... if a data field was changed that would cause a breakage (actually switching a string to list, etc)...  but adding new fields should roll through (if the process was coded properly).

 

If you rely on "key in position 1" and "key in position 2", instead of on the key names, this can cause issues because new fields may filter into those positions unexpectedly.

Avatar

Level 2

I don't disagree with the thought that a well-built system should be able to reject the additional fields; I actually changed my process to do just that as protection in the future and it is a much better solution than what I had. 

 

However, I am disappointed by Adobe's response above.  Maybe I'm just more sensitive to the tone the statement that "Adobe reserves the right...." than others here; but it feels like a mistake on their end is being blamed on those of us who had issues.

Avatar

Community Advisor and Adobe Champion

True.. the tone could have been better. Even if these changes had been forewarned.. at least people could have prepared for a potential situation, instead of being hit out of the blue with an issue that you had to investigate to even figure out what broke.

 

This is definitely not a blame game, this was a real problem and while it may have spurred better code to prevent future issues, this would have been an unscheduled hot fix for a lot of people to get out quickly to reduce impacts.