Marketing API Rate Limiting

Marketing API has it is own rate limiting logic and is excluded from all the graph api rate limitations. So if you make an Marketing API call, it won't be calculated into the Graph API throttling. For more information about rate limiting in Graph API, see Rate Limiting on the Graph API.

API Level Rate Limiting

  • Rate limiting is at the ad account level.
  • Rate limitation happens real time on sliding window.
  • Each Marketing API call is assigned a score. There is a max score of n.
  • Updates are 10~100 more expensive than creates.
  • When the max score is reached, the throttling error is thrown.
  • Error, Code: 17, Message: User request limit reached

Recommendations:

  • Verify the error code (17) and api end point to confirm the throttling type.
  • The call will be blocked for a minute.
  • During this time the max score will decay at x points per second. (x = n / 300)
  • Switch to the other ad accounts and come back to this account later.
  • It is better to create a new ad than to change the existing ones.

Ad Account Level Rate Limiting

  • Number of changes to the ad account spend_cap, spend_cap_action fields are limited.
  • Error, Code: 17, Message: User request limit reached.
  • Verify the error code (17) and api end point to confirm the throttling type.
  • When this error is encountered, scale back the changes to the ad account.

Ad Set Level Rate Limiting

  • Number of changes to the ad set daily_budget, lifetime_budget fields are limited. For each ad set, the budget is only allowed to change 4 times per hour, if exceeds the limit, the budget change for that ad set will be blocked for an hour.
  • Error, Code: 17, Message: User request limit reached.
  • Verify the error code (17) and api end point to confirm the throttling type.
  • When this error is encountered, scale back the changes to the ad set.

Ad Level Rate Limiting

  • Number of ad creation is limited for a given ad account based on the daily spend limit.
  • Error, Code: 1487225, Message: User request limit reached.
  • Verify the error code (1487225) and api end point to confirm the throttling type.
  • When this error is encountered, scale back the changes.
  • You can also increase the daily spend limit.

Troubleshooting

API Errors

  • Retrieve the app id.
  • Check the api calls that are generating errors by going to this dashboard.
  • https://www.facebook.com/analytics/<YOUR_APP_ID>?section=apis
  • Fix the errors based on the given error code.
  • Most of the time reducing the error generating api calls reduces the rate in which calls are being made.

Throttling Errors

  • Look at the API throttling data from the above dashboard.
  • Look at the calls that are consuming most of the CPU and making most amount of calls.
  • Understand if there is a need for this and reduce these calls if unnecessary.