in facebook_business/adobjects/adaccount.py [0:0]
def create_reach_frequency_prediction(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.reachfrequencyprediction import ReachFrequencyPrediction
param_types = {
'action': 'action_enum',
'ad_formats': 'list<map>',
'auction_entry_option_index': 'unsigned int',
'budget': 'unsigned int',
'buying_type': 'buying_type_enum',
'campaign_group_id': 'string',
'day_parting_schedule': 'list<Object>',
'deal_id': 'string',
'destination_id': 'unsigned int',
'destination_ids': 'list<string>',
'end_time': 'unsigned int',
'exceptions': 'bool',
'existing_campaign_id': 'string',
'expiration_time': 'unsigned int',
'frequency_cap': 'unsigned int',
'grp_buying': 'bool',
'impression': 'unsigned int',
'instream_packages': 'list<instream_packages_enum>',
'interval_frequency_cap_reset_period': 'unsigned int',
'is_bonus_media': 'bool',
'is_conversion_goal': 'bool',
'is_full_view': 'bool',
'is_higher_average_frequency': 'bool',
'is_reach_and_frequency_io_buying': 'bool',
'is_reserved_buying': 'bool',
'num_curve_points': 'unsigned int',
'objective': 'string',
'prediction_mode': 'unsigned int',
'reach': 'unsigned int',
'rf_prediction_id': 'string',
'rf_prediction_id_to_release': 'string',
'rf_prediction_id_to_share': 'string',
'start_time': 'unsigned int',
'stop_time': 'unsigned int',
'story_event_type': 'unsigned int',
'target_cpm': 'unsigned int',
'target_spec': 'Targeting',
'video_view_length_constraint': 'unsigned int',
}
enums = {
'action_enum': ReachFrequencyPrediction.Action.__dict__.values(),
'buying_type_enum': ReachFrequencyPrediction.BuyingType.__dict__.values(),
'instream_packages_enum': ReachFrequencyPrediction.InstreamPackages.__dict__.values(),
}
request = FacebookRequest(
node_id=self['id'],
method='POST',
endpoint='/reachfrequencypredictions',
api=self._api,
param_checker=TypeChecker(param_types, enums),
target_class=ReachFrequencyPrediction,
api_type='EDGE',
response_parser=ObjectParser(target_class=ReachFrequencyPrediction, 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()