Yahoo Developer Network (2024)

"; $('.right-nav').replaceWith(toc); if (headerList.length > 15) { // Apply style to always show scrollbar when there is overflow $('.right-nav').addClass('scrollbar'); $('.right-nav').css('height', '450px'); } } else { $('.right-nav').replaceWith("

"); } // Scrollspy var lastId, topMenu = $('.right-nav'), topMenuHeight = topMenu.outerHeight()+15, // All list items menuItems = topMenu.find("a"), // Anchors corresponding to menu items scrollItems = menuItems.map(function(){ var item = $($(this).attr("href")); if (item.length) { return item; } }); menuItems.click(function(e){ var href = $(this).attr("href"), offsetTop = href === "#" ? 0 : $(href).offset().top-topMenuHeight+1; $('html, body').stop().animate({ scrollTop: offsetTop }, 300); e.preventDefault(); }); $(window).scroll(function() { // Get container scroll position var fromTop = $(this).scrollTop()+topMenuHeight; // Get id of current scroll item var cur = scrollItems.map(function(){ if ($(this).offset().top < fromTop) return this; }); // Get the id of the current element cur = cur[cur.length-1]; var id = cur && cur.length ? cur[0].id : ""; if (lastId !== id) { lastId = id; // Set/remove active class menuItems .parent().removeClass("active") .end().filter("[href='#"+id+"']").parent().addClass("active"); } }); const tabholders = document.getElementsByClassName('tabview'); for (var x = 0, len = tabholders.length; x < len; x++) { $("#" + $(tabholders[x]).attr("id")).easytabs({animationSpeed:'fast'}); } $(".tabview-tab a").click(function () { for (var x = 0, len = tabholders.length; x < len; x++) { $("#" + $(tabholders[x]).attr("id")).easytabs({'select':$(this).attr('href')}); } }); // Load gists asynchronously (if present) loadGists(); history.pushState({ title: title, myState: true }, title, url); // Update page title if (title.length > 0) { document.title = title + ' - Yahoo Developer Network'; } else { document.title = 'Yahoo Developer Network'; } // Returns true if at least one (or more) dropdowns are expanded if ($navLevel3.hasClass('active')) { $navLevel3.removeClass('active'); $navSection.find('.expanded').removeClass('expanded'); } // Remove previous "active" class $pureMenu.find('.active').removeClass('active'); $pureMenu.find('.selected').removeClass('selected'); $navSection.find('.active').removeClass('active'); $navSection.find('.selected').removeClass('selected'); // Add new "active" class to the link and its container $this.closest('li').addClass('active'); $this.closest('ul').addClass('active'); $this.closest($navSection).addClass('active'); $this.closest($navSection).addClass('selected'); $this.closest('ul').closest('li').addClass('expanded'); // Scroll page to the top window.scrollTo(0, 0); enableTooltip(); }).fail(function() { // TODO: Failed fetching document $(location).attr('href', url); }).always(function() { $this.find('#docs-loading-indicator').remove(); }); }); /** * Handle "back" button navigation. */ window.onpopstate = function(event) { // Skip initial load if (!event.state || !event.state.myState) { return; } // Ignore hashtag updates to the URL if (document.location.pathname === currentPath) { return; } currentPath = document.location.pathname; // Load previous page via AJAX on browser's Back button $('#docs-page').load(window.location.href, function() { const tabholders = document.getElementsByClassName('tabview'); for (var x = 0, len = tabholders.length; x < len; x++) { $("#" + $(tabholders[x]).attr("id")).easytabs({animationSpeed:'fast'}); } $(".tabview-tab a").click(function () { for (var x = 0, len = tabholders.length; x < len; x++) { $("#" + $(tabholders[x]).attr("id")).easytabs({'select':$(this).attr('href')}); } }); loadGists(); var test = document.createElement('div'); test.innerHTML = ''; test.className = 'adsbox'; document.body.appendChild(test); window.setTimeout(function() { if (test.offsetHeight === 0) { if ($(':header').length > 0 && $(':header').is(':visible') === false) { var callout = $('div.g-content'); callout.first().prepend("

Ad Blocker Detected

We've detected the use of an ad blocker. For the best viewing experience, we recommend that you disable your ad blocker.

"); } } test.remove(); }, 100); }); // Update page title when going back to the previous page if (event.state) { if (title.length > 0) { document.title = event.state.title + ' - Yahoo Developer Network'; } else { document.title = 'Yahoo Developer Network'; } } // Remove previous "active" class $navSection.find('.active').removeClass('active'); $navSection.find('.selected').removeClass('selected'); // Add "active" class to the previous link in the left nav var $navLink = $('a[href="' + window.location.pathname + '"]'); $navLink.closest('li').addClass('active'); $navLink.closest('ul').addClass('active'); }; function getElementsByTagNames(list,obj) { if (!obj) var obj = document; var tagNames = list.split(','); var resultArray = new Array(); for (var i = 0; i < tagNames.length; i++) { var tags = obj.getElementsByTagName(tagNames[i]); for (var j = 0; j < tags.length;j++) { resultArray.push(tags[j]); } } var testNode = resultArray[0]; if (!testNode) return []; if (testNode.sourceIndex) { resultArray.sort(function (a,b) { return a.sourceIndex - b.sourceIndex; }); } else if (testNode.compareDocumentPosition) { resultArray.sort(function (a,b) { return 3 - (a.compareDocumentPosition(b) & 6); }); } return resultArray; } function loadGists() { var els = $('section').find('script'); var gists = {}; var code = []; var stylesheets = []; // Get elements referencing a gist and build a gist hash referencing the elements that use it els.each(function(idx, rawEl) { var el = $(rawEl); // Check if script element has src attribute if (el.attr('src')) { var gist = el.attr('src'); gist = gist.replace('.js', '.json'); rawEl.gist = gist; rawEl.file = el.attr('file'); gists[gist] = gists[gist] || { targets: [] }; gists[gist].targets.push(el); } }); // // Load the gists $.each(gists, function(name, data) { $.getJSON(name + '?callback=?', function(data) { var gist = gists[name]; gist.data = data; // Only insert the stylesheets once if (stylesheets.indexOf(gist.data.stylesheet) < 0) { stylesheets.push(gist.data.stylesheet); $('head').append('

'); } gist.files = $(gist.data.div).find('.gist-file'); gist.outer = $(gist.data.div).first().html(''); // Iterate elements refering to this gist $(gist.targets).each(function(idx, target) { var file = target.get(0).file; if (file) { var o = gist.outer.clone(); var c = '

' + $(gist.files.get(gist.data.files.indexOf(file))).html() + '

'; o.html(c); target.replaceWith(o); } else { target.replaceWith(gist.data.div); } }); }); }); } }); function isEllipsisActive(element) { return element && element[0] && (element.outerWidth() < element[0].scrollWidth); }

DSP Traffic API rate limits are adjustable on an account-by-account basis. As a baseline, all accounts are allotted a fixed number of requests per minute, per hour and per day.

Adjustments to the rate limits can be requested by the account team.

Rate Limits

The DSP Traffic API rate is rate-limited per the following default quota limits based on the number of calls in a rolling window of time.

Type

Limit

Description

GET Requests Per Minute

60

Number of GET requests allowed in a minute per user account.

PUT Requests Per Minute

30

Number of PUT requests allowed in a minute per user account.

POST Requests Per Minute

30

Number of POST requests allowed in a minute per user account.

GET Requests Per Hour

360

Number of GET requests allowed in an hour per user account

PUT Requests Per Hour

100

Number of PUT requests allowed in an hour per user account.

POST Requests Per Hour

75

Number of POST requests allowed in an hour per user account.

GET Requests Per Day

8000

Number of GET requests allowed in a day per user account.

PUT Requests Per Day

2000

Number of PUT requests allowed in a day per user account.

POST Requests Per Day

1000

Number of POST requests allowed in a day per user account

Read Current Rate Limits

Retrieves the current rate limits and what remains of the specific rate limit for your user account.

GET /traffic/ratelimit

The request takes no parameters.

Sample Request

GET https://dspapi.admanagerplus.yahoo.com/traffic/ratelimit

Sample Response

The response contains the rate limits with legacy minute, hour and day and with new set and remaining by call type minute, hour and day for your user account.

{ "trafficApiRateLimit": { "userId": 1963, "getLimitPerMin": 60, "getLimitPerHr": 360, "getLimitPerDay": 8000, "postLimitPerMin": 30, "postLimitPerHr": 75, "postLimitPerDay": 1000, "putLimitPerMin": 30, "putLimitPerHr": 100, "putLimitPerDay": 2000, "getLimitPerMinRemaining": 7, "getLimitPerHrRemaining": 19, "getLimitPerDayRemaining": 6999, "postLimitPerMinRemaining": 20, "postLimitPerHrRemaining": 55, "postLimitPerDayRemaining": 789, "putLimitPerMinRemaining": 13, "putLimitPerHrRemaining": 56, "putLimitPerDayRemaining": 1340, "limitPerMin": 32, "limitPerHour": 94, "limitPerDay": 2332 }}

The legacy rate limit values will be deprecated at a future date.

Error Messages

When any of the rate limits are exceeded, a response similar to the one below will be returned.

{ "response": null, "errors": { "httpStatusCode": 422, "message": null, "validationErrors": [ { "message": "Rate Limit Exceeded (GET Per Minute)", "propertyName": "TRAFFIC_LIMIT_GET_PER_MIN" } ] }, "timeStamp": "2017-04-25T18:00:37Z"}
Yahoo Developer Network (2024)
Top Articles
Latest Posts
Article information

Author: Ouida Strosin DO

Last Updated:

Views: 5788

Rating: 4.6 / 5 (56 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Ouida Strosin DO

Birthday: 1995-04-27

Address: Suite 927 930 Kilback Radial, Candidaville, TN 87795

Phone: +8561498978366

Job: Legacy Manufacturing Specialist

Hobby: Singing, Mountain biking, Water sports, Water sports, Taxidermy, Polo, Pet

Introduction: My name is Ouida Strosin DO, I am a precious, combative, spotless, modern, spotless, beautiful, precious person who loves writing and wants to share my knowledge and understanding with you.