Taboola Backstage API

Welcome to Taboola's Backstage API

Welcome to Taboola's Backstage API hub. You'll find comprehensive guides and documentation to help you start working with the Backstage API as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    
Ask A Question

Questions

6
ANSWERED

GET /campaigns returns an empty list

Quite similar to this issue: https://developers.taboola.com/backstage-api/discuss/5ee15745fdb1010136aa891c Sending a GET request to "/backstage/api/1.0/{{account_id}}/campaigns" with relevant account_id and bearer token in the Authorization header returns an empty list. account_id passed is returned in "/backstage/api/1.0/users/current/allowed-accounts" so no issues there. Account also has at least one campaign which passes "minimum CPC" enforcement as verified from the Taboola Backstage UI. Link to private Google doc: https://docs.google.com/document/d/1C2uRE0js0dNxjae64YB611J7pL1yMUnWhNM0gFZIB54/edit?usp=sharing Link to Backstage UI: https://backstage.taboola.com/backstage/1169136/reports/campaigns/campaign-summary#%7B%22id%22%3A%22xdp2a6m7h29%22%2C%22groupId%22%3A%22campaigns%22%2C%22reportId%22%3A%22campaign-summary%22%2C%22dateRangeSelector%22%3A%7B%22id%22%3A%223%22%2C%22term%22%3A%22last%207%20day%22%2C%22range%22%3A6%2C%22dateStart%22%3A%222020-07-10%22%2C%22dateEnd%22%3A%222020-07-16%22%7D%2C%22queryFilter%22%3A%5B%7B%22id%22%3A%22campaign_param%22%2C%22operator%22%3A%22equal%22%2C%22value%22%3A%22-1%22%7D%2C%7B%22id%22%3A%22top_results%22%2C%22operator%22%3A%22equal%22%2C%22value%22%3A%22100%22%7D%5D%2C%22currentDimension%22%3A%7B%22tab%22%3A%22tab-campaign_breakdown%22%2C%22pages%22%3A%5B%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fday%22%2C%22table%22%3A%7B%22key%22%3A%22date%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200001000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fweek%22%2C%22table%22%3A%7B%22key%22%3A%22date%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200001000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fmonth%22%2C%22table%22%3A%7B%22key%22%3A%22date%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200001000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fby_day_of_week%22%2C%22table%22%3A%7B%22key%22%3A%22dow%22%2C%22order%22%3A%22asc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fby_hour_of_day%22%2C%22table%22%3A%7B%22key%22%3A%22hour_of_day%22%2C%22order%22%3A%22asc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fcontent_provider_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fcampaign_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fsite_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fcountry_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fregion_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fdma_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%22000000000%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fplatform_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22spent%22%2C%22order%22%3A%22desc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%2200000000000100%22%7D%2C%7B%22dim%22%3A%22campaigns%2Fcampaign-summary%2Fuser_segment_breakdown%22%2C%22table%22%3A%7B%22key%22%3A%22%22%2C%22order%22%3A%22asc%22%2C%22page%22%3A1%7D%2C%22legend%22%3A%220000000000010%22%7D%5D%7D%7D

campaigns
empty_response
network_account

Posted by Rijumone Choudhuri 3 months ago

12
ANSWERED

Issues connecting to API for new environment

Greetings, We've worked with the backstage API a bit before, but for a new project, we had a sandbox environment set up for testing purposes. We are having difficulty getting our API call to work, and the errors that are returning are not at all helpful. I really wish the API responded with more information to help troubleshoot. If we use the numerical account ID provide by our account manager we get the following error: {http_status: 403, message: "Requested action is forbidden”} If we use the alpha string ID ie. "Your Account Sandbox Name" with letters and spaces we get the following error: "Bad Request" Our payload follows the JSON structure outlined here: https://developers.taboola.com/backstage-api/reference#creating-a-batch-of-campaign-items That is the method we are calling from our application, which submits the JSON object via an AJAX post. Here is a section of our code to show what we are doing: $url = 'https://backstage.taboola.com/backstage/oauth/token'; $data = array('client_id' => $taboolaCID, 'client_secret' => $taboolaSecret, 'grant_type' => 'client_credentials'); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($data), ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); $taboolaAccessToken = json_decode($result)->{'access_token'}; $ch = curl_init('https://backstage.taboola.com/backstage/api/1.0/'.$taboolaAccount.'/campaigns/'.$campaign_id.'/items/mass' ); $payload = json_encode($collection, JSON_UNESCAPED_SLASHES); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, β€˜Our Application Name'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $payload ); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'cache-control: no-cache', 'Authorization: Bearer ' . $taboolaAccessToken )); $data = curl_exec($ch); $info = curl_getinfo($ch); curl_close($ch); Any assistance would be greatly appreciated. Thanks!

account_id
postman
access_token

Posted by Chris Ellerby 3 months ago

5
ANSWERED

Duplicate campaigns to different advertiser (within the same account)

Hello, In taboola UI: When we select "network" in advertiser selection in top right corner and then duplicate campaign (by click the last icon in campaign management) we have option to select advertiser on the next screen (its called provider). However if we select specific advertiser we can duplicate only to the same advertiser - "provider" selection is grayed out. We try to use the first behavior via API, duplicate campaign to different advertiser. This is attempt to duplicate to different advertiser from network level as its done in UI: https://backstage.taboola.com/backstage/api/1.0/webfoxconetwork/campaigns/5159895/duplicate RES { "http_status": 404, "message": "Resource not found" } This is attempt to duplicate to different advertiser (we not expected this will work as its not working in taboola UI) https://backstage.taboola.com/backstage/api/1.0/bleacherbreaker-sc/campaigns/5159895/duplicate BODY: { "advertiser_id": "bleacherbreaker-m-sc", "name": "wuz-d-uk-c-0-p3-200623-bb-tb-0--dev" } RES { "http_status": 400, "message": "Trying to modify a read-only field", "offending_field": "advertiser_id" } Without passing "advertiser_id" duplication works fine. Can we somehow duplicate to different advertiser_id from API as its done from taboola UI? This can help us to avoid manual operations/error and reduce usage of taboola UI. Thanks, Misha

campaign
duplicate
different_account
feature_request

Posted by Misha Makarevsky 4 months ago