facebook-java-business-sdk
facebook-java-business-sdk copied to clipboard
AdsInsights gives json parse error when fetching breakdown link_url_asset
Which SDK version are you using?
18.0.2
What's the issue?
The SDK throws an error trying to parse the API response.
Steps/Sample code to reproduce the issue
List<AdsInsights.EnumBreakdowns> breakdowns = new ArrayList<AdsInsights.EnumBreakdowns>();
breakdowns.add(AdsInsights.EnumBreakdowns.VALUE_LINK_URL_ASSET);
APINodeList<AdsInsights> Ads = new AdAccount(ad_account_id, context).getInsights()
.setLevel(AdsInsights.EnumLevel.VALUE_AD)
.setBreakdowns(breakdowns)
.setTimeRange("{\"since\":\""+NowMinus37Months+"\",\"until\":\""+Tomorrow+"\"}") //vars set elsewhere
.requestField("ad_id")
.requestField("adset_id")
.requestField("adset_name")
.requestField("campaign_name")
.execute().withAutoPaginationIterator(true);
Observed Results:
So the error happens parsing the json that comes back: Expected a string but was BEGIN_OBJECT at line 1 column 280 path $.link_url_asset
Full log:
Invalid response string: {"data":[{"ad_id":"23853349276130531","adset_id":"23853349276120531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349276140531","adset_id":"23853349276120531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349276150531","adset_id":"23853349276120531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349276170531","adset_id":"23853349276120531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349294110531","adset_id":"23853349294140531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349294130531","adset_id":"23853349294140531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349294150531","adset_id":"23853349294140531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349294160531","adset_id":"23853349294140531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349297930531","adset_id":"23853349297920531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349297950531","adset_id":"23853349297920531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349297960531","adset_id":"23853349297920531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853349297970531","adset_id":"23853349297920531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443060040531","adset_id":"23853443059870531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443060050531","adset_id":"23853443059870531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443060100531","adset_id":"23853443059870531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443060110531","adset_id":"23853443059870531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|RET","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443586600531","adset_id":"23853443586590531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443586610531","adset_id":"23853443586590531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443586630531","adset_id":"23853443586590531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853443586640531","adset_id":"23853443586590531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853454740720531","adset_id":"23853454740770531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853454740730531","adset_id":"23853454740770531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853454740740531","adset_id":"23853454740770531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853454740760531","adset_id":"23853454740770531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|EMEA|en|BioNeMo-Webinar-OnDemand|IND|PRSP","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}},{"ad_id":"23853630597530531","adset_id":"23853630597540531","adset_name":"IX10|Q1FY24|PSOC|FCBK|IMG|FR|fr|BioNeMo-Webinar-OnDemand|IND|OnDemand|CLOL","campaign_name":"IX10|Q1FY24|56288488|PSOC|FCBK|EMEA|EN|IND|BioNeMo-Webinar-OnDemand","date_start":"2020-10-04","date_stop":"2023-11-03","link_url_asset":{"website_url":"http://fb.me/","id":"23853246686160531"}}],"paging":{"cursors":{"before":"MAZDZD","after":"MjQZD"},"next":"https://graph.facebook.com/v18.0/act_249654877010472/insights?access_token=<
Expected Results:
To get ad data and the link_url_asset info.
- i stripped the access tokens and left a note that's come through in the post just as <> but was < access token removed for obvious reasons >
Additional note: if you don't ask for the breakdown the result parses fine but i need to link_url_asset
okay so the reason the SDK falls over on this is a change in the API structure on link_url_asset from String to an Object containing website_url and id. The SDK needs to be updated to handle this change. Please, for the next version fix this
thanks for reporting this. the breakdown link_url_asset
was introduced and by default all the breakdowns were set to String type. it's a gap to fix all the non-string type breakdowns. we'll introduce the new type AdAssetLinkURL
and map this breakdown's output to this type.
415bc0c17921af4b37b0f0a7c3d2825a9da77fc5 addresses this issue