def create_tiered_lookalikes(self, account_id, name, seed_id, tiers, country): """ Take a seed custom audiences ID and create tiered lookalike audiences """ tiered_audiences = [] for tier in range(1, tiers + 1): lookalike = CustomAudience(parent_id=account_id) lookalike[CustomAudience.Field.name] = \ '{0} LAL {1}'.format(name, tier) lookalike[CustomAudience.Field.origin_audience_id] = seed_id lal_spec = { LookalikeSpec.Field.ratio: tier / 100.0, LookalikeSpec.Field.country: country, } if (tier > 1): lal_spec[ # LookalikeSpec.Field.LookalikeSpec.starting_ratio 'starting_ratio'] = (tier - 1) / 100.0 lookalike[CustomAudience.Field.lookalike_spec] = lal_spec lookalike[CustomAudience.Field.subtype] = \ CustomAudience.Subtype.lookalike lookalike.remote_create() tiered_audiences.append(lookalike) return tiered_audiences
def create_custom_audience(name): try: FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token) my_account = AdAccount(f'act_{ad_account}') audience = CustomAudience(parent_id=my_account.get_id_assured()) audience.update({ CustomAudience.Field.name: name, CustomAudience.Field.subtype: CustomAudience.Subtype.custom, CustomAudience.Field.customer_file_source: CustomAudience.CustomerFileSource.both_user_and_partner_provided }) audience.remote_create() audience = CustomAudience(audience[CustomAudience.Field.id]) return audience['id'] except Exception as e: print(type(e))
def create_audience(self, accountid, name, description, optoutlink): """ Creates a new custom audience and returns the id. """ audience = CustomAudience(parent_id=accountid) audience.update({ CustomAudience.Field.name: name, CustomAudience.Field.description: description, CustomAudience.Field.opt_out_link: optoutlink, CustomAudience.Field.subtype: CustomAudience.Subtype.custom, }) audience.remote_create() caid = audience[CustomAudience.Field.id] return caid
def create_audience( self, accountid, app_id, name, retention_days, event, period, greater_than=None, less_than=None, ): """ Creates a new custom audience and returns the id. The custom audience is created based on the cumulative values of the events (add to cart or purchase) during the selected period, provided that app is logging the selected app event and passing the right value with them. """ audience = CustomAudience(parent_id=accountid) technique = { 'technique_name': 'absolute', } if greater_than is not None: technique['lower_bound'] = greater_than if less_than is not None: technique['upper_bound'] = less_than rule = { '_application': app_id, '_eventName': event, '_cumulativeRule': { 'metric': 'amount', 'period': period, 'technique': technique, }, } audience.update({ CustomAudience.Field.name: name, CustomAudience.Field.subtype: CustomAudience.Subtype.app, CustomAudience.Field.retention_days: retention_days, CustomAudience.Field.rule: json.dumps(rule), }) audience.remote_create() caid = audience[CustomAudience.Field.id] return caid
def CreateAudience(): access_token = dict1['my_access_token'] app_secret = dict1['my_app_secret'] app_id = dict1['my_app_id'] id = dict1['account_id'] FacebookAdsApi.init(access_token=access_token) custAud = CustomAudience(parent_id=dict1['account_id']) custAud[CustomAudience.Field.name]= 'My audience' custAud[CustomAudience.Field.description]="My audience description" custAud[Targeting.Field.age_max]=30 custAud[Targeting.Field.age_min]=20 custAud[Targeting.Field.countries]=['US'] custAud[Targeting.Field.connections] = '' custAud[CustomAudience.Field.customer_file_source]='USER_PROVIDED_ONLY' custAud[CustomAudience.Field.subtype] = 'CUSTOM' custAud.remote_create(params={'customer_file_source':0,'subtype':0}) print(custAud) # CreateAudience()
def create_lals( self, account_id, seed_id, base_name, countries, ratios, ): """ Function that creates the lookalike audiences Params: * `account_id` is your Facebook AdAccount id * `seed_id` is the source custom audience * `base_name` the lookalike audiences will have names in the format of `[base_name] [COUNTRY_CODE] [RATIO]` * `countries` array of country codes * `ratios` array of integers stating the lookalike ratio, from 1 to 10 currency is USD, dailybudget=1000 says your budget is 1000 USD """ lal_created = [] for country, ratio in itertools.product(countries, ratios): # Create the lookalike audience lookalike = CustomAudience(parent_id=account_id) lookalike[CustomAudience.Field.name] = "{0} {1} {2}".format( base_name, country, ratio, ) lookalike[CustomAudience.Field.origin_audience_id] = seed_id lookalike[CustomAudience.Field.lookalike_spec] = { LookalikeSpec.Field.ratio: ratio / 100.0, LookalikeSpec.Field.country: country, } lookalike[CustomAudience.Field.subtype] = \ CustomAudience.Subtype.lookalike lookalike.remote_create() lal_created.append(lookalike) return lal_created
print('Lets get started') print('Source Directory: ' + sourcedir) print('Archive Directory: ' + movedir) for index, filenamez in enumerate(filelist): #if os.path.splitext(filename)[-1].lower() == '.csv': #3 - create a blank custom audience filename = str(filenamez) print('filename is ' + filename) audience = CustomAudience(parent_id=my_account) audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom audience[CustomAudience.Field.name] = filename[:-4] audience[CustomAudience.Field.description] = filename[:-4] audience[CustomAudience.Field.customer_file_source] = 'USER_PROVIDED_ONLY' #the below command actually creates the custom audience audience.remote_create() #remote_create is being depricated soon. Will need to migrate to #AdAccount(api=self._api, fbid=parent_id).create_custom_audience(fields, params, batch, success, failure, pending) #not sure how to use this yet. caid = audience[CustomAudience.Field.id] print('my new custom audience id is: ' + caid) #4 - add records to the blank custom audience. # you can define your own schema based on what data you have. # will push with a ext id and will use multi key matching. #update - Facebook confirmed "is_raw = True" will automatically hash data. schema = [ CustomAudience.Schema.MultiKeySchema. extern_id, #send your external id here CustomAudience.Schema.MultiKeySchema.fn,