facebook/php-business-sdk
Official Facebook Business SDK for PHP. Access Marketing API plus Pages, Business Manager, Instagram and more via one maintained library. Includes authentication/token usage and objects to create, read, update and manage business assets and ads.
In this release, we added Conversions API Parameter Builder integration. The server-side Event/ServerEvent can now auto-fill Conversions API parameters from the incoming HTTP request: call setRequestContext(request) (optionally with a Preference allowlist) and the SDK fills any empty fbc, fbp, event_source_url, and referrer_url fields at send time — plus client_ip_address and automatic PII normalization/hashing on PHP and NodeJS. Auto-fill is gated by Preference, never overwrites values you set, and is fully opt-in (no behavior change unless you call setRequestContext).
Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/25.0.1...25.0.2
In this release, Advantage+ Shopping Campaigns (ASC) and Advantage+ App Campaigns (AAC) can no longer be created or updated via the Marketing API starting v25.0, extending to all versions by May 19, 2026, as part of the Automation Unification toward the streamlined Advantage+ setup. The Ads Insights Async API now returns detailed error information on report failures, and several legacy metrics including Page Reach, Impressions, and 3-second Viewers are planned for deprecation in June 2026 in favor of the new Media Views and Media Viewers metrics. Webhooks mTLS certificates will transition to a new Meta-owned Certificate Authority starting March 31, 2026. For full details, see the official blog post Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/24.0.1...25.0.0
In this release, there are major changes like Dynamic Media will be enabled by default for Advantage+ Catalog ads via the Marketing API, requiring developers to explicitly opt out if desired. The daily budget flexibility is increased from 25% to 75%, allowing higher spend on days with better opportunities while maintaining weekly spend limits. A new feature allows up to 20% of an ad set’s daily budget to be shared with other ad sets in the same campaign for improved performance without campaign budget optimization. The Facebook video feeds ad placement is no longer available in Marketing API v24.0, and attempts to use it will result in errors. Third-party access to create Click to Messenger Lead Gen (CTMLG) ads through the Marketing API is discontinued, though Ads Manager creation remains available. Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/23.0.3...24.0.0
In this release, we introduced version one of ThirdPartyAccount library in Python and Node.js SDKs to simplify the usage of the 2Tier APIs. Additionally, updated parameter list for the original_event_data parameter. We are planning to extend these features to other languages soon. Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/22.0.3...23.0.0
Fix the OriginalEventData class to add the missing methods Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/22.0.2...22.0.3
Hey Everyone, We are releasing latest minor version of Meta Business SDK v22.0.1 Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/22.0.0...22.0.1
Hey Everyone, We are thrilled to announce the release of Meta Business SDK v22.0, which now supports Graph API v22.0 and Marketing API v22.0. This release will include bug fixes, dependency upgrades, new features, and most importantly, an updated API interface to match Graph API v22. Here are few highlighted changes Added support on POST /{ad-account-id}/video_ads, deprecation of few instagram endpoints Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/21.0.3...22.0.0
Hello again! Apologies for the delay in rolling out this minor version update. Your patience is to be rewarded! We're offering much more than you might expect from a typical minor version bump.
Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/19.0.0...19.0.1
Happy New Year! As of January 23, 2024, we are thrilled to announce the release of Meta Business SDK v19.0, which now supports [Graph API v19.0 and Marketing API v19.0]. Due to the code freeze in December, we bypassed the minor version increments for v18.0. However, during this period, our developers remained actively engaged in our community, submitting issues and pull requests. While we updated the [Changelog] to include all API interface changes, you can access comprehensive code modifications in our repositories.
Full Changelog: https://github.com/facebook/facebook-php-business-sdk/compare/18.0.4...19.0.0
Time flies. Today, (September 15, 2023) we’re announcing the release of Meta Business SDK v18.0 to support the [Graph API v18.0 and Marketing API v18.0]. It represents a major update which addresses numerous longstanding issues and expands support to additional features, nodes, and types. While you can find a comprehensive list of changes in our [Chagnelog], here are also following notable SDK-only updates that we believe are relevant to our developer community.
AdAssetFeedSpecAssetCustomizationRule and AdAssetMessageExtensions Support: Developer is able to Get a list of structuralized AdAssetFeedSpecAssetCustomizationRule and AdAssetMessageExtensions objects from AdAssetFeedSpec node.
AdsHistogramStats Support: Developer is able to Get a list of structuralized AdsHistogramStats objects from multiple video play related metrics.
BusinessImage, BusinessVideo, BusinessCreativeFolder Support: Developer is able to Post and Get these types of objects via Business node.
Four Instagram Nodes Support: InstagramCarousel, InstagramComment, InstagramMedia, and InstagramUser are now available for developers to work on, including all POST and GET APIs.
Multiple LeadGen Form Objects Support: Developer is able to work on multiple LeadGen Form related objects, including LeadGenContextCard, LeadGenCustomDisclaimer, LeadGenThankYouPage.
A full API spec change could be viewed here.
/ACCOUNT_ID/adsets and /AD_SET_ID. See Targeting Specs. If you use this placement you must also select feed as a position and for device_platforms select mobile since Instant Articles is for mobile only./nativeoffers as an endpoint. The endpoint /offers is associated with the old product and has been deprecated.offer_id in the promoted_object for an ad set.** Please Review These Changes
place_page_set_id field under Ad creative is now optional for versions v2.7 and v2.6
and has been deprecated in v2.8. See Ad Creative.offer_data under link_data for an ad object has been deprecated.AdAccountGroup have been deprecated. To manage Ad Accounts, you should use Business Manager or Business Manager API with business_management extended permission.AD_ACCOUNT/audiences has been deprecated.ad_object_by_url field for /search in Ad Targeting Search has been deprecated.actor_id, actor_image_hash, actor_image_url, and actor_name have been deprecated from ad creative GET./insights endpoint.
In earlier releases it supported the params: fields,summary, default_summary, filtering and sort. However/insights should always exactly return what you queried in the POST requests./insights if you provided an invalid field as a parameter. We now send an the error message which points to a list of valid fields./insights fields in a variety of types: some fields were string such as impressions, some were numericstring, and some were float. We now return all numeric fields, including float as numericstring. All floating point numbers will maintain six precision points.post_like in the actions field is now named post_reaction, see Ads Action Stats. This is more consistent with naming in user interfaces.The owner_business field has been deprecated and no longer exists for objects connected to a business, including Ad accounts, Ad Campaign, Product Catalog, and Instagram User.
This is a new major release, which diverges in behavior from the previous one. Please review these changes:
Cursor. In the past there were exceptions to this rule, e.g.: AdAccount::getReachEstimate used to return a ReachEstimate.placement, so that advertisers can more easily identify and select placement options that will serve them best. Instead of having platform as the only dimension, advertisers can select placements across different dimensions, such as device type including desktop or mobile, publisher such as facebook, instagram, or audience_network, and placements of each publisher. Only Facebook has multiple placements currently. The field page_types will still be included in read results, but cannot be used to create or update placements in v2.7. More details in Targeting Spec./insights endpoints, we’ll introduce two new breakdowns options: publisher_platform and platform_position. Along with the existing impression_device breakdown, you can get performance metrics with these placement dimensions. See Insights Breakdowns for more details.object_story_id will be null for an ad creative created with an object_story_spec. The effective_object_story_id will always be the object_story_id regardless of object_story_spec. More details in Ad Creative.This is a new major release, which diverges in behavior from the previous one. Please review these changes:
connectionobjects APImax_product_count for DPA creatives. In order to opt-out of Carousel format, specify force_single_link=true.product_ad_behavior field at the Ad Set level/insights objects the fields parameter no longer accepts breakdowns. Now you should specified this in 'breakdowns' parameter in query. This includes: age, country, gender, frequency_value,hourly_stats_aggregated_by_advertiser_time_zone, hourly_stats_aggregated_by_audience_time_zone, impression_device, place_page_id, placement, product_id, and regionAuthorizationException, it should only throw now for errors that have to do with Authorization. Some errors that previously were AuthorizationException may become RequestExceptionRequestException now has a single ResponseInterface param in constructorMisc + bugfixes
How can I help you explore Laravel packages today?