Changelog entries are categorized in the following way:
New Features, Changes, and Deprecations only affect this version. 90-Day Breaking Changes affect all versions.
Breaking Changes are not included here since they are not tied to specific releases.
Released November 7, 2017 | Available until January 28, 2020 | Blog Post
POST /comment_id/comments?message=hello @[userid]. Pages can only @mention Users who have authored or commented on Posts./page/feed — The following link subfields are no longer deprecated for links owned by the posting page. To verify link ownership use the ownership_permissions{can_customize_link_posts} field on the url node. This action requires a valid Page access token. caption remains fully deprecated.
descriptionnamepicturethumbnail/event/videos — This edge has been removed.includeSubdomains HSTS directive on facebook.com. This forces web browsers to use HTTPS when making any requests to facebook.com or any of its subdomains. This should not adversely affect Graph API requests made by any of your apps./page — The following edges now require a Page access token for specific operations:
GET /page/agenciesGET /page/canvasesGET /page/instagram_accountsGET /page/leadgen_formsGET /page/page_backed_instagram_accountsGET /page/promotable_postsGET /page/userpermissionsPOST /page/agenciesPOST /page/page_backed_instagram_accountsPOST /page/userpermissionssender_name and sender_id have been replaced with a single from property in feed subscriptions. thread_key and thread_id fields are deprecated for GET operations on the /page/conversations edge and for the Webhooks Page topic's messages field.User Topic — The following fields have been deprecated. Use their _https equivalents instead.
picpic_bigpic_smallpic_squarepicturePOST operations for the /app/app_link_hosts edge will be deprecated and the web-based App Links tool will be removed. GET operations on existing App Links will continue working normally./group/videos — This edge now requires a User access token with user_managed_groups or user_groups permissions to return video information./page/nlp_configs edge./page/* — User information will not be included in GET responses for any objects owned by (on) a Page unless the request is made with a Page access token. This affects all nodes and edges that return data for objects owned by a Page.
/page/insights — This edge will require a Page access token of the page in question for all metrics.
/page/tabs — Creating custom tabs with POST operations will only be available to Pages with 2000 or more fans, or pages managed by apps that are on the allow list. Existing custom tabs will be unaffected./page/tagged — This edge will require a Page access token.Released November 7, 2017 | Available Until Aug 7, 2018 | Blog Post
We now have a new relationship which represents clients and agencies. In the past we also had no user; we handled all access and invitations to a business and it's assets through bid/userpermissions which caused performance issues. Highlights of the new API include:
To access users on business:
BUSINESS_ID/business_usersBUSINESS_ID/system_usersBUSINESS_ID/pending_usersTo access assets assigned to users:
BUSINESS_USER_ID/assigned_pagesBUSINESS_USER_ID/assigned_ad_accountsBUSINESS_USER_ID/assigned_product_catalogsSYSTEM_USER_ID/assigned_pagesSYSTEM_USER_ID/assigned_ad_accountsSYSTEM_USER_ID/assigned_product_catalogsPENDING_USER_ID/assigned_pagesPENDING_USER_ID/assigned_ad_accountsPENDING_USER_ID/assigned_product_catalogsTo access business pages:
BUSINESS_ID/owned_pages - To get a list of Pages the business ownsBUSINESS_ID/client_pages - To get a list of Pages of the clients of the businessBUSINESS_ID/pending_owned_pages - To get a list of Pages the business owns that are pending approval BUSINESS_ID/pending_client_pages - To get a list of Pages belonging to clients of a business that are pending approvalTo access business ad accounts:
BUSINESS_ID/owned_ad_accounts - To get a list of ad accounts the business ownsBUSINESS_ID/client_ad_accounts - To get a list of ad accounts of the clients of the businessBUSINESS_ID/pending_owned_ad_accounts - To get a list of ad accounts the business owns that are pending approval BUSINESS_ID/pending_client_ad_accounts - To get a list of ad accounts of the clients of the business that are pending approvalTo access business product catalogs
BUSINESS_ID/owned_product_catalogs - To get a list of product catalogs the business ownsBUSINESS_ID/client_product_catalogs - To get a list of product catalogs belonging to clients of the businessTo access business apps:
BUSINESS_ID/owned_apps - To get a list of apps the business ownsBUSINESS_ID/client_apps - To get a list of apps of the clients of the businessBUSINESS_ID/pending_client_apps - To get a list of apps belonging to clients of a business that are pending approvalFor more information, see Business Manager, API, Business Manager, System User, Business Asset Management API, and Business Manager API, Best Practices.
You can now create a carousel ad with an attachment that shows a real-time location. Added the options type=REALTIME and location_source_id = PAGE_ID in place_data for AD_CREATIVE_ID/object_story_spec. This is available at object_story_spec field in:
POST /AD_ACCOUNT_ID/adcreativesGET CREATIVE_IDYou can now target geographic areas beyond a radius around a store location. We added geo_locations parameter in the targeting_specs field when you create an ad set with store visits as your objective. Under limited availability, see your Facebook Representative to access. See Store Visits Objective
POST AD_ACCOUNT_ID/adsets has the new option.country_groups and targeting the travel_in location type.STORE_VISITS objective available on a limited basis, see Store VisitsThis reflects the type of destination an ad links to; in other words, where someone goes when they click on an ad or call-to-action in an ad. This provides a consistent destination type for all ads in an ad set, so that ads only contain different types of ad creative. See Ad Set, Destination Type.
destination_type for ad sets/ADSET_IDAdded the new field kpi_type to AD_ACCOUNT_ID/CAMPAIGN_ID which describes the type of key performance indicator you want to track for the campaign or ad objects in the campaign. For see insights data by kpi_type in kpi_results make these calls:
GET CAMPAIGN_ID/insightsGET ADSET_ID/insightsGET AD_ID/insightsFor more information, see Ad Campaign, Reference.
Invalidate ads targeting right_hand_column - Ads targeting this position with invalid creatives for right_hand_column on AD_ACCOUNT_ID/adsets returns an error. We do not allow right_hand_column-only placement with video, collection, or canvas ads format. For right_hand_column-only placement, you can only use single-image and carousel formats.
Changed GET VERSION/RF_PREDICTION_ID/pause_periods - To return Array now, not String to enable easier handling.
Renamed fields — The admin_system_user field has been renamed to admin, and the system_user field has been renamed to employee. This affects the following edges:
/{business-id}/userpermissions/{business-id}/system_usersDeprecated optimizations for VIDEO_VIEWS - Campaigns with the VIDEO_VIEWS objective can no longer use CLICKS, IMPRESSIONS, PAGE_ENGAGEMENT, POST_ENGAGEMENT, or REACH as optimization goals:
REACH optimization goal, automatically converts to the VIDEO_VIEWS optimization goal.CLICKS, IMPRESSIONS, PAGE_ENGAGEMENT, or POST_ENGAGEMENT as the optimization goal returns an error. This is because creating or duplicating an ad in an existing ad set tries to reuse any of these optimization goals.Edges impacted by this change:
POST ACCOUNT_ID/adsetsPOST AD_ACCOUNT_ID/adsPOST CAMPAIGN_ID/copiesPOST ADSET_ID/copiesPOST AD_ID/copiesDeprecated reach - As a optimization_goal for the brand awareness objective. Removed for or /adset; it is available for ad recall optimization only. This avoids confusion for anyone using reach as a dedicated objective.
Deprecated the optimization BRAND_AWARENESS - Replaced by AD_RECALL_LIFT. This reflects a new, more efficient, ads delivery model. The new optimization goal supports mixed creative, such as static and video ads in the same ad set and manual bidding. BRAND_AWARENESS is no longer available at:
POST /ADSET_IDGET /ADSET_IDPOST /AD_ACCOUNT_ID/adsetsDeprecated frequency_cap - Including lifetime_frequency_cap and frequency_cap_reset_period fields on:
POST AD_ACCOUNT_ID/adsetsGET /ADSET_IDPOST /ADSET_IDUse frequency_control_specs instead.
Deprecated cost-per-action POST_ENGAGEMENT - You can no longer use POST_ENGAGEMENT as a billing_event for this objective. This better aligns ads delivery and measurement. This impacts the endpoint: /AD_SET_ID.
Deprecated video_15_sec_watched_actions on:
GET AD_ACCOUNT_ID/insightsGET CAMPAIGN_ID/insightsGET ADSET_ID/insightsGET AD_ID/insightsPOST AD_ACCOUNT_ID/insightsPOST CAMPAIGN_ID/insightsPOST ADSET_ID/insightsPOST AD_ID/insightsDeprecated recurrence_value - From Advanced Measurement API. The field was also known under Atlas API as report schedule. We replaced it with recurrence_values. See Advanced Measurement, Report Schedules.
Deprecated endpoints for the redesign of Business Manager API:
BUSINESS_ID/userpermissionsBUSINESS_ID/business_personabusiness_persona_idDeprecated endpoints for managing your assets:
BUSINESS_ID/pagesBUSINESS_ID/adaccountsBUSINESS_ID/product_catalogsBUSINESS_ID/appsTo access assets, use BUSINESS_ID/owned_ASSET or BUSINESS_ID/client_ASSET
Deprecated endpoints for managing assets belonging to another business:
BUSINESS_ID/assigned_ad_accountsBUSINESS_ID/assigned_pagesBUSINESS_ID/assigned_product_catalogsInstead, use BUSINESS_USER_ID/assigned_ASSET
These deprecations affect all API versions and will take effect on November 14, 2017.
Deprecated creating and editing Event Ads or Link Ads that are not connected to a valid page. The following format is no longer valid and returns an error.
Signatures that are being deprecated:
EVENT_RESPONSESbody, object_idLINK_CLICKStitle, body, object_url (image_file or image_hash)Supported signatures
EVENT_RESPONSESobject_story_id or object_story_specLINK_CLICKSobject_story_id or object_story_specExisting Event and Link Ads that you created earlier continue to run, but you can't modify the ad's creative or create new ads once this change goes in effect otherwise you receive errors. See Event and Local Ads and Ad, Reference.