in facebook_business/adobjects/adaccount.py [0:0]
def create_custom_audience(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.customaudience import CustomAudience
param_types = {
'allowed_domains': 'list<string>',
'associated_audience_id': 'unsigned int',
'claim_objective': 'claim_objective_enum',
'content_type': 'content_type_enum',
'countries': 'string',
'creation_params': 'map',
'customer_file_source': 'customer_file_source_enum',
'dataset_id': 'string',
'description': 'string',
'enable_fetch_or_create': 'bool',
'event_source_group': 'string',
'event_sources': 'list<map>',
'exclusions': 'list<Object>',
'inclusions': 'list<Object>',
'is_snapshot': 'bool',
'is_value_based': 'bool',
'list_of_accounts': 'list<unsigned int>',
'lookalike_spec': 'string',
'name': 'string',
'opt_out_link': 'string',
'origin_audience_id': 'string',
'parent_audience_id': 'unsigned int',
'partner_reference_key': 'string',
'pixel_id': 'string',
'prefill': 'bool',
'product_set_id': 'string',
'regulated_audience_spec': 'string',
'retention_days': 'unsigned int',
'rev_share_policy_id': 'unsigned int',
'rule': 'string',
'rule_aggregation': 'string',
'subtype': 'subtype_enum',
'video_group_ids': 'list<string>',
}
enums = {
'claim_objective_enum': CustomAudience.ClaimObjective.__dict__.values(),
'content_type_enum': CustomAudience.ContentType.__dict__.values(),
'customer_file_source_enum': CustomAudience.CustomerFileSource.__dict__.values(),
'subtype_enum': CustomAudience.Subtype.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/customaudiences',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=CustomAudience,
api_type='EDGE',
response_parser=ObjectParser(target_class=CustomAudience, 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()