def get_ad_set(self): account = AdAccount(self.act_id) adsets = account.get_ad_sets( fields=[ AdSet.Field.name, AdSet.Field.status, AdSet.Field.campaign_group_id ], params={ 'campaign_status': ['ACTIVE'], 'limit': 100 } ) campaigns = account.get_ad_campaigns( fields=[ AdCampaign.Field.name, AdCampaign.Field.status ], params={ 'campaign_group_status': ['ACTIVE'] } ) ads = [] for adset in adsets: for i in range(0, len(campaigns)): campaign = campaigns[i] if adset['campaign_group_id'] == campaign['id']: ads.append({ 'id': adset['id'], 'name': adset['name'], 'campaign_name': campaign['name'] }) break return sorted(ads, key=lambda ad: ad['campaign_name'] + ad['name'])
account = AdAccount(account_id) account[AdAccount.Field.name] = 'New Name' account.remote_update() # _DOC close [ADACCOUNT_UPDATE] account[AdAccount.Field.name] = old_name account.remote_update() # _DOC open [ADACCOUNT_GET_ADCAMPAIGNS] from facebookads.objects import AdAccount, AdCampaign account = AdAccount(account_id) campaigns = account.get_ad_campaigns(fields=[ AdCampaign.Field.name, ]) for campaign in campaigns: print(campaign[AdCampaign.Field.name]) # _DOC close [ADACCOUNT_GET_ADCAMPAIGNS] old_spend_cap = account.remote_read( fields=[AdAccount.Field.spend_cap])[AdAccount.Field.spend_cap] # _DOC open [ADACCOUNT_UPDATE_SPEND_CAP] from facebookads.objects import AdAccount account = AdAccount(account_id) account[AdAccount.Field.spend_cap] = 10000 account.remote_update()
account = AdAccount(account_id) account[AdAccount.Field.name] = 'New Name' account.remote_update() # _DOC close [ADACCOUNT_UPDATE] account[AdAccount.Field.name] = old_name account.remote_update() # _DOC open [ADACCOUNT_GET_ADCAMPAIGNS] # _DOC vars [account_id:s] from facebookads.objects import AdAccount, AdCampaign account = AdAccount(account_id) campaigns = account.get_ad_campaigns(fields=[ AdCampaign.Field.name, ]) for campaign in campaigns: print(campaign[AdCampaign.Field.name]) # _DOC close [ADACCOUNT_GET_ADCAMPAIGNS] old_spend_cap = account.remote_read(fields=[ AdAccount.Field.spend_cap ])[AdAccount.Field.spend_cap] # _DOC open [ADACCOUNT_UPDATE_SPEND_CAP] # _DOC vars [account_id:s] from facebookads.objects import AdAccount account = AdAccount(account_id)
def select_target(self): parent_id = config['act_id'][self.param['account']] account = AdAccount(parent_id) campaigns = account.get_ad_campaigns( fields=[ AdCampaign.Field.name, AdCampaign.Field.status ], params={ 'campaign_group_status': ['ACTIVE'] } ) adset = AdSet(self.param['adset_id']) adset.remote_read( fields=[ AdSet.Field.name, AdSet.Field.targeting, AdSet.Field.campaign_group_id, ] ) # pp.pprint(adset) if(('genders' in adset['targeting']) and (len(adset['targeting']['genders']) == 1)): gender = adset['targeting']['genders'][0] else: gender = 0 for i in range(0, len(campaigns)): campaign = campaigns[i] if adset['campaign_group_id'] == campaign['id']: campaign_name = campaign['name'] break country_list = [] for country in COUNTRY_CODES: is_checked = 0 if (country in adset['targeting']['geo_locations']['countries']): is_checked = 1 countries = { 'name': country, 'is_checked': is_checked } country_list.append(countries) custom_audiences = account.get_custom_audiences( fields=[ CustomAudience.Field.name, ], params={'limit': 1000} ) audience_list = [] for i in range(0, len(custom_audiences)): audience = custom_audiences[i] is_checked = 0 if('custom_audiences' in adset['targeting']): for default_audience in adset['targeting']['custom_audiences']: if (audience['id'] == default_audience['id']): is_checked = 1 break audiences = { 'name': audience['name'], 'id': audience['id'], 'is_checked': is_checked, } audience_list.append(audiences) excluded_list = [] for i in range(0, len(custom_audiences)): audience = custom_audiences[i] is_checked = 0 if('excluded_custom_audiences' in adset['targeting']): excluded = adset['targeting']['excluded_custom_audiences'] for default_excluded in excluded: if (audience['id'] == default_excluded['id']): is_checked = 1 break excludeds = { 'name': audience['name'], 'id': audience['id'], 'is_checked': is_checked, } excluded_list.append(excludeds) result = { 'account': self.param['account'], 'adset': adset, 'campaigns': campaigns, 'gender': gender, 'age_range': AGE_RANGE, 'campaign_name': campaign_name, 'country_list': country_list, 'audience_list': audience_list, 'excluded_list': excluded_list, } return result