Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
# _DOC open [ADCREATIVE_CREATE_DPA_RETARGETING]
# _DOC vars [ad_account_id:s, page_id, link:s, product_set_id_1]
from facebookads.objects import AdCreative
from facebookads.specs import ObjectStorySpec
story = ObjectStorySpec()
story[story.Field.page_id] = page_id
story[story.Field.template_data] = {
'message': 'Test {{product.name | titleize}}',
'link': link,
'name': 'Headline {{product.price}}',
'description': 'Description {{product.description}}',
'max_product_count': 3,
}
creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.name] = 'Dynamic Ad Template Creative Sample'
creative[AdCreative.Field.object_story_spec] = story
creative[AdCreative.Field.product_set_id] = product_set_id_1
creative.remote_create()
# _DOC close [ADCREATIVE_CREATE_DPA_RETARGETING]
creative.remote_delete()
# FIXME excluded from runtime
exit(0)
retailer_id = ''
catalog_id = product_catalog_id
# _DOC open [ADCREATIVE_READ_DPA_PREVIEW]
# _DOC vars [creative_id, catalog_id, retailer_id:s]
import base64
from facebookads.objects import AdCreative, AdCreativePreview
}
creative.remote_read(fields=fields, params=params)
print(creative[AdCreative.Field.thumbnail_url])
# _DOC close [ADCREATIVE_READ_THUMBNAIL_WITH_DIMENSIONS]
creative.remote_delete()
creative_id = fixtures.create_creative().get_id_assured()
creative_name = fixtures.unique_name('Test Creative')
# _DOC open [ADCREATIVE_UPDATE]
# _DOC vars [creative_id, creative_name]
from facebookads.objects import AdCreative
creative = AdCreative(creative_id)
creative[AdCreative.Field.name] = creative_name
creative.remote_update()
print(creative)
# _DOC close [ADCREATIVE_UPDATE]
# _DOC open [ADCREATIVE_CREATE_GET_DIRECTIONS_VIDEO]
# _DOC vars [video_image_url:s, video_id, page_id, ad_account_id:s]
from facebookads.objects import AdCreative
video_data = VideoData()
video_data[VideoData.Field.image_url] = image_url
video_data[VideoData.Field.video_id] = video_id
video_data[VideoData.Field.description]\
= 'Come check out our new store in Menlo Park!'
# _DOC open [ADCREATIVE_CREATE_LINK_AD]
# _DOC vars [ad_account_id:s, image_hash:s, page_id, link:s]
from facebookads.objects import AdCreative
from facebookads.specs import ObjectStorySpec, LinkData
link_data = LinkData()
link_data[LinkData.Field.message] = 'try it out'
link_data[LinkData.Field.link] = link
link_data[LinkData.Field.caption] = 'My caption'
link_data[LinkData.Field.image_hash] = image_hash
object_story_spec = ObjectStorySpec()
object_story_spec[ObjectStorySpec.Field.page_id] = page_id
object_story_spec[ObjectStorySpec.Field.link_data] = link_data
creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.name] = 'AdCreative for Link Ad'
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()
print(creative)
# _DOC close [ADCREATIVE_CREATE_LINK_AD]
creative.remote_delete()
url = 'http://www.domain.com'
# _DOC open [ADCREATIVE_CREATE_LINK_AD_CALL_TO_ACTION]
# _DOC vars [url:s, page_id, ad_account_id:s]
from facebookads.objects import AdCreative
from facebookads.specs import ObjectStorySpec, LinkData
'application': app_id
}
adgroup.remote_create()
# _DOC close [ADGROUP_CREATE_TRACKING_MUSIC_LISTENS]
adgroup.remote_delete()
# _DOC open [ADGROUP_CREATE_INLINE_CREATIVE]
# _DOC vars [ad_account_id:s, image_hash:s, ad_set_id]
from facebookads.objects import AdCreative, AdGroup
# First, upload the ad image that you will use in your ad creative
# Please refer to Ad Image Create for details.
# Then, use the image hash returned from above
creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.title] = 'My Test Creative'
creative[AdCreative.Field.body] = 'My Test Ad Creative Body'
creative[AdCreative.Field.object_url] = 'https://www.facebook.com/facebook'
creative[AdCreative.Field.image_hash] = image_hash
# Finally, create your ad along with ad creative.
# Please note that the ad creative is not created independently, rather its
# data structure is appended to the ad group
adgroup = AdGroup(parent_id=ad_account_id)
adgroup[AdGroup.Field.name] = 'My Ad'
adgroup[AdGroup.Field.campaign_id] = ad_set_id
adgroup[AdGroup.Field.creative] = creative
adgroup[AdGroup.Field.status] = AdGroup.Status.paused
adgroup.remote_create()
# _DOC close [ADGROUP_CREATE_INLINE_CREATIVE]
adgroup.remote_delete()
video_data = VideoData()
video_data[VideoData.Field.description] = 'My Description'
video_data[VideoData.Field.video_id] = video_id
video_data[VideoData.Field.image_url] = image_url
video_data[VideoData.Field.call_to_action] = {
'type': 'LIKE_PAGE',
'value': {
'page': page_id,
}
}
object_story_spec = ObjectStorySpec()
object_story_spec[ObjectStorySpec.Field.page_id] = page_id
object_story_spec[ObjectStorySpec.Field.video_data] = video_data
creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.name] = 'Video Ad Creative'
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()
# _DOC close [ADCREATIVE_CREATE_VIDEO_PAGE_LIKE_AD]
creative_id = fixtures.create_creative().get_id_assured()
# _DOC open [ADCREATIVE_DELETE]
# _DOC vars [creative_id]
from facebookads.objects import AdCreative
creative = AdCreative(creative_id)
creative.remote_delete()
# _DOC close [ADCREATIVE_DELETE]
}
adgroup.remote_create()
# _DOC close [ADGROUP_CREATE_TRACKING_MUSIC_LISTENS]
adgroup.remote_delete()
# _DOC open [ADGROUP_CREATE_INLINE_CREATIVE]
# _DOC vars [ad_account_id:s, image_hash:s, ad_set_id]
from facebookads.objects import AdCreative, AdGroup
# First, upload the ad image that you will use in your ad creative
# Please refer to Ad Image Create for details.
# Then, use the image hash returned from above
creative = AdCreative(parent_id=ad_account_id)
creative[AdCreative.Field.title] = 'My Test Creative'
creative[AdCreative.Field.body] = 'My Test Ad Creative Body'
creative[AdCreative.Field.object_url] = 'https://www.facebook.com/facebook'
creative[AdCreative.Field.image_hash] = image_hash
# Finally, create your ad along with ad creative.
# Please note that the ad creative is not created independently, rather its
# data structure is appended to the ad group
adgroup = AdGroup(parent_id=ad_account_id)
adgroup[AdGroup.Field.name] = 'My Ad'
adgroup[AdGroup.Field.campaign_id] = ad_set_id
adgroup[AdGroup.Field.creative] = creative
adgroup[AdGroup.Field.status] = AdGroup.Status.paused
adgroup.remote_create()
# _DOC close [ADGROUP_CREATE_INLINE_CREATIVE]
adgroup.remote_delete()
# _DOC vars [ad_account_id:s]
from facebookads.objects import AdAccount
account = AdAccount(ad_account_id)
objects = account.get_connection_objects()
for obj in objects:
print(obj[AdAccount.Field.name])
# _DOC close [ADACCOUNT_GET_CONNECTION_OBJECTS]
# _DOC open [ADACCOUNT_GET_ADCREATIVES]
# _DOC vars [ad_account_id:s]
from facebookads.objects import AdAccount, AdCreative
ad_account = AdAccount(fbid=ad_account_id)
ad_account.get_ad_creatives(fields=[AdCreative.Field.object_story_id])
# _DOC close [ADACCOUNT_GET_ADCREATIVES]
# _DOC open [ADACCOUNT_GET_ADGROUPS]
# _DOC vars [ad_account_id:s]
from facebookads.objects import AdAccount, AdGroup
ad_account = AdAccount(ad_account_id)
ad_groups = ad_account.get_ad_groups(fields=[AdGroup.Field.name])
for ad_group in ad_groups:
print(ad_group[AdGroup.Field.name])
# _DOC close [ADACCOUNT_GET_ADGROUPS]
# _DOC open [ADACCOUNT_GET_ADGROUPS_WITH_STATUS]
# _DOC vars [ad_account_id:s]
print("**** DONE: Ad Set created:")
pp.pprint(ad_set)
### Upload an image to an account.
img = AdImage(parent_id=my_account.get_id_assured())
img[AdImage.Field.filename] = os.path.join(
os.path.dirname(__file__),
os.pardir,
'facebookads/test/misc/image.png'
)
img.remote_create()
print("**** DONE: Image uploaded:")
pp.pprint(img) # The image hash can be found using img[AdImage.Field.hash]
### Create a creative.
creative = AdCreative(parent_id=my_account.get_id_assured())
creative.update({
AdCreative.Field.title: 'Visit Seattle',
AdCreative.Field.body: 'Beautiful Puget Sound!',
AdCreative.Field.object_url: 'http://www.seattle.gov/visiting/',
AdCreative.Field.image_hash: img.get_hash(),
})
creative.remote_create()
print("**** DONE: Creative created:")
pp.pprint(creative)
### Get excited, we are finally creating an ad!!!
ad = AdGroup(parent_id=my_account.get_id_assured())
ad.update({
AdGroup.Field.name: 'Puget Sound impression ad',
AdGroup.Field.campaign_id: ad_set.get_id_assured(),
AdGroup.Field.creative: {