Ejemplo n.º 1
0
def create_new_ad(adset, image_hash):

    link_data = AdCreativeLinkData()
    link_data[AdCreativeLinkData.Field.message] = '“Like” to find ways to help man’s best friend.'
    link_data[AdCreativeLinkData.Field.link] = 'https://www.facebook.com/caltech.clickmaniac'
    link_data[AdCreativeLinkData.Field.image_hash] = image_hash

    object_story_spec = AdCreativeObjectStorySpec()
    object_story_spec[AdCreativeObjectStorySpec.Field.page_id] = my_page_id
    object_story_spec[AdCreativeObjectStorySpec.Field.link_data] = link_data


    creative = AdCreative(parent_id=my_ad_account_id)
    creative[AdCreative.Field.name] = 'SDK Creative 1'
    creative[AdCreative.Field.object_story_spec] = object_story_spec

    # 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
    ad = Ad(parent_id=my_ad_account_id)
    ad[Ad.Field.name] = 'SDK Dog Ad 1'
    ad[Ad.Field.adset_id] = adset[AdSet.Field.id]
    ad[Ad.Field.creative] = creative
    ad[Ad.Field.status] = Ad.Status.active
    ad.remote_create()
    pass
def create_new_ad_set():
    """
    Creating a new ad set for the ad account

    You can use the adset.update method specified here:
    https://developers.facebook.com/docs/marketing-api/reference/ad-campaign
    """
    adset = AdSet(parent_id=my_ad_account_id)
    """
    UPDATE/CREATE ADSET HERE
    """
    adset[AdSet.Field.campaign_id] = my_campaign_id
    adset[AdSet.Field.name] = 'Toast_competition'
    adset[AdSet.Field.promoted_object] = {
        'page_id': my_page_id,
    }
    adset[AdSet.Field.billing_event] = "IMPRESSIONS"
    adset[AdSet.Field.daily_budget] = 200
    adset[AdSet.Field.is_autobid] = True

    adset[AdSet.Field.targeting] = {
        'geo_locations': {
            'countries': ['IN']
        },
        'genders': [0],
        'age_min': 18,
        'age_max': 40,
        'interests': []
    }

    adset.remote_create()

    image = AdImage(parent_id=my_ad_account_id)
    image[AdImage.Field.filename] = "dog_ads/3.jpg"
    image.remote_create()
    image_hash = image[AdImage.Field.hash]

    creative = AdCreative(parent_id=my_ad_account_id)
    creative[AdCreative.Field.title] = 'Puppy Love'
    creative[AdCreative.Field.
             body] = '"Like" to find ways to help man\'s best friend.'
    creative[AdCreative.Field.object_id] = my_page_id
    # creative[AdCreative.Field.object_url] = 'https://www.facebook.com/caltech.clickmaniac/'
    creative[AdCreative.Field.image_hash] = image_hash

    ad = Ad(parent_id=my_ad_account_id)
    ad[Ad.Field.name] = 'Pos'
    ad[Ad.Field.adset_id] = adset[AdSet.Field.id]
    ad[Ad.Field.creative] = creative

    ad.remote_create(params={
        'status': Ad.Status.active,
    })
    return adset
Ejemplo n.º 3
0
    def schedule_ads(self, act_id, ad_name, ad_set_id, creative_id):
        ad = Ad(parent_id='act_{}'.format(act_id))
        ad[Ad.Field.name] = ad_name
        ad[Ad.Field.adset_id] = ad_set_id
        ad[Ad.Field.creative] = {
            'creative_id': creative_id,
        }
        ad.remote_create(params={
            'status': Ad.Status.paused,
        })

        return ad
Ejemplo n.º 4
0
def create_ad(account_id, adset_id, creative_id, name):
    from facebookads.adobjects.ad import Ad

    ad = Ad(parent_id=account_id)
    ad[Ad.Field.name] = name
    ad[Ad.Field.adset_id] = adset_id
    ad[Ad.Field.creative] = {
        'creative_id': creative_id,
    }
    ad.remote_create(params={
        'status': Ad.Status.paused,
    })
    return ad
Ejemplo n.º 5
0
def create_ad(request, adsetid):
    FacebookAdsApi.init(access_token=access_token,
                        app_id=app_id,
                        app_secret=app_secret)

    my_account = AdAccount('act_' + user_id)

    ad = Ad(parent_id=my_account.get_id_assured())

    ad[Ad.Field.name] = 'My Ad'
    ad[Ad.Field.adset_id] = adsetid
    ad[Ad.Field.creative] = {
        'creative_id': "creative",
    }
    ad.remote_create(params={
        'status': Ad.Status.paused,
    })

    return redirect('view-ad')
Ejemplo n.º 6
0
from facebookads.adobjects.ad import Ad
import header
import link_ad as created_ad

ad = Ad(parent_id=header.my_account['id'])
ad[Ad.Field.name] = 'My Ad'
ad[Ad.Field.adset_id] = created_ad.create_adset.adset['id']
ad[Ad.Field.creative] = {
    'creative_id': link_ad.creative['id'],
}
ad.remote_create(params={
    'status': Ad.Status.paused,
})
creative = AdCreative(parent_id=my_parent_id)
creative[AdCreative.Field.name] = 'AdCreative for Link Ad'
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()
creative_id = creative.get_id()

# The Actual Ad
ad = Ad(parent_id=my_parent_id)
# alternate way to specify parameters, could have also used params dictionary like in the Campaign or AdSet creation
ad[Ad.Field.name] = ad_name
ad[Ad.Field.adset_id] = ad_set_id
ad[Ad.Field.creative] = {
    'creative_id': creative_id,
}
ad.remote_create(params={
    'status': ad_status,
})

########### List Campaigns #############

print '\nCurrent Campaigns:'
my_campaigns = list(my_account.get_campaigns())

for each_campaign in my_campaigns:
    data = each_campaign.remote_read(fields=[
        objects.Campaign.Field.name, objects.Campaign.Field.status,
        objects.Campaign.Field.created_time, objects.Campaign.Field.objective,
        objects.Campaign.Field.effective_status
    ])
    print data
def create_multiple_website_clicks_ads(
    account,

    name,
    country,

    titles,
    bodies,
    urls,
    image_paths,

    optimization_goal,
    pixel_id,
    billing_event,
    bid_amount,
    daily_budget=None,
    lifetime_budget=None,
    start_time=None,
    end_time=None,

    age_min=None,
    age_max=None,
    genders=None,

    campaign=None,
    status=AdSet.Status.paused,
):
    # Check for bad specs
    if daily_budget is None:
        if lifetime_budget is None:
            raise TypeError(
                'One of daily_budget or lifetime_budget must be defined.'
            )
        elif end_time is None:
            raise TypeError(
                'If lifetime_budget is defined, end_time must be defined.'
            )

    # Create campaign
    if campaign:
        campaign = Campaign(fbid=campaign)[Campaign.Field.id]
    else:
        campaign = Campaign(parent_id=account)
        campaign[Campaign.Field.name] = name + ' Campaign'
        campaign[Campaign.Field.objective] = \
            Campaign.Objective.conversions
        campaign[Campaign.Field.status] = \
            Campaign.Status.active if not status \
            else Campaign.Status.paused
        campaign.remote_create()
        campaign = campaign[AdSet.Field.id]

    # Create ad set
    ad_set = AdSet(parent_id=account)
    ad_set[AdSet.Field.campaign_id] = campaign
    ad_set[AdSet.Field.name] = name + ' AdSet'
    ad_set[AdSet.Field.optimization_goal] = optimization_goal
    ad_set[AdSet.Field.promoted_object] = {
        'pixel_id': pixel_id,
        'custom_event_type': 'COMPLETE_REGISTRATION'

    }
    ad_set[AdSet.Field.billing_event] = billing_event
    ad_set[AdSet.Field.bid_amount] = bid_amount

    if daily_budget:
        ad_set[AdSet.Field.daily_budget] = daily_budget
    else:
        ad_set[AdSet.Field.lifetime_budget] = lifetime_budget
    if end_time:
        ad_set[AdSet.Field.end_time] = end_time
    if start_time:
        ad_set[AdSet.Field.start_time] = start_time
    targeting = {}
    targeting[Targeting.Field.geo_locations] = {
        'countries': [country]
    }
    if age_max:
        targeting[Targeting.Field.age_max] = age_max
    if age_min:
        targeting[Targeting.Field.age_min] = age_min
    if genders:
        targeting[Targeting.Field.genders] = genders
    ad_set[AdSet.Field.targeting] = targeting

    ad_set.remote_create()

    # Upload the images first one by one
    image_hashes = []
    for image_path in image_paths:
        img = AdImage(parent_id=account)
        img[AdImage.Field.filename] = image_path
        img.remote_create()
        image_hashes.append(img.get_hash())

    ADGROUP_BATCH_CREATE_LIMIT = 10
    ad_groups_created = []

    def callback_failure(response):
        raise response.error()

    # For each creative permutation
    for creative_info_batch in generate_batches(
        itertools.product(titles, bodies, urls, image_hashes),
        ADGROUP_BATCH_CREATE_LIMIT
    ):
        api_batch = api.new_batch()

        for title, body, url, image_hash in creative_info_batch:
            # Create the ad
            ad = Ad(parent_id=account)
            ad[Ad.Field.name] = name + ' Ad'
            ad[Ad.Field.adset_id] = ad_set[AdSet.Field.id]
            ad[Ad.Field.creative] = {
                AdCreative.Field.title: title,
                AdCreative.Field.body: body,
                AdCreative.Field.object_url: url,
                AdCreative.Field.image_hash: image_hash,
            }
            ad[Ad.Field.status] = status

            ad.remote_create(batch=api_batch, failure=callback_failure)
            ad_groups_created.append(ad)

        api_batch.execute()

    return ad_groups_created
Ejemplo n.º 9
0
def create_new_ad_set():
    """
    Create a new adset
    """
    ad_account = AdAccount(fbid=my_ad_account_id)
    
    """
    Create and update your ad set here
    """
#https://developers.facebook.com/docs/marketing-api/reference/ad-campaign
    params = {
        AdSet.Field.name: 'joon_SDK_competition',
        AdSet.Field.promoted_object: {
            'page_id': my_page_id,
        },
        AdSet.Field.campaign_id: my_campaign_id,
        AdSet.Field.is_autobid: True,
        AdSet.Field.start_time: 1520560800, 
        AdSet.Field.end_time: 1520701200,
        AdSet.Field.daily_budget: 200,
        AdSet.Field.billing_event: AdSet.BillingEvent.impressions,
        AdSet.Field.optimization_goal: AdSet.OptimizationGoal.page_likes,
# https://developers.facebook.com/docs/marketing-api/targeting-specs
        AdSet.Field.targeting: {
            'geo_locations': {
                'countries': ['IN', 'ID'],
            },
            'age_min': 13,
            'age_max': 35,
            'flexible_spec': [
                {
            
                    'interests': [
                        {
                            'id': 6003332344237 ,
                            'name': 'Dogs',
                        },
                        {
                            'id': 6004037726009,
                            'name': 'Pets',
                        },
                        {
                            'id': 6003266061909,
                            'name': 'Food',
                        },
                        {
                            'id': 6003156370433,
                            'name': 'Cute Animals',
                        },
                        {
                            'id': 625163160959478,
                            'name': 'Adorable Animals',
                        },

                    ],
                },
            ]
        },
        AdSet.Field.status: AdSet.Status.active,
    }
    adset = ad_account.create_ad_set(params=params)



    image = AdImage(parent_id=my_ad_account_id)
    image[AdImage.Field.filename] = '/Users/deriknguyen/Desktop/CS144/clickmaniac/dog_ads/3.jpg'
    image.remote_create()

    # Output image Hash
    image_hash = image[AdImage.Field.hash]

    # First, upload the ad image that you will use in your ad creative
    # Please refer to Ad Image Create for details.

    link_data = AdCreativeLinkData()
    link_data[AdCreativeLinkData.Field.message] = '"Like" to find ways to help man\'s best friend.'
    link_data[AdCreativeLinkData.Field.name] = 'Puppy Love'
    link_data[AdCreativeLinkData.Field.link] = 'http://www.facebook.com/caltech.clickmaniac'
    link_data[AdCreativeLinkData.Field.image_hash] = image_hash

    # Then, use the image hash returned from above
    object_story_spec = AdCreativeObjectStorySpec()
    object_story_spec[AdCreativeObjectStorySpec.Field.page_id] = my_page_id
    object_story_spec[AdCreativeObjectStorySpec.Field.link_data] = link_data
    

    creative = AdCreative(parent_id='my_ad_account_id')
    # creative[AdCreative.Field.title] = 'Puppy Love'
    # creative[AdCreative.Field.body] = 'Cats are one of the deadliest local predators of birds. "Like" this post if you agree they\'re overated!'
    # creative[AdCreative.Field.link_url] = 'http://www.facebook.com/caltech.clickmaniac'
    # creative[AdCreative.Field.image_hash] = image_hash

    creative[AdCreative.Field.object_story_spec] = object_story_spec
    

    # 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
    ad = Ad(parent_id=my_ad_account_id)
    ad[Ad.Field.name] = 'joon_dog_pos_competition'
    ad[Ad.Field.adset_id] = adset[AdSet.Field.id]
    ad[Ad.Field.creative] = creative
    ad.remote_create(params={
        'status': Ad.Status.active,
    })
    return adset
Ejemplo n.º 10
0
    'value': {
        'link': url,
    },
}
link_data[AdCreativeLinkData.Field.call_to_action] = call_to_action

object_story_spec = AdCreativeObjectStorySpec()
object_story_spec[AdCreativeObjectStorySpec.Field.page_id] = page_id_facebook
object_story_spec[AdCreativeObjectStorySpec.Field.link_data] = link_data

creative = AdCreative(parent_id=account_publicitaire)
creative[AdCreative.Field.url_tags] = "vos balises utm ici"
creative[AdCreative.Field.object_story_spec] = object_story_spec
creative.remote_create()

ad = Ad(parent_id=account_publicitaire)
ad[Ad.Field.name] = variable + ' Ad'
ad[Ad.Field.adset_id] = ad_set[AdSet.Field.id]
ad[Ad.Field.tracking_specs] = {
    'action.type': 'offsite_conversion',
    'fb_pixel': YOURFACEBOOKPIXEL
}
ad[Ad.Field.creative] = {
    'creative_id': creative['id'],
}
ad.remote_create(params={
    'status': Ad.Status.active,
})

print('Campaign successfully created, congrats!')