def CreateCustomAudience(name, description=None, f=None, datatype='email'): audience = CustomAudience(parent_id=my_account.get_id_assured()) audience.update({CustomAudience.Field.name: name}) if description: audience.update({CustomAudience.Field.description: description}) audience.remote_create() print('Created custom audience id ' + audience[CustomAudience.Field.id]) if f and datatype: LoadCustomAudience(audience, f, datatype)
def CreateCustomAudience(name, description=None, f=None, datatype='email'): audience = CustomAudience(parent_id=my_account.get_id_assured()) audience.update({CustomAudience.Field.name: name}) if description: audience.update({CustomAudience.Field.description: description}) audience.remote_create() print('Created custom audience id ' + audience[CustomAudience.Field.id]) if f and datatype: LoadCustomAudience(audience, f, datatype)
def create_purchase_audience_data(account_id, pixel_id): audience_values = [('MAU',30),('WAU',7),('DAU',1)] for value in audience_values: audience = CustomAudience(parent_id='act_'+str(account_id)) audience[CustomAudience.Field.name] = value[0] audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website audience[CustomAudience.Field.retention_days] = value[1] audience[CustomAudience.Field.rule] = {"and":[{"event":{"eq":"Purchase"}}]} audience[CustomAudience.Field.pixel_id] = pixel_id audience.remote_create()
def create_custom_audience(): audience = CustomAudience(parent_id=test_config.account_id) audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom audience[CustomAudience.Field.name] = unique_name('Test Audience') audience[CustomAudience.Field.description] = 'Created for docsmith example' audience.remote_create() atexit.register(remote_delete, audience) return audience
def create_custom_audience(): audience = CustomAudience(parent_id=test_config.account_id) audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom audience[CustomAudience.Field.name] = unique_name('Test Audience') audience[CustomAudience.Field.description] = 'Created for docsmith example' audience.remote_create() atexit.register(remote_delete, audience) return audience
def CreateCustomAudience(ad_account, name, description=None, f=None, datatype='email'): audience = CustomAudience(parent_id=ad_account.get_id_assured()) audience.update({ CustomAudience.Field.name: name, CustomAudience.Field.subtype: CustomAudience.Subtype.custom, }) if description: audience.update({CustomAudience.Field.description: description}) audience.remote_create() print('Created custom audience id ' + audience[CustomAudience.Field.id]) if f and datatype: return LoadCustomAudience(audience, f, datatype) return "No data was uploaded to audience. Only created custom audience id ' + audience[CustomAudience.Field.id]"
def create_audience(self, name, desc=None): """ This creates an audience object. :params name: str, name of audience :params desc: str, description of audience """ if name in [audience['name'] for audience in self.audiences]: raise ValueError( 'Attempted to add audience. Audience with same name exists.') audience = CustomAudience(parent_id=self._account) audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom audience[CustomAudience.Field.name] = '{}'.format(name) if desc: audience[CustomAudience.Field.description] = desc audience.remote_create()
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 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[LookalikeAudience.Field.name] = "{0} {1} {2}".format( base_name, country, ratio, ) lookalike[LookalikeAudience.Field.origin_audience_id] = seed_id lookalike[LookalikeAudience.Field.lookalike_spec] = { LookalikeAudience.Field.LookalikeSpec.ratio: ratio / 100.0, LookalikeAudience.Field.LookalikeSpec.country: country, } lookalike[CustomAudience.Field.subtype] = \ CustomAudience.Subtype.lookalike lookalike.remote_create() lal_created.append(lookalike) return lal_created
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[LookalikeAudience.Field.name] = \ '{0} LAL {1}'.format(name, tier) lookalike[LookalikeAudience.Field.origin_audience_id] = seed_id lal_spec = { LookalikeAudience.Field.LookalikeSpec.ratio: tier / 100.0, LookalikeAudience.Field.LookalikeSpec.country: country, } if (tier > 1): lal_spec[ # LookalikeAudience.Field.LookalikeSpec.starting_ratio 'starting_ratio' ] = (tier - 1) / 100.0 lookalike[LookalikeAudience.Field.lookalike_spec] = lal_spec lookalike[CustomAudience.Field.subtype] = \ CustomAudience.Subtype.lookalike lookalike.remote_create() tiered_audiences.append(lookalike) return tiered_audiences
from facebookads import test_config ad_account_id = test_config.account_id video_path = test_config.video_path # _DOC open [CUSTOM_AUDIENCE_CREATE] # _DOC vars [ad_account_id:s] from facebookads.objects import CustomAudience audience = CustomAudience(parent_id=ad_account_id) audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.custom audience[CustomAudience.Field.name] = "My new CA" audience[CustomAudience.Field.description] = "People who bought on my website" audience.remote_create() # _DOC close [CUSTOM_AUDIENCE_CREATE] pixel_id = fixtures.create_ads_pixel().get_id_assured() # _DOC open [CUSTOM_AUDIENCE_CREATE_WCA] # _DOC vars [ad_account_id:s, pixel_id] from facebookads.objects import CustomAudience audience = CustomAudience(parent_id=ad_account_id) audience[CustomAudience.Field.name] = "my audience" audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website audience[CustomAudience.Field.retention_days] = 15 audience[CustomAudience.Field.rule] = {"url": {"i_contains": "shoes"}} audience[CustomAudience.Field.pixel_id] = pixel_id
response = page_api.call( 'POST', graph_video_upload_url, files={'source': (video_path, 'multipart/form-data')}, ) video_id = response.json()['id'] # _DOC open [CUSTOM_AUDIENCE_CREATE] # _DOC vars [ad_account_id:s] from facebookads.objects import CustomAudience audience = CustomAudience(parent_id=ad_account_id) audience[CustomAudience.Field.name] = 'My new CA' audience[CustomAudience.Field.description] = 'People who bought on my website' audience.remote_create() # _DOC close [CUSTOM_AUDIENCE_CREATE] custom_audience_id = audience.get_id() # _DOC open [CUSTOM_AUDIENCE_USERS_ADD_EMAILS] # _DOC vars [custom_audience_id:s] from facebookads.objects import CustomAudience audience = CustomAudience(custom_audience_id) users = ['*****@*****.**', '*****@*****.**', '*****@*****.**'] audience.add_users(CustomAudience.Schema.email_hash, users) # _DOC close [CUSTOM_AUDIENCE_USERS_ADD_EMAILS] # _DOC open [CUSTOM_AUDIENCE_USERS_REMOVE_EMAILS]
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. from facebookads import test_config ad_account_id = test_config.account_id page_id = test_config.page_id # _DOC open [LOOKALIKE_CREATE_PAGE_FAN] # _DOC vars [ad_account_id:s, pixel_id:s, page_id:s] from facebookads.objects import CustomAudience lookalike = CustomAudience(parent_id=ad_account_id) lookalike.update({ CustomAudience.Field.name: 'My lookalike audience', CustomAudience.Field.subtype: CustomAudience.Subtype.lookalike, CustomAudience.Field.lookalike_spec: { 'ratio': 0.01, 'country': 'US', 'page_id': page_id, 'conversion_type': 'page_like', }, }) lookalike.remote_create() print(lookalike) # _DOC close [LOOKALIKE_CREATE_PAGE_FAN] lookalike.remote_delete()
# Policies [http://developers.facebook.com/policy/]. This copyright notice # shall be included in all copies or substantial portions of the software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # DEALINGS IN THE SOFTWARE. from examples.docs import fixtures from facebookads import test_config pixel_id = fixtures.create_ads_pixel().get_id() ad_account_id = test_config.account_id # _DOC open [CUSTOM_AUDIENCE_CREATE_WCA] # _DOC vars [ad_account_id:s, pixel_id] from facebookads.objects import CustomAudience audience = CustomAudience(parent_id=ad_account_id) audience[CustomAudience.Field.name] = 'my audience' audience[CustomAudience.Field.subtype] = CustomAudience.Subtype.website audience[CustomAudience.Field.retention_days] = 15 audience[CustomAudience.Field.rule] = {'url': {'i_contains': 'shoes'}} audience[CustomAudience.Field.pixel_id] = pixel_id audience.remote_create() # _DOC close [CUSTOM_AUDIENCE_CREATE_WCA]