Facebook recently announced version 1.0 of its static recommendations API. The tool is meant to help advertisers avoid common mistakes when coding ads. In addition to the helping with basic ad targeting behaviors, the API also has best practices and other recommendations to ensure the best possible performance.
Facebook says the static recommendations API can return "soft errors" that offer descriptions of potentially faulty behaviors. For example, it will tell advertisers that are targeting too narrow a group, or bidding to low for an ad spot. The API supports recommendations for "campaign, ad set, and ad levels for GET and POST requests," says Facebook.
Advertisers looking for POST requests can take advantage of a new "include_recommendations" tool in the "execution_options" field in order to see Facebook's recommended behaviors for an ad object's configuration. Facebook says recommendations will appear in a separate section as long as a recommendation for that particular behavior exists in its Library. Facebook says it does not have an "execution_options" parameter for GET requests, so it simply added a new field just for recommendations.
What's really happening here?
Facebook is evaluating the ad object against the coded recommendations when in validate-only mode. It will then return recommendations and the API spec field associated with that particular recommendation. As long as they are requested, Facebook will send every found recommendation that correlates to the ad object.
This behavior is different from the current validation a in the API. Facebook has some end points to validate syntax, but requests don't always perform at the optimum level. The recommendations API can prevent advertisers from creating crummy, underperforming ads.
The recommendations API should help developers get the most bang for their buck when it comes to advertising on Facebook. It doesn't hurt Facebook, either, which also stands to make money in the process.
Documentation, complete with a list of potential recommendations, is available here.