@@ -85,6 +85,7 @@ class Field(AbstractObject.Field):
8585 min_daily_budget = 'min_daily_budget'
8686 name = 'name'
8787 offsite_pixels_tos_accepted = 'offsite_pixels_tos_accepted'
88+ opportunity_score = 'opportunity_score'
8889 owner = 'owner'
8990 owner_business = 'owner_business'
9091 partner = 'partner'
@@ -700,6 +701,7 @@ def create_ad_creative(self, fields=None, params=None, batch=None, success=None,
700701 'is_dco_internal' : 'bool' ,
701702 'link_og_id' : 'string' ,
702703 'link_url' : 'string' ,
704+ 'media_sourcing_spec' : 'map' ,
703705 'name' : 'string' ,
704706 'object_id' : 'unsigned int' ,
705707 'object_story_id' : 'string' ,
@@ -1404,6 +1406,7 @@ def create_ad_set(self, fields=None, params=None, batch=None, success=None, fail
14041406 'bid_constraints' : 'map<string, Object>' ,
14051407 'bid_strategy' : 'bid_strategy_enum' ,
14061408 'billing_event' : 'billing_event_enum' ,
1409+ 'budget_schedule_specs' : 'list<Object>' ,
14071410 'budget_source' : 'budget_source_enum' ,
14081411 'budget_split_set_id' : 'string' ,
14091412 'campaign_attribution' : 'Object' ,
@@ -1425,6 +1428,7 @@ def create_ad_set(self, fields=None, params=None, batch=None, success=None, fail
14251428 'frequency_control_specs' : 'list<Object>' ,
14261429 'full_funnel_exploration_mode' : 'full_funnel_exploration_mode_enum' ,
14271430 'is_ba_skip_delayed_eligible' : 'bool' ,
1431+ 'is_budget_schedule_enabled' : 'bool' ,
14281432 'is_dynamic_creative' : 'bool' ,
14291433 'is_incremental_attribution_enabled' : 'bool' ,
14301434 'is_sac_cfca_terms_certified' : 'bool' ,
@@ -1454,7 +1458,10 @@ def create_ad_set(self, fields=None, params=None, batch=None, success=None, fail
14541458 'time_start' : 'datetime' ,
14551459 'time_stop' : 'datetime' ,
14561460 'topline_id' : 'string' ,
1461+ 'trending_topics_spec' : 'map' ,
14571462 'tune_for_category' : 'tune_for_category_enum' ,
1463+ 'value_rule_set_id' : 'string' ,
1464+ 'value_rules_applied' : 'bool' ,
14581465 }
14591466 enums = {
14601467 'automatic_manual_state_enum' : AdSet .AutomaticManualState .__dict__ .values (),
@@ -2503,9 +2510,14 @@ def create_campaign(self, fields=None, params=None, batch=None, success=None, fa
25032510 param_types = {
25042511 'adlabels' : 'list<Object>' ,
25052512 'bid_strategy' : 'bid_strategy_enum' ,
2513+ 'budget_schedule_specs' : 'list<Object>' ,
25062514 'buying_type' : 'string' ,
25072515 'daily_budget' : 'unsigned int' ,
25082516 'execution_options' : 'list<execution_options_enum>' ,
2517+ 'is_adset_budget_sharing_enabled' : 'bool' ,
2518+ 'is_budget_schedule_enabled' : 'bool' ,
2519+ 'is_direct_send_campaign' : 'bool' ,
2520+ 'is_message_campaign' : 'bool' ,
25092521 'is_skadnetwork_attribution' : 'bool' ,
25102522 'iterative_split_test_configs' : 'list<Object>' ,
25112523 'lifetime_budget' : 'unsigned int' ,
@@ -3042,6 +3054,7 @@ def get_generate_previews(self, fields=None, params=None, batch=None, success=No
30423054 'end_date' : 'datetime' ,
30433055 'height' : 'unsigned int' ,
30443056 'locale' : 'string' ,
3057+ 'message' : 'Object' ,
30453058 'place_page_id' : 'int' ,
30463059 'post' : 'Object' ,
30473060 'product_item_ids' : 'list<string>' ,
@@ -3126,6 +3139,7 @@ def get_insights(self, fields=None, params=None, is_async=False, batch=None, suc
31263139 'export_name' : 'string' ,
31273140 'fields' : 'list<string>' ,
31283141 'filtering' : 'list<Object>' ,
3142+ 'graph_cache' : 'bool' ,
31293143 'level' : 'level_enum' ,
31303144 'limit' : 'int' ,
31313145 'product_id_limit' : 'int' ,
@@ -3188,6 +3202,7 @@ def get_insights_async(self, fields=None, params=None, batch=None, success=None,
31883202 'export_name' : 'string' ,
31893203 'fields' : 'list<string>' ,
31903204 'filtering' : 'list<Object>' ,
3205+ 'graph_cache' : 'bool' ,
31913206 'level' : 'level_enum' ,
31923207 'limit' : 'int' ,
31933208 'product_id_limit' : 'int' ,
@@ -3312,9 +3327,11 @@ def get_matched_search_applications(self, fields=None, params=None, batch=None,
33123327 'is_skadnetwork_search' : 'bool' ,
33133328 'only_apps_with_permission' : 'bool' ,
33143329 'query_term' : 'string' ,
3330+ 'stores_to_filter' : 'list<stores_to_filter_enum>' ,
33153331 }
33163332 enums = {
33173333 'app_store_enum' : AdAccountMatchedSearchApplicationsEdgeData .AppStore .__dict__ .values (),
3334+ 'stores_to_filter_enum' : AdAccountMatchedSearchApplicationsEdgeData .StoresToFilter .__dict__ .values (),
33183335 }
33193336 request = FacebookRequest (
33203337 node_id = self ['id' ],
@@ -3400,6 +3417,116 @@ def get_mcme_conversions(self, fields=None, params=None, batch=None, success=Non
34003417 self .assure_call ()
34013418 return request .execute ()
34023419
3420+ def create_message_campaign (self , fields = None , params = None , batch = None , success = None , failure = None , pending = False ):
3421+ from facebook_business .utils import api_utils
3422+ if batch is None and (success is not None or failure is not None ):
3423+ api_utils .warning ('`success` and `failure` callback only work for batch call.' )
3424+ param_types = {
3425+ 'bid_amount' : 'unsigned int' ,
3426+ 'daily_budget' : 'unsigned int' ,
3427+ 'lifetime_budget' : 'unsigned int' ,
3428+ 'name' : 'string' ,
3429+ 'page_id' : 'string' ,
3430+ }
3431+ enums = {
3432+ }
3433+ request = FacebookRequest (
3434+ node_id = self ['id' ],
3435+ method = 'POST' ,
3436+ endpoint = '/message_campaign' ,
3437+ api = self ._api ,
3438+ param_checker = TypeChecker (param_types , enums ),
3439+ target_class = AbstractCrudObject ,
3440+ api_type = 'EDGE' ,
3441+ response_parser = ObjectParser (target_class = AbstractCrudObject , api = self ._api ),
3442+ )
3443+ request .add_params (params )
3444+ request .add_fields (fields )
3445+
3446+ if batch is not None :
3447+ request .add_to_batch (batch , success = success , failure = failure )
3448+ return request
3449+ elif pending :
3450+ return request
3451+ else :
3452+ self .assure_call ()
3453+ return request .execute ()
3454+
3455+ def get_message_delivery_estimate (self , fields = None , params = None , batch = None , success = None , failure = None , pending = False ):
3456+ from facebook_business .utils import api_utils
3457+ if batch is None and (success is not None or failure is not None ):
3458+ api_utils .warning ('`success` and `failure` callback only work for batch call.' )
3459+ from facebook_business .adobjects .messagedeliveryestimate import MessageDeliveryEstimate
3460+ param_types = {
3461+ 'bid_amount' : 'unsigned int' ,
3462+ 'daily_budget' : 'unsigned int' ,
3463+ 'is_direct_send_campaign' : 'bool' ,
3464+ 'lifetime_budget' : 'unsigned int' ,
3465+ 'lifetime_in_days' : 'unsigned int' ,
3466+ 'optimization_goal' : 'optimization_goal_enum' ,
3467+ 'pacing_type' : 'pacing_type_enum' ,
3468+ 'promoted_object' : 'Object' ,
3469+ 'targeting_spec' : 'Targeting' ,
3470+ }
3471+ enums = {
3472+ 'optimization_goal_enum' : MessageDeliveryEstimate .OptimizationGoal .__dict__ .values (),
3473+ 'pacing_type_enum' : MessageDeliveryEstimate .PacingType .__dict__ .values (),
3474+ }
3475+ request = FacebookRequest (
3476+ node_id = self ['id' ],
3477+ method = 'GET' ,
3478+ endpoint = '/message_delivery_estimate' ,
3479+ api = self ._api ,
3480+ param_checker = TypeChecker (param_types , enums ),
3481+ target_class = MessageDeliveryEstimate ,
3482+ api_type = 'EDGE' ,
3483+ response_parser = ObjectParser (target_class = MessageDeliveryEstimate , api = self ._api ),
3484+ )
3485+ request .add_params (params )
3486+ request .add_fields (fields )
3487+
3488+ if batch is not None :
3489+ request .add_to_batch (batch , success = success , failure = failure )
3490+ return request
3491+ elif pending :
3492+ return request
3493+ else :
3494+ self .assure_call ()
3495+ return request .execute ()
3496+
3497+ def create_message (self , fields = None , params = None , batch = None , success = None , failure = None , pending = False ):
3498+ from facebook_business .utils import api_utils
3499+ if batch is None and (success is not None or failure is not None ):
3500+ api_utils .warning ('`success` and `failure` callback only work for batch call.' )
3501+ param_types = {
3502+ 'message' : 'Object' ,
3503+ 'message_id' : 'unsigned int' ,
3504+ 'messenger_delivery_data' : 'map' ,
3505+ }
3506+ enums = {
3507+ }
3508+ request = FacebookRequest (
3509+ node_id = self ['id' ],
3510+ method = 'POST' ,
3511+ endpoint = '/messages' ,
3512+ api = self ._api ,
3513+ param_checker = TypeChecker (param_types , enums ),
3514+ target_class = AbstractCrudObject ,
3515+ api_type = 'EDGE' ,
3516+ response_parser = ObjectParser (target_class = AbstractCrudObject , api = self ._api ),
3517+ )
3518+ request .add_params (params )
3519+ request .add_fields (fields )
3520+
3521+ if batch is not None :
3522+ request .add_to_batch (batch , success = success , failure = failure )
3523+ return request
3524+ elif pending :
3525+ return request
3526+ else :
3527+ self .assure_call ()
3528+ return request .execute ()
3529+
34033530 def get_minimum_budgets (self , fields = None , params = None , batch = None , success = None , failure = None , pending = False ):
34043531 from facebook_business .utils import api_utils
34053532 if batch is None and (success is not None or failure is not None ):
@@ -4490,6 +4617,7 @@ def create_video_ad(self, fields=None, params=None, batch=None, success=None, fa
44904617 'min_daily_budget' : 'unsigned int' ,
44914618 'name' : 'string' ,
44924619 'offsite_pixels_tos_accepted' : 'bool' ,
4620+ 'opportunity_score' : 'float' ,
44934621 'owner' : 'string' ,
44944622 'owner_business' : 'Business' ,
44954623 'partner' : 'string' ,
0 commit comments