Welcome to the Taboola Backstage API documentation. You'll find comprehensive guides and examples to help you get started with Taboola Backstage API quickly.
Hi there, are the Spend numbers coming from Taboola’s API ever inaccurate, in terms of costs related to real-time clicks? Are they ever ahead or behind, or inflated to predict Spend associated with future clicks? We’re seeing hourly data that reflects the possibility of Spend increasing before the clicks associated with it come through. Also, what time zone Taboola’s API is using? Thanks!
Posted by Justin Farber 11 months ago
Hello, We would like to use the Taboola API to block publishers at account level through it - we would want to block the publishers based on a "contains" query (e.g. all those containing "noticias" in the name. Does anyone know if this is possible? I've seen this endpoint could be used: https://developers.taboola.com/backstage-api/reference#get-blocked-publishers-for-account Thanks! Radu
Posted by Radu Parvu 11 months ago
We noticed a strange issue where there are many publisher IDs that cannot seem to be blocked using the API. We get a successful response (200) to our campaign update request, and in the response object the 'publisher_targeting' seems accurate. However, if we retrieve the campaign details immediately after, the 'publisher_targeting' is missing many (but not all) of the publisher IDs we tried to block. The UI also does not show these publishers as blocked.
Posted by Michael 12 months ago
Hello, According to docs to remove audience targeting we need to post an object with empty collection to update endpoint: https://backstage.taboola.com/backstage/api/1.0/XXXX/campaigns/YYYYY/targeting/custom_audience { "collection":[] } It used to work fine but recently we are getting error 500. Setting audience targeting using the same endpoint by posting non empty collection works fine. Thanks
Posted by Misha Makarevsky about a year ago
Hi there, I'm writing from Blinkist or Blinks Labs GmbH. At the moment, a lot of automation changes that we push through the API are not working. Mainly to do with campaign level CPC changes and publisher bid adjustment. You can find them documented in this file, along with the error messages that we receive. Can you have a lot and tell us what we are doing wrong? Here's a quick summary to help you get into this. 1. We push campaign level CPC changes and the publisher bids for the respective campaigns in one go, so we only get one error message -> message: 'Cpc boost value must be between -99% and 100%'. This doesn't help us understand why the campaign level CPC changes are not happening. 2. For publisher bids, we always send it as a %, either +20%, +10% or -50%. We see instances of failure with each of these changes, which isn't explained by this error message: Cpc boost value must be between -99% and 100%' 3. We do have instances where the campaign level CPC changes are pushed successfully, it is when a campaign does not have publisher bidding changes. We're looking forward to your assistance so we can solve this asap. Sandra
Posted by Sandra Wu about a year ago
We noticed a huge page views discrepancy on Summary Revenue reports. Total page views on by day breakdown is very different from by placement breakdown (almost twice). Account: Spine Media - Network 1) Go to the report Revenue Summary 2) Select yesterday in datepicker 3) Select By Day breakdown 4) Select By Placement breakdown 5) Compare total pageviews on by placement breakdown with pageviews on by day. They have a major difference (almost twice). We'd like to understand what causes this discrepancy, which are the correct ones and what should be done to fix this?
Posted by Alex Kolesnykov about a year ago
We recently attempted to create a campaign via the API . It appears that some targeting was either deprecated or is simply no longer available. We received the error [400] Bad Request: Targeting: [1687024] is not available in the targeted countries due to limited scale. In this instance it seems as if the invalid targeting was simply ignored and the campaign was created despite the error. Since the create task failed, we never received or stored your campaign ID which meant that we were not able to make any updates or track spend for this campaign. This has since happened to us a few times. Is it possible to update this so that the campaign is not actually created when this error fires?
Posted by Jason Whiteford about a year ago
Are you guys currently experiencing reporting delays with your API? We have several "sub-accounts" within our Taboola account and one of them is not reporting any cost when we query the API for today. Other sub-accounts are returning cost when we query the API for today. Are you aware of any issues and if so, do you have any ETA when this will be resolved? Thanks!
Posted by Raj Kapoor about a year ago
We have been using the backstage API for a while, and have been able to extract segmentation of conversion according to post click and post view attribution. These metrics came through the following values in the API response: cpa_actions_num_from_clicks cpa_actions_num_from_views Recently, the API response has not provided these values, and we only see cpa_actions_num when it comes to conversions. Checking the platform's UI, it appears the change is reflected there as well. The documentation still references these metrics. Has there been a change in the platform itself or is this a temporary issue? Thanks
Posted by Moshik about a year ago
We have a problem with updating Lookalike Audience Targeting for the specified campaign (https://developers.taboola.com/backstage-api/reference#update-lookalike-audience-targeting). Here is an example request: curl --location --request POST 'https://backstage.taboola.com/backstage/api/1.0/definitionorg-sc/campaigns/4074776/targeting/lookalike_audience' \ --header 'Authorization: bearer {token}' \ --header 'Content-Type: application/json' \ --data-raw '{"collection":[{"collection":[{"rule_id":238699,"similarity_level":5}],"type":"INCLUDE"}]}' Here is the response: { "http_status": 400, "message": "Collection contains invalid rule ids for targeting: [238699]", "offending_field": "lookalike_audience_targeting.collection[0].collection" } Although if we check 238699 audience, we can see that it belongs to the same ad account as the campaign. curl --location --request GET 'https://backstage.taboola.com/backstage/api/1.0/definitionorg-sc/universal_pixel/conversion_rule/238699' \ --header 'Authorization: bearer {token}' What are we doing wrong? Please help us to resolve this problem.
Posted by Alex Kolesnykov about a year ago
We recently got some errors around audience targeting when trying to edit a campaign. We investigated and apparently audience targeting is read only? We need this feature to work, so I wanted to reach out and get some clarity on this. Thanks, Full error below: Unknown macro: {status} status: "error" message: "Campaign partially updated but Audience Segment Targeting failed. Requested action is forbidden" fields: Unknown macro: {audience_segments} status_code: 403 response: " Unknown macro: {"http_status"} " campaign_id: 1234291 debug_key: "{}"
Posted by Shane Brown about a year ago
We are faced with the problem of getting a list of lookalike audiences via API. Here is the endpoint that returns a list of audiences for a given marketer: https://backstage.taboola.com/backstage/api/1.0/spine-deforg-sc/universal_pixel/custom_audience_rule But it doesn't contain the audience we need, namely LAL Page 15 But if we retrieve this audience separately, then API returns the result https://backstage.taboola.com/backstage/api/1.0/spine-deforg-sc/universal_pixel/custom_audience_rule/265044 Could you help us to deal with this?
Posted by Alex Kolesnykov about a year ago
It is stated in the documentation that platform and country filters are available for by_hour_of_day dymention https://developers.taboola.com/backstage-api/reference#campaign-summary-dimensions, but they do not work. API returns success response, but the numbers do not change irrespective of the value of the filter Please check the following requests for ad account spine-deforg-sc 1. Request without any filters. curl --location --request GET 'https://backstage.taboola.com/backstage/api/1.0/spine-deforg-sc/reports/campaign-summary/dimensions/by_hour_of_day?start_date=2020-03-09&end_date=2020-03-10' \ --header 'Authorization: {token}' 2. Request with filter platform=DESK. curl --location --request GET 'https://backstage.taboola.com/backstage/api/1.0/spine-deforg-sc/reports/campaign-summary/dimensions/by_hour_of_day?start_date=2020-03-09&end_date=2020-03-10&platform=DESK' \ --header 'Authorization: {token}' 3. Request with filter country=CA. curl --location --request GET 'https://backstage.taboola.com/backstage/api/1.0/spine-deforg-sc/reports/campaign-summary/dimensions/by_hour_of_day?start_date=2020-03-09&end_date=2020-03-10&country=CA' \ --header 'Authorization: {token}' The sum of spend for all of them is the same
Posted by Alex Kolesnykov about a year ago
We need to have an ability to get hourly statistic for specific campaigns. There is such an ability on the UI (https://i.imgur.com/LSP2LyO.png), but we did`t find a way to get this statistic via the API (https://i.imgur.com/R3rEqZS.png). Please let us know whether we can retrieve hourly statistic for a specific campaign via the API?
Posted by Alex Kolesnykov about a year ago
I'm looking at your `Campaign Summary` reports (specifically in relation to the `platform_breakdown` dimension), and I'm trying to understand the potential `blocking_level` values listed in your documentation. https://developers.taboola.com/backstage-api/reference#dimension-specific-columns These three don't fit with my current mental model of how Taboola blocking works. ``` EMULATED - Emulated auto-block NETWORK - Network level block ADVERTISER_NETWORK - Advertiser network level block ``` Can you provide more color? Assuming `NETWORK` or `ADVERTISER_NETWORK` spans multiple Taboola accounts, can we have an api access point to mutate these values? We currently have to iterate over all our accounts to perform blocks. During product planning, one of our major risks was the quantity limits at the different blocking levels. An additional Network level block would alleviate some of our current concerns, simplify our processes and reduce api calls.
Posted by Nesan Waran about a year ago
Hi everyone! There’s the following note in API guide: “It’s important to note that data in Taboola reports can (and will) change retroactively during the Taboola billing cycle. This means that when fetching report data from Taboola for a data warehouse or BI solution, the data for the entire billing cycle (current calendar month + previous calendar month up to the 5th in any given month) should be periodically refreshed.” Does it mean that if we update report data daily, then today (for example) we need to request data for the period 5th of Jan - today? 2. There is a field “last_used_rawdata_update_time” in response. What does this value stand for? Does it indicate the date when the report was lastly updated? So if today we get a report with last_used_rawdata_update_time = 6th of Feb then we don’t need to update our DWH as nothing changed since this date?
Posted by Ivan Korsakov about a year ago
We are receiving a null value for 'item' in the "top_campaign_content_report" table. We have made the primary key for the table "top_campaign_content_report", which is a hash value of item, date, item_name, campaign_id fields. Sometimes, we get a null value for the item field in the response, for eg: curl -H 'Authorization: Bearer XXX' -A 'Jesey/2.25.1' 'https://backstage.taboola.com/backstage/api/1.0/xxxxxxxxxx/reports/top-campaign-content/dimensions/item_breakdown?end_date=2019-09-21&campaign=898661&start_date=2019-09-21' | jq Returns: { "item": null, "item_name": "xxxxxxxxx", "thumbnail_url": "xxxxxxx", "url": "xxxxxxxx", "campaign": "898661", "campaign_name": "xxxxxxxx", "content_provider": "1121684", "content_provider_name": "xxxxxxxx", "impressions": 1371, "visible_impressions": 376, "ctr": 0.15, "vctr": 0.53, "clicks": 2, "cpc": 0.108, "cvr": 50.00, "cvr_clicks": 50.00, "cvr_views": 0.00, "cpa": 0.22, "cpa_clicks": 0.22, "cpa_views": 0.00, "actions": 1, "actions_num_from_clicks": 1, "actions_num_from_views": 0, "cpm": 0.16, "vcpm": 0.57, "spent": 0.22, "conversions_value": 0.00, "roas": 0.00, "currency": "USD" }, The same request executed on a different date sometimes returns a valid 'item' and the hash value will get changed and this causes us to add duplicate records while upserting the data. We do not expect to be getting a null value because the item value is the same as id in the "campaign_item" table, and we do not see any null id value in the campaign_item table. After more discovery, we found that these values are being returned as 'null' because that item has been deleted from the campaign history. Can everything be paused instead of deleted to try overcome this data integrity issue?
Posted by Sean about a year ago