in facebook_business/adobjects/adaccount.py [0:0]
def create_ad_creative(self, fields=None, params=None, batch=None, success=None, failure=None, pending=False):
from facebook_business.utils import api_utils
if batch is None and (success is not None or failure is not None):
api_utils.warning('`success` and `failure` callback only work for batch call.')
from facebook_business.adobjects.adcreative import AdCreative
param_types = {
'actor_id': 'unsigned int',
'adlabels': 'list<Object>',
'applink_treatment': 'applink_treatment_enum',
'asset_feed_spec': 'Object',
'authorization_category': 'authorization_category_enum',
'body': 'string',
'branded_content_sponsor_page_id': 'string',
'bundle_folder_id': 'string',
'call_to_action': 'Object',
'categorization_criteria': 'categorization_criteria_enum',
'category_media_source': 'category_media_source_enum',
'destination_set_id': 'string',
'dynamic_ad_voice': 'dynamic_ad_voice_enum',
'enable_launch_instant_app': 'bool',
'image_crops': 'map',
'image_file': 'string',
'image_hash': 'string',
'image_url': 'string',
'instagram_actor_id': 'string',
'instagram_permalink_url': 'string',
'instagram_user_id': 'string',
'instant_checkout_setting': 'instant_checkout_setting_enum',
'interactive_components_spec': 'map',
'is_dco_internal': 'bool',
'link_og_id': 'string',
'link_url': 'string',
'messenger_sponsored_message': 'string',
'name': 'string',
'object_id': 'unsigned int',
'object_story_id': 'string',
'object_story_spec': 'AdCreativeObjectStorySpec',
'object_type': 'string',
'object_url': 'string',
'omnichannel_link_spec': 'map',
'place_page_set_id': 'string',
'platform_customizations': 'Object',
'playable_asset_id': 'string',
'portrait_customizations': 'map',
'product_set_id': 'string',
'recommender_settings': 'map',
'source_instagram_media_id': 'string',
'template_url': 'string',
'template_url_spec': 'Object',
'thumbnail_url': 'string',
'title': 'string',
'url_tags': 'string',
'use_page_actor_override': 'bool',
}
enums = {
'applink_treatment_enum': AdCreative.ApplinkTreatment.__dict__.values(),
'authorization_category_enum': AdCreative.AuthorizationCategory.__dict__.values(),
'categorization_criteria_enum': AdCreative.CategorizationCriteria.__dict__.values(),
'category_media_source_enum': AdCreative.CategoryMediaSource.__dict__.values(),
'dynamic_ad_voice_enum': AdCreative.DynamicAdVoice.__dict__.values(),
'instant_checkout_setting_enum': AdCreative.InstantCheckoutSetting.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/adcreatives',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=AdCreative,
api_type='EDGE',
response_parser=ObjectParser(target_class=AdCreative, api=self._api),
)
request.add_params(params)
request.add_fields(fields)
if batch is not None:
request.add_to_batch(batch, success=success, failure=failure)
return request
elif pending:
return request
else:
self.assure_call()
return request.execute()