diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..0a45f9bd5 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,3 @@ +# Code of Conduct + +Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..6935e7f9b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing to Facebook Ads API SDK for PHP +We want to make contributing to this project as easy and transparent as +possible. + +## Code of Conduct +The code of conduct is described in [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) + +## Our Development Process +The Facebook Ads API SDK for PHP is currently developed in Facebook's internal +repositories and then exported out to GitHub by a Facebook team member. We invite +you to submit pull requests directly to GitHub and, after review, these can be +merged into the project. + +## Pull Requests +We actively welcome your pull requests. + +1. Fork the repo and create your branch from `master`. +2. If you've added code that should be tested, add tests. +3. If you've changed APIs, update the documentation. +4. Ensure the test suite passes. +5. Make sure your code lints. +6. If you haven't already, complete the Contributor License Agreement ("CLA"). + +## Contributor License Agreement ("CLA") +In order to accept your pull request, we need you to submit a CLA. You only need +to do this once to work on any of Facebook's open source projects. + +Complete your CLA [here](https://code.facebook.com/cla) + +## Issues +Since we want to handle bugs more efficiently, we encourage you report bug to +our dedicated bug reporting channel. If you encounter a bug with Business SDK +(PHP), please report the issue at +[our developer bug reporting channel](https://developers.facebook.com/support/bugs/). + +Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe +disclosure of security bugs. In those cases, please go through the process +outlined on that page + +## Coding Style +Please follow [PHP Coding Standards](https://secure.phabricator.com/book/phabcontrib/article/php_coding_standards/) + +## License +By contributing to Facebook Ads API SDK for PHP, you agree that your contributions +will be licensed under the LICENSE file in the root directory of this source tree. diff --git a/examples/AdAccountCustomAudiencesPostDynamicEventValueBasedLookalikeCustomAudience.php b/examples/AdAccountCustomAudiencesPostDynamicEventValueBasedLookalikeCustomAudience.php index e13436267..b1d964281 100644 --- a/examples/AdAccountCustomAudiencesPostDynamicEventValueBasedLookalikeCustomAudience.php +++ b/examples/AdAccountCustomAudiencesPostDynamicEventValueBasedLookalikeCustomAudience.php @@ -39,7 +39,7 @@ $fields = array( ); $params = array( - 'name' => 'Dynamic Event Value-Based lookalike', + 'name' => 'Test Value-Based lookalike from Pixel', 'subtype' => 'LOOKALIKE', 'lookalike_spec' => array('origin_event_sources' => array(array('id' => '','event_names' => array('AddToCart'))),'type' => 'custom_ratio','ratio' => 0.01,'country' => 'US'), ); diff --git a/examples/AdAccountCustomAudiencesPostDynamicValueBasedLookalikeCustomAudience.php b/examples/AdAccountCustomAudiencesPostDynamicValueBasedLookalikeCustomAudience.php index 4671b44b1..8676ef655 100644 --- a/examples/AdAccountCustomAudiencesPostDynamicValueBasedLookalikeCustomAudience.php +++ b/examples/AdAccountCustomAudiencesPostDynamicValueBasedLookalikeCustomAudience.php @@ -39,7 +39,7 @@ $fields = array( ); $params = array( - 'name' => 'Dynamic Value-Based lookalike', + 'name' => 'Test Value-Based lookalike from Pixel', 'subtype' => 'LOOKALIKE', 'lookalike_spec' => array('origin_event_sources' => array(array('id' => '')),'type' => 'custom_ratio','ratio' => 0.01,'country' => 'US'), ); diff --git a/examples/AdCreativeNodeRead.php b/examples/AdCreativeNodeRead.php new file mode 100644 index 000000000..18dafc0a4 --- /dev/null +++ b/examples/AdCreativeNodeRead.php @@ -0,0 +1,47 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( + 'name', + 'object_story_id', +); +$params = array( +); +echo json_encode((new AdCreative($id))->getSelf( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/AdCreativeNodeReadDisplayUrlOveride.php b/examples/AdCreativeNodeReadDisplayUrlOveride.php new file mode 100644 index 000000000..240d7008d --- /dev/null +++ b/examples/AdCreativeNodeReadDisplayUrlOveride.php @@ -0,0 +1,46 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( + 'link_destination_display_url', +); +$params = array( +); +echo json_encode((new AdCreative($id))->getSelf( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/AdCreativePreviewsEdge.php b/examples/AdCreativePreviewsEdge.php new file mode 100644 index 000000000..86e1b1d7a --- /dev/null +++ b/examples/AdCreativePreviewsEdge.php @@ -0,0 +1,48 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( +); +$params = array( + 'ad_format' => 'DESKTOP_FEED_STANDARD', + 'product_item_ids' => array(''), +); +echo json_encode((new AdCreative($id))->getPreviews( + $fields, + $params +)->getResponse()->getContent(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/BusinessOwnedProductCatalogsPostDestinationCatalog.php b/examples/BusinessOwnedProductCatalogsPostDestinationCatalog.php new file mode 100644 index 000000000..57d2224a1 --- /dev/null +++ b/examples/BusinessOwnedProductCatalogsPostDestinationCatalog.php @@ -0,0 +1,48 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( +); +$params = array( + 'name' => 'Test Destination Catalog', + 'vertical' => 'destinations', +); +echo json_encode((new Business($id))->createOwnedProductCatalog( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/BusinessOwnedProductCatalogsPostFlightCatalog.php b/examples/BusinessOwnedProductCatalogsPostFlightCatalog.php new file mode 100644 index 000000000..ede844191 --- /dev/null +++ b/examples/BusinessOwnedProductCatalogsPostFlightCatalog.php @@ -0,0 +1,48 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( +); +$params = array( + 'name' => 'Test Flight Catalog', + 'vertical' => 'flights', +); +echo json_encode((new Business($id))->createOwnedProductCatalog( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/BusinessOwnedProductCatalogsPostHotelCatalog.php b/examples/BusinessOwnedProductCatalogsPostHotelCatalog.php new file mode 100644 index 000000000..6fb21a349 --- /dev/null +++ b/examples/BusinessOwnedProductCatalogsPostHotelCatalog.php @@ -0,0 +1,48 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( +); +$params = array( + 'name' => 'Test Hotel Catalog', + 'vertical' => 'hotels', +); +echo json_encode((new Business($id))->createOwnedProductCatalog( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/examples/BusinessOwnedProductCatalogsPostProductCatalog.php b/examples/BusinessOwnedProductCatalogsPostProductCatalog.php new file mode 100644 index 000000000..ab6a888dd --- /dev/null +++ b/examples/BusinessOwnedProductCatalogsPostProductCatalog.php @@ -0,0 +1,47 @@ +'; +$app_secret = ''; +$app_id = ''; +$id = ''; + +$api = Api::init($app_id, $app_secret, $access_token); +$api->setLogger(new CurlLogger()); + +$fields = array( +); +$params = array( + 'name' => 'Test Catalog', +); +echo json_encode((new Business($id))->createOwnedProductCatalog( + $fields, + $params +)->exportAllData(), JSON_PRETTY_PRINT); \ No newline at end of file diff --git a/src/FacebookAds/ApiConfig.php b/src/FacebookAds/ApiConfig.php index aff273bb5..31dee7fe6 100644 --- a/src/FacebookAds/ApiConfig.php +++ b/src/FacebookAds/ApiConfig.php @@ -24,6 +24,6 @@ namespace FacebookAds; class ApiConfig { const APIVersion = '3.1'; - const SDKVersion = '3.1.7'; + const SDKVersion = '3.1.8'; const TYPE_CHECKER_STRICT_MODE = false; } diff --git a/src/FacebookAds/ApiRequest.php b/src/FacebookAds/ApiRequest.php index f7dac5421..02eeec3b0 100644 --- a/src/FacebookAds/ApiRequest.php +++ b/src/FacebookAds/ApiRequest.php @@ -150,7 +150,7 @@ public function removeField($field) { public function clearFields() { $this->fields = []; - return this; + return $this; } public function getFields() { diff --git a/src/FacebookAds/Object/Ad.php b/src/FacebookAds/Object/Ad.php index 4275d3c84..e2e4dc43b 100644 --- a/src/FacebookAds/Object/Ad.php +++ b/src/FacebookAds/Object/Ad.php @@ -121,9 +121,7 @@ public function deleteAdLabels(array $fields = array(), array $params = array(), 'execution_options' => 'list', ); $enums = array( - 'execution_options_enum' => array( - 'validate_only', - ), + 'execution_options_enum' => AdExecutionOptionsValues::getInstance()->getValues(), ); $request = new ApiRequest( @@ -149,9 +147,7 @@ public function createAdLabel(array $fields = array(), array $params = array(), 'execution_options' => 'list', ); $enums = array( - 'execution_options_enum' => array( - 'validate_only', - ), + 'execution_options_enum' => AdExecutionOptionsValues::getInstance()->getValues(), ); $request = new ApiRequest( diff --git a/src/FacebookAds/Object/AdAccount.php b/src/FacebookAds/Object/AdAccount.php index dc0302ce5..6eb3c7bf2 100644 --- a/src/FacebookAds/Object/AdAccount.php +++ b/src/FacebookAds/Object/AdAccount.php @@ -2826,6 +2826,29 @@ public function getMatchedSearchApplications(array $fields = array(), array $par return $pending ? $request : $request->execute(); } + public function getMaxBid(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/max_bid', + new AdAccountMaxBid(), + 'EDGE', + AdAccountMaxBid::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + public function getMinimumBudgets(array $fields = array(), array $params = array(), $pending = false) { $this->assureId(); diff --git a/src/FacebookAds/Object/AdAccountMaxBid.php b/src/FacebookAds/Object/AdAccountMaxBid.php new file mode 100644 index 000000000..0e188659f --- /dev/null +++ b/src/FacebookAds/Object/AdAccountMaxBid.php @@ -0,0 +1,80 @@ +assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/', + new AdAccountMaxBid(), + 'NODE', + AdAccountMaxBid::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + +} diff --git a/src/FacebookAds/Object/AdVideo.php b/src/FacebookAds/Object/AdVideo.php index ee5635ad8..584db0920 100644 --- a/src/FacebookAds/Object/AdVideo.php +++ b/src/FacebookAds/Object/AdVideo.php @@ -1,6 +1,6 @@ getValues(); + $ref_enums['ContentCategory'] = AdVideoContentCategoryValues::getInstance()->getValues(); + $ref_enums['Formatting'] = AdVideoFormattingValues::getInstance()->getValues(); + $ref_enums['OriginalProjectionType'] = AdVideoOriginalProjectionTypeValues::getInstance()->getValues(); + $ref_enums['SwapMode'] = AdVideoSwapModeValues::getInstance()->getValues(); + $ref_enums['UnpublishedContentType'] = AdVideoUnpublishedContentTypeValues::getInstance()->getValues(); + $ref_enums['UploadPhase'] = AdVideoUploadPhaseValues::getInstance()->getValues(); + $ref_enums['Type'] = AdVideoTypeValues::getInstance()->getValues(); + $ref_enums['BackdatedTimeGranularity'] = AdVideoBackdatedTimeGranularityValues::getInstance()->getValues(); + return $ref_enums; + } + + + public function getAutoGeneratedCaptions(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/auto_generated_captions', + new AbstractCrudObject(), + 'EDGE', + array(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createAutoTrim(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'target_id' => 'unsigned int', + 'auto_trim_type' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/auto_trims', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createBlockedUser(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'uid' => 'Object', + 'remove_block' => 'bool', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/blocked_users', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function deleteCaptions(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'locale' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_DELETE, + '/captions', + new AbstractCrudObject(), + 'EDGE', + array(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getCaptions(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/captions', + new AbstractCrudObject(), + 'EDGE', + array(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createCaption(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'default_locale' => 'string', + 'captions_file' => 'file', + 'locales_to_delete' => 'list', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/captions', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getComments(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'filter' => 'filter_enum', + 'order' => 'order_enum', + 'live_filter' => 'live_filter_enum', + 'since' => 'datetime', + ); + $enums = array( + 'filter_enum' => CommentFilterValues::getInstance()->getValues(), + 'order_enum' => CommentOrderValues::getInstance()->getValues(), + 'live_filter_enum' => CommentLiveFilterValues::getInstance()->getValues(), + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/comments', + new Comment(), + 'EDGE', + Comment::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createComment(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'object_id' => 'string', + 'parent_comment_id' => 'Object', + 'nectar_module' => 'string', + 'attachment_id' => 'string', + 'attachment_url' => 'string', + 'attachment_share_url' => 'string', + 'feedback_source' => 'string', + 'facepile_mentioned_ids' => 'list', + 'is_offline' => 'bool', + 'comment_privacy_value' => 'comment_privacy_value_enum', + 'message' => 'string', + 'text' => 'string', + 'tracking' => 'string', + ); + $enums = array( + 'comment_privacy_value_enum' => CommentCommentPrivacyValueValues::getInstance()->getValues(), + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/comments', + new Comment(), + 'EDGE', + Comment::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getCrosspostShareDPages(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/crosspost_shared_pages', + new Page(), + 'EDGE', + Page::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function deleteLikes(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'tracking' => 'string', + 'nectar_module' => 'string', + 'notify' => 'bool', + 'feedback_source' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_DELETE, + '/likes', + new AbstractCrudObject(), + 'EDGE', + array(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getLikes(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/likes', + new Profile(), + 'EDGE', + Profile::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createLike(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'tracking' => 'string', + 'nectar_module' => 'string', + 'notify' => 'bool', + 'feedback_source' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/likes', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getPolls(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/polls', + new VideoPoll(), + 'EDGE', + VideoPoll::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createPoll(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'question' => 'string', + 'options' => 'list', + 'correct_option' => 'unsigned int', + 'default_open' => 'bool', + 'show_results' => 'bool', + 'show_gradient' => 'bool', + 'close_after_voting' => 'bool', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/polls', + new VideoPoll(), + 'EDGE', + VideoPoll::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getReactions(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'type' => 'type_enum', + ); + $enums = array( + 'type_enum' => ProfileTypeValues::getInstance()->getValues(), + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/reactions', + new Profile(), + 'EDGE', + Profile::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getShareDPosts(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/sharedposts', + new Post(), + 'EDGE', + Post::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getSponsorTags(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/sponsor_tags', + new Page(), + 'EDGE', + Page::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createSummarization(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'target_id' => 'unsigned int', + 'summarization_type' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/summarizations', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getTags(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/tags', + new TaggableSubject(), + 'EDGE', + TaggableSubject::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createTag(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'uid' => 'int', + 'vid' => 'string', + 'tag_uid' => 'int', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/tags', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getThumbnails(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/thumbnails', + new VideoThumbnail(), + 'EDGE', + VideoThumbnail::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function createThumbnail(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'source' => 'file', + 'is_preferred' => 'bool', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/thumbnails', + new AdVideo(), + 'EDGE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getVideoInsights(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'metric' => 'list', + 'period' => 'period_enum', + 'since' => 'Object', + 'until' => 'Object', + ); + $enums = array( + 'period_enum' => InsightsResultPeriodValues::getInstance()->getValues(), + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/video_insights', + new InsightsResult(), + 'EDGE', + InsightsResult::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function deleteSelf(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_DELETE, + '/', + new AbstractCrudObject(), + 'NODE', + array(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function getSelf(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_GET, + '/', + new AdVideo(), + 'NODE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + public function updateSelf(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'privacy' => 'Object', + 'published' => 'bool', + 'target' => 'string', + 'scheduled_publish_time' => 'unsigned int', + 'name' => 'string', + 'description' => 'string', + 'tags' => 'list', + 'place' => 'Object', + 'preferred_thumbnail_id' => 'string', + 'ad_breaks' => 'Object', + 'backdated_time' => 'datetime', + 'backdated_time_granularity' => 'backdated_time_granularity_enum', + 'call_to_action' => 'Object', + 'custom_labels' => 'list', + 'expiration' => 'Object', + 'expire_now' => 'bool', + 'embeddable' => 'bool', + 'allow_bm_crossposting' => 'bool', + 'allow_crossposting_for_pages' => 'list', + 'social_actions' => 'bool', + 'content_category' => 'content_category_enum', + 'publish_to_videos_tab' => 'bool', + 'publish_to_news_feed' => 'bool', + 'universal_video_id' => 'string', + 'content_tags' => 'list', + 'sponsor_id' => 'string', + 'direct_share_status' => 'unsigned int', + 'sponsor_relationship' => 'unsigned int', + 'increment_play_count' => 'bool', + ); + $enums = array( + 'backdated_time_granularity_enum' => AdVideoBackdatedTimeGranularityValues::getInstance()->getValues(), + 'content_category_enum' => AdVideoContentCategoryValues::getInstance()->getValues(), + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/', + new AdVideo(), + 'NODE', + AdVideo::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + + use FieldValidation; + public function create(array $params = array()) { $data = $this->exportData(); $source = null; @@ -86,5 +815,4 @@ public function getVideoThumbnails( return $this->getManyByConnection( VideoThumbnail::className(), $fields, $params, 'thumbnails'); } - } diff --git a/src/FacebookAds/Object/Fields/AdAccountMaxBidFields.php b/src/FacebookAds/Object/Fields/AdAccountMaxBidFields.php new file mode 100644 index 000000000..b4ba38981 --- /dev/null +++ b/src/FacebookAds/Object/Fields/AdAccountMaxBidFields.php @@ -0,0 +1,49 @@ + 'int', + 'id' => 'string', + ); + } +} diff --git a/src/FacebookAds/Object/Fields/AdCreativeLinkDataFields.php b/src/FacebookAds/Object/Fields/AdCreativeLinkDataFields.php index 1ade6f4a1..12462764f 100644 --- a/src/FacebookAds/Object/Fields/AdCreativeLinkDataFields.php +++ b/src/FacebookAds/Object/Fields/AdCreativeLinkDataFields.php @@ -55,6 +55,7 @@ class AdCreativeLinkDataFields extends AbstractEnum { const FORMAT_OPTION = 'format_option'; const IMAGE_CROPS = 'image_crops'; const IMAGE_HASH = 'image_hash'; + const IMAGE_LAYER_SPECS = 'image_layer_specs'; const IMAGE_OVERLAY_SPEC = 'image_overlay_spec'; const LINK = 'link'; const MESSAGE = 'message'; @@ -92,6 +93,7 @@ public function getFieldTypes() { 'format_option' => 'FormatOption', 'image_crops' => 'AdsImageCrops', 'image_hash' => 'string', + 'image_layer_specs' => 'list', 'image_overlay_spec' => 'AdCreativeLinkDataImageOverlaySpec', 'link' => 'string', 'message' => 'string', diff --git a/src/FacebookAds/Object/Fields/AdVideoFields.php b/src/FacebookAds/Object/Fields/AdVideoFields.php index 7c4671ee5..3f38eff4a 100644 --- a/src/FacebookAds/Object/Fields/AdVideoFields.php +++ b/src/FacebookAds/Object/Fields/AdVideoFields.php @@ -35,6 +35,7 @@ class AdVideoFields extends AbstractEnum { const DESCRIPTION = 'description'; const EMBED_HTML = 'embed_html'; const EMBEDDABLE = 'embeddable'; + const FILE_URL = 'file_url'; const FORMAT = 'format'; const FROM = 'from'; const ICON = 'icon'; diff --git a/src/FacebookAds/Object/Fields/AdsInsightsFields.php b/src/FacebookAds/Object/Fields/AdsInsightsFields.php index 84c5b3468..06e4f0666 100644 --- a/src/FacebookAds/Object/Fields/AdsInsightsFields.php +++ b/src/FacebookAds/Object/Fields/AdsInsightsFields.php @@ -63,6 +63,7 @@ class AdsInsightsFields extends AbstractEnum { const CANVAS_COMPONENT_AVG_PCT_VIEW = 'canvas_component_avg_pct_view'; const CLICKS = 'clicks'; const COST_PER_10_SEC_VIDEO_VIEW = 'cost_per_10_sec_video_view'; + const COST_PER_15_SEC_VIDEO_VIEW = 'cost_per_15_sec_video_view'; const COST_PER_2_SEC_CONTINUOUS_VIDEO_VIEW = 'cost_per_2_sec_continuous_video_view'; const COST_PER_ACTION_TYPE = 'cost_per_action_type'; const COST_PER_AD_CLICK = 'cost_per_ad_click'; @@ -72,6 +73,7 @@ class AdsInsightsFields extends AbstractEnum { const COST_PER_INLINE_POST_ENGAGEMENT = 'cost_per_inline_post_engagement'; const COST_PER_ONE_THOUSAND_AD_IMPRESSION = 'cost_per_one_thousand_ad_impression'; const COST_PER_OUTBOUND_CLICK = 'cost_per_outbound_click'; + const COST_PER_THRUPLAY = 'cost_per_thruplay'; const COST_PER_UNIQUE_ACTION_TYPE = 'cost_per_unique_action_type'; const COST_PER_UNIQUE_CLICK = 'cost_per_unique_click'; const COST_PER_UNIQUE_INLINE_LINK_CLICK = 'cost_per_unique_inline_link_click'; @@ -111,6 +113,7 @@ class AdsInsightsFields extends AbstractEnum { const LABELS = 'labels'; const LINK_URL_ASSET = 'link_url_asset'; const LOCATION = 'location'; + const MEDIA_ASSET = 'media_asset'; const MOBILE_APP_PURCHASE_ROAS = 'mobile_app_purchase_roas'; const OBJECTIVE = 'objective'; const OUTBOUND_CLICKS = 'outbound_clicks'; @@ -140,8 +143,10 @@ class AdsInsightsFields extends AbstractEnum { const UNIQUE_OUTBOUND_CLICKS_CTR = 'unique_outbound_clicks_ctr'; const UNIQUE_VIDEO_CONTINUOUS_2_SEC_WATCHED_ACTIONS = 'unique_video_continuous_2_sec_watched_actions'; const UNIQUE_VIDEO_VIEW_10_SEC = 'unique_video_view_10_sec'; + const UNIQUE_VIDEO_VIEW_15_SEC = 'unique_video_view_15_sec'; const UPDATED_TIME = 'updated_time'; const VIDEO_10_SEC_WATCHED_ACTIONS = 'video_10_sec_watched_actions'; + const VIDEO_15_SEC_WATCHED_ACTIONS = 'video_15_sec_watched_actions'; const VIDEO_30_SEC_WATCHED_ACTIONS = 'video_30_sec_watched_actions'; const VIDEO_ASSET = 'video_asset'; const VIDEO_AVG_PERCENT_WATCHED_ACTIONS = 'video_avg_percent_watched_actions'; @@ -156,6 +161,7 @@ class AdsInsightsFields extends AbstractEnum { const VIDEO_PLAY_RETENTION_0_TO_15S_ACTIONS = 'video_play_retention_0_to_15s_actions'; const VIDEO_PLAY_RETENTION_20_TO_60S_ACTIONS = 'video_play_retention_20_to_60s_actions'; const VIDEO_PLAY_RETENTION_GRAPH_ACTIONS = 'video_play_retention_graph_actions'; + const VIDEO_THRUPLAY_WATCHED_ACTIONS = 'video_thruplay_watched_actions'; const VIDEO_TIME_WATCHED_ACTIONS = 'video_time_watched_actions'; const WEBSITE_CTR = 'website_ctr'; const WEBSITE_PURCHASE_ROAS = 'website_purchase_roas'; @@ -189,6 +195,7 @@ public function getFieldTypes() { 'canvas_component_avg_pct_view' => 'list', 'clicks' => 'string', 'cost_per_10_sec_video_view' => 'list', + 'cost_per_15_sec_video_view' => 'list', 'cost_per_2_sec_continuous_video_view' => 'list', 'cost_per_action_type' => 'list', 'cost_per_ad_click' => 'list', @@ -198,6 +205,7 @@ public function getFieldTypes() { 'cost_per_inline_post_engagement' => 'string', 'cost_per_one_thousand_ad_impression' => 'list', 'cost_per_outbound_click' => 'list', + 'cost_per_thruplay' => 'list', 'cost_per_unique_action_type' => 'list', 'cost_per_unique_click' => 'string', 'cost_per_unique_inline_link_click' => 'string', @@ -237,6 +245,7 @@ public function getFieldTypes() { 'labels' => 'string', 'link_url_asset' => 'Object', 'location' => 'string', + 'media_asset' => 'Object', 'mobile_app_purchase_roas' => 'list', 'objective' => 'string', 'outbound_clicks' => 'list', @@ -266,8 +275,10 @@ public function getFieldTypes() { 'unique_outbound_clicks_ctr' => 'list', 'unique_video_continuous_2_sec_watched_actions' => 'list', 'unique_video_view_10_sec' => 'list', + 'unique_video_view_15_sec' => 'list', 'updated_time' => 'string', 'video_10_sec_watched_actions' => 'list', + 'video_15_sec_watched_actions' => 'list', 'video_30_sec_watched_actions' => 'list', 'video_asset' => 'Object', 'video_avg_percent_watched_actions' => 'list', @@ -282,6 +293,7 @@ public function getFieldTypes() { 'video_play_retention_0_to_15s_actions' => 'list', 'video_play_retention_20_to_60s_actions' => 'list', 'video_play_retention_graph_actions' => 'list', + 'video_thruplay_watched_actions' => 'list', 'video_time_watched_actions' => 'list', 'website_ctr' => 'list', 'website_purchase_roas' => 'list', diff --git a/src/FacebookAds/Object/Fields/AdsPixelRealTimeEventLogResultFields.php b/src/FacebookAds/Object/Fields/AdsPixelRealTimeEventLogResultFields.php index 386d8bed6..14c440110 100644 --- a/src/FacebookAds/Object/Fields/AdsPixelRealTimeEventLogResultFields.php +++ b/src/FacebookAds/Object/Fields/AdsPixelRealTimeEventLogResultFields.php @@ -41,7 +41,8 @@ class AdsPixelRealTimeEventLogResultFields extends AbstractEnum { const DEVICE_TYPE = 'device_type'; const EVENT = 'event'; const EVENT_DETECTION_METHOD = 'event_detection_method'; - const RULE_CONDITIONS = 'rule_conditions'; + const MATCHED_RULE_CONDITIONS = 'matched_rule_conditions'; + const SOURCE_RULE_CONDITION = 'source_rule_condition'; const TIMESTAMP = 'timestamp'; const URL = 'url'; const ID = 'id'; @@ -52,7 +53,8 @@ public function getFieldTypes() { 'device_type' => 'string', 'event' => 'string', 'event_detection_method' => 'string', - 'rule_conditions' => 'string', + 'matched_rule_conditions' => 'string', + 'source_rule_condition' => 'string', 'timestamp' => 'string', 'url' => 'string', 'id' => 'string', diff --git a/src/FacebookAds/Object/Fields/DirectDealFields.php b/src/FacebookAds/Object/Fields/DirectDealFields.php index 2187441a0..4e6125ad8 100644 --- a/src/FacebookAds/Object/Fields/DirectDealFields.php +++ b/src/FacebookAds/Object/Fields/DirectDealFields.php @@ -59,6 +59,7 @@ class DirectDealFields extends AbstractEnum { const START_TIME = 'start_time'; const STATUS = 'status'; const TARGETING = 'targeting'; + const THIRD_PARTY_INTEGRATED_DEAL = 'third_party_integrated_deal'; public function getFieldTypes() { return array( @@ -84,6 +85,7 @@ public function getFieldTypes() { 'start_time' => 'int', 'status' => 'string', 'targeting' => 'Targeting', + 'third_party_integrated_deal' => 'bool', ); } } diff --git a/src/FacebookAds/Object/Fields/MerchantReportFields.php b/src/FacebookAds/Object/Fields/MerchantReportFields.php index 069abee24..7aecd3e39 100644 --- a/src/FacebookAds/Object/Fields/MerchantReportFields.php +++ b/src/FacebookAds/Object/Fields/MerchantReportFields.php @@ -38,8 +38,10 @@ class MerchantReportFields extends AbstractEnum { const ADD_TO_CART = 'add_to_cart'; + const BRAND = 'brand'; const CATALOG_SEGMENT_ID = 'catalog_segment_id'; const CATALOG_SEGMENT_PURCHASE_VALUE = 'catalog_segment_purchase_value'; + const CATEGORY = 'category'; const DATE = 'date'; const LINK_CLICKS = 'link_clicks'; const PAGE_ID = 'page_id'; @@ -53,8 +55,10 @@ class MerchantReportFields extends AbstractEnum { public function getFieldTypes() { return array( 'add_to_cart' => 'int', + 'brand' => 'string', 'catalog_segment_id' => 'string', 'catalog_segment_purchase_value' => 'float', + 'category' => 'string', 'date' => 'string', 'link_clicks' => 'int', 'page_id' => 'string', diff --git a/src/FacebookAds/Object/Fields/VehicleFields.php b/src/FacebookAds/Object/Fields/VehicleFields.php index 38ead258b..fbf72bf42 100644 --- a/src/FacebookAds/Object/Fields/VehicleFields.php +++ b/src/FacebookAds/Object/Fields/VehicleFields.php @@ -59,6 +59,7 @@ class VehicleFields extends AbstractEnum { const ID = 'id'; const IMAGES = 'images'; const INTERIOR_COLOR = 'interior_color'; + const LEGAL_DISCLOSURE_IMPRESSUM_URL = 'legal_disclosure_impressum_url'; const MAKE = 'make'; const MILEAGE = 'mileage'; const MODEL = 'model'; @@ -104,6 +105,7 @@ public function getFieldTypes() { 'id' => 'string', 'images' => 'list', 'interior_color' => 'string', + 'legal_disclosure_impressum_url' => 'string', 'make' => 'string', 'mileage' => 'Object', 'model' => 'string', diff --git a/src/FacebookAds/Object/Flight.php b/src/FacebookAds/Object/Flight.php index 7783e5a43..f19916a10 100644 --- a/src/FacebookAds/Object/Flight.php +++ b/src/FacebookAds/Object/Flight.php @@ -41,6 +41,13 @@ class Flight extends AbstractCrudObject { + /** + * @deprecated getEndpoint function is deprecated + */ + protected function getEndpoint() { + return 'flights'; + } + /** * @return FlightFields */ diff --git a/src/FacebookAds/Object/ProductCatalog.php b/src/FacebookAds/Object/ProductCatalog.php index f1d4aa28c..ba4032b22 100644 --- a/src/FacebookAds/Object/ProductCatalog.php +++ b/src/FacebookAds/Object/ProductCatalog.php @@ -411,6 +411,32 @@ public function getFlights(array $fields = array(), array $params = array(), $pe return $pending ? $request : $request->execute(); } + public function createFlight(array $fields = array(), array $params = array(), $pending = false) { + $this->assureId(); + + $param_types = array( + 'images' => 'list', + 'origin_airport' => 'string', + 'destination_airport' => 'string', + ); + $enums = array( + ); + + $request = new ApiRequest( + $this->api, + $this->data['id'], + RequestInterface::METHOD_POST, + '/flights', + new Flight(), + 'EDGE', + Flight::getFieldsEnum()->getValues(), + new TypeChecker($param_types, $enums) + ); + $request->addParams($params); + $request->addFields($fields); + return $pending ? $request : $request->execute(); + } + public function getHomeListings(array $fields = array(), array $params = array(), $pending = false) { $this->assureId(); diff --git a/src/FacebookAds/Object/User.php b/src/FacebookAds/Object/User.php index 93f5cdf44..b9a4cd7ef 100644 --- a/src/FacebookAds/Object/User.php +++ b/src/FacebookAds/Object/User.php @@ -1647,31 +1647,6 @@ public function getInvitableFriends(array $fields = array(), array $params = arr return $pending ? $request : $request->execute(); } - public function getLeadGenForms(array $fields = array(), array $params = array(), $pending = false) { - $this->assureId(); - - $param_types = array( - 'query' => 'string', - 'page_id' => 'string', - ); - $enums = array( - ); - - $request = new ApiRequest( - $this->api, - $this->data['id'], - RequestInterface::METHOD_GET, - '/leadgen_forms', - new LeadgenForm(), - 'EDGE', - LeadgenForm::getFieldsEnum()->getValues(), - new TypeChecker($param_types, $enums) - ); - $request->addParams($params); - $request->addFields($fields); - return $pending ? $request : $request->execute(); - } - public function deleteLikes(array $fields = array(), array $params = array(), $pending = false) { $this->assureId(); diff --git a/src/FacebookAds/Object/Values/AdAccountSubtypeValues.php b/src/FacebookAds/Object/Values/AdAccountSubtypeValues.php index 0eb038a64..8bffcdb1c 100644 --- a/src/FacebookAds/Object/Values/AdAccountSubtypeValues.php +++ b/src/FacebookAds/Object/Values/AdAccountSubtypeValues.php @@ -47,7 +47,6 @@ class AdAccountSubtypeValues extends AbstractEnum { const VIDEO = 'VIDEO'; const LOOKALIKE = 'LOOKALIKE'; const ENGAGEMENT = 'ENGAGEMENT'; - const DATA_SET = 'DATA_SET'; const BAG_OF_ACCOUNTS = 'BAG_OF_ACCOUNTS'; const STUDY_RULE_AUDIENCE = 'STUDY_RULE_AUDIENCE'; const FOX = 'FOX'; diff --git a/src/FacebookAds/Object/Values/AdMonetizationPropertyBreakdownsValues.php b/src/FacebookAds/Object/Values/AdMonetizationPropertyBreakdownsValues.php index 6d6bfd91f..948caf33d 100644 --- a/src/FacebookAds/Object/Values/AdMonetizationPropertyBreakdownsValues.php +++ b/src/FacebookAds/Object/Values/AdMonetizationPropertyBreakdownsValues.php @@ -50,4 +50,5 @@ class AdMonetizationPropertyBreakdownsValues extends AbstractEnum { const PLATFORM = 'PLATFORM'; const PROPERTY = 'PROPERTY'; const CLICKED_VIEW_TAG = 'CLICKED_VIEW_TAG'; + const NO_FILL_REASON = 'NO_FILL_REASON'; } diff --git a/src/FacebookAds/Object/Values/AdMonetizationPropertyMetricsValues.php b/src/FacebookAds/Object/Values/AdMonetizationPropertyMetricsValues.php index 9a6e6afdd..adfd83e43 100644 --- a/src/FacebookAds/Object/Values/AdMonetizationPropertyMetricsValues.php +++ b/src/FacebookAds/Object/Values/AdMonetizationPropertyMetricsValues.php @@ -68,4 +68,5 @@ class AdMonetizationPropertyMetricsValues extends AbstractEnum { const FB_AD_NETWORK_FAST_RETURN_DENOMINATOR = 'FB_AD_NETWORK_FAST_RETURN_DENOMINATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR'; + const FB_AD_NETWORK_NO_FILL = 'FB_AD_NETWORK_NO_FILL'; } diff --git a/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultBreakdownsValues.php b/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultBreakdownsValues.php index 6f1839abe..00c9d5b19 100644 --- a/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultBreakdownsValues.php +++ b/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultBreakdownsValues.php @@ -50,4 +50,5 @@ class AdNetworkAnalyticsSyncQueryResultBreakdownsValues extends AbstractEnum { const PLATFORM = 'PLATFORM'; const PROPERTY = 'PROPERTY'; const CLICKED_VIEW_TAG = 'CLICKED_VIEW_TAG'; + const NO_FILL_REASON = 'NO_FILL_REASON'; } diff --git a/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultMetricsValues.php b/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultMetricsValues.php index 5e9081ae5..d6a6b283a 100644 --- a/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultMetricsValues.php +++ b/src/FacebookAds/Object/Values/AdNetworkAnalyticsSyncQueryResultMetricsValues.php @@ -68,4 +68,5 @@ class AdNetworkAnalyticsSyncQueryResultMetricsValues extends AbstractEnum { const FB_AD_NETWORK_FAST_RETURN_DENOMINATOR = 'FB_AD_NETWORK_FAST_RETURN_DENOMINATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR'; + const FB_AD_NETWORK_NO_FILL = 'FB_AD_NETWORK_NO_FILL'; } diff --git a/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php b/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php index 91bf9e39b..e4a5432a0 100644 --- a/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php +++ b/src/FacebookAds/Object/Values/AdVideoContainerTypeValues.php @@ -120,4 +120,6 @@ class AdVideoContainerTypeValues extends AbstractEnum { const CANDIDATE_VIDEOS = 'CANDIDATE_VIDEOS'; const FUNDRAISER_COVER_VIDEO = 'FUNDRAISER_COVER_VIDEO'; const PROTON = 'PROTON'; + const BELL_POLL = 'BELL_POLL'; + const CIVIC_PROPOSAL_COVER_VIDEO = 'CIVIC_PROPOSAL_COVER_VIDEO'; } diff --git a/src/FacebookAds/Object/Values/ApplicationBreakdownsValues.php b/src/FacebookAds/Object/Values/ApplicationBreakdownsValues.php index cbaa7363d..29eb0acfa 100644 --- a/src/FacebookAds/Object/Values/ApplicationBreakdownsValues.php +++ b/src/FacebookAds/Object/Values/ApplicationBreakdownsValues.php @@ -50,4 +50,5 @@ class ApplicationBreakdownsValues extends AbstractEnum { const PLATFORM = 'PLATFORM'; const PROPERTY = 'PROPERTY'; const CLICKED_VIEW_TAG = 'CLICKED_VIEW_TAG'; + const NO_FILL_REASON = 'NO_FILL_REASON'; } diff --git a/src/FacebookAds/Object/Values/ApplicationMetricsValues.php b/src/FacebookAds/Object/Values/ApplicationMetricsValues.php index 855cc180b..dac2181ec 100644 --- a/src/FacebookAds/Object/Values/ApplicationMetricsValues.php +++ b/src/FacebookAds/Object/Values/ApplicationMetricsValues.php @@ -68,4 +68,5 @@ class ApplicationMetricsValues extends AbstractEnum { const FB_AD_NETWORK_FAST_RETURN_DENOMINATOR = 'FB_AD_NETWORK_FAST_RETURN_DENOMINATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_NUMERATOR'; const FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR = 'FB_AD_NETWORK_CLICK_VALUE_SCORE_DENOMINATOR'; + const FB_AD_NETWORK_NO_FILL = 'FB_AD_NETWORK_NO_FILL'; } diff --git a/src/FacebookAds/Object/Values/CustomAudienceSubtypeValues.php b/src/FacebookAds/Object/Values/CustomAudienceSubtypeValues.php index 9c64e9897..177cd7947 100644 --- a/src/FacebookAds/Object/Values/CustomAudienceSubtypeValues.php +++ b/src/FacebookAds/Object/Values/CustomAudienceSubtypeValues.php @@ -47,7 +47,6 @@ class CustomAudienceSubtypeValues extends AbstractEnum { const VIDEO = 'VIDEO'; const LOOKALIKE = 'LOOKALIKE'; const ENGAGEMENT = 'ENGAGEMENT'; - const DATA_SET = 'DATA_SET'; const BAG_OF_ACCOUNTS = 'BAG_OF_ACCOUNTS'; const STUDY_RULE_AUDIENCE = 'STUDY_RULE_AUDIENCE'; const FOX = 'FOX'; diff --git a/src/FacebookAds/Object/Values/PageSavedFilterSectionValues.php b/src/FacebookAds/Object/Values/PageSavedFilterSectionValues.php index 3a005f78d..02ba6af1b 100644 --- a/src/FacebookAds/Object/Values/PageSavedFilterSectionValues.php +++ b/src/FacebookAds/Object/Values/PageSavedFilterSectionValues.php @@ -120,6 +120,9 @@ class PageSavedFilterSectionValues extends AbstractEnum { const NEWS_SUBSCRIPTIONS_PUBLISHER_TOOLS = 'NEWS_SUBSCRIPTIONS_PUBLISHER_TOOLS'; const NEWS_SUBSCRIPTIONS_PUBLISHER_ASSET_MANAGEMENT = 'NEWS_SUBSCRIPTIONS_PUBLISHER_ASSET_MANAGEMENT'; const NEWS_SUBSCRIPTIONS_PUBLISHER_OFFER_MANAGEMENT = 'NEWS_SUBSCRIPTIONS_PUBLISHER_OFFER_MANAGEMENT'; + const NEWS_SUBSCRIPTIONS_PUBLISHER_CONFIG = 'NEWS_SUBSCRIPTIONS_PUBLISHER_CONFIG'; + const NEWS_SUBSCRIPTIONS_PUBLISHER_INSIGHTS = 'NEWS_SUBSCRIPTIONS_PUBLISHER_INSIGHTS'; + const NEWS_SUBSCRIPTIONS_PUBLISHER_TEST_USERS = 'NEWS_SUBSCRIPTIONS_PUBLISHER_TEST_USERS'; const QR_CODE = 'QR_CODE'; const ORGANIC_PIXEL = 'ORGANIC_PIXEL'; const CREDIBILITY_INDICATORS = 'CREDIBILITY_INDICATORS'; diff --git a/src/FacebookAds/Object/Values/ProductFeedFeedTypeValues.php b/src/FacebookAds/Object/Values/ProductFeedFeedTypeValues.php index 0a550af83..7a596f749 100644 --- a/src/FacebookAds/Object/Values/ProductFeedFeedTypeValues.php +++ b/src/FacebookAds/Object/Values/ProductFeedFeedTypeValues.php @@ -38,7 +38,6 @@ class ProductFeedFeedTypeValues extends AbstractEnum { const AUTO = 'AUTO'; - const AUTO_OFFER = 'AUTO_OFFER'; const DESTINATION = 'DESTINATION'; const FLIGHT = 'FLIGHT'; const HOME_LISTING = 'HOME_LISTING';