def create_campaign(self, account_id, name):
     """
     create a campaign
     """
     campaign = Campaign(parent_id=account_id)
     campaign.update({
         Campaign.Field.name: name,
         Campaign.Field.objective: 'APP_INSTALLS',
         })
     campaign.remote_create(params={
         'status': Campaign.Status.paused
     })
     return campaign
Пример #2
0
def create_campaign(params=None):
    if params is None:
        params = {}

    campaign = Campaign(parent_id=test_config.account_id)
    campaign[Campaign.Field.name] = unique_name('Test Campaign')
    campaign[Campaign.Field.buying_type] = Campaign.BuyingType.auction
    campaign[Campaign.Field.objective] = Campaign.Objective.link_clicks
    campaign['status'] = Campaign.Status.paused

    campaign.update(params)
    campaign.remote_create()

    atexit.register(remote_delete, campaign)

    return campaign
	def create_campaign(self, fb_account_id, logger):
		""" You must create campaign under one fb_account"""
		try:
			campaign = Campaign(parent_id='act_' + str(fb_account_id))
			campaign.update({
				Campaign.Field.name: 'my_test_campaign',
				# for mobile app install ads
				Campaign.Field.objective: Campaign.Objective.mobile_app_installs,
				## for website conversion ads
				#Campaign.Field.objective: Campaign.Objective.website_clicks,
				Campaign.Field.status: Campaign.Status.paused,
				Campaign.Field.buying_type: Campaign.BuyingType.auction,
			})
			campaign.remote_create()
			return int(campaign[Campaign.Field.id])

		except Exception as e:
			logger.exception(e)
	def update_campaign_name(self, fb_campaign_id, new_campaign_name, logger):
		""" Update fb campaign"""
		try:
			campaign = Campaign(str(fb_campaign_id))

			# You may read campaign field first, not necessary
			campaign.remote_read(fields=[
				Campaign.Field.id,
				Campaign.Field.status,
			])
			if campaign[Campaign.Field.status] == 'ARCHIVED':
				logger.error('cpid[%d] in ARCHIVED status, no update' % fb_campaign_id)
				return

			campaign.update({
				Campaign.Field.name: new_campaign_name,
			})
			campaign.remote_update()

		except Exception as e:
			logger.exception(e)
# 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

ad_account_id = test_config.account_id
page_id = fixtures.get_page_with_locations_id_assured()

# _DOC oncall [pruno]
# _DOC open [ADCAMPAIGN_CREATE_DLA]
# _DOC vars [ad_account_id:s, page_id]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'Local Awareness Campaign',
    Campaign.Field.objective: Campaign.Objective.local_awareness,
    Campaign.Field.promoted_object: {
        'page_id': page_id,
    },
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
# _DOC close [ADCAMPAIGN_CREATE_DLA]

campaign.remote_delete()
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC open [ADCAMPAIGN_CREATE_VIDEO_VIEWS]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'Video Views Campaign',
    Campaign.Field.objective: Campaign.Objective.video_views,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
print(campaign)
# _DOC close [ADCAMPAIGN_CREATE_VIDEO_VIEWS]

campaign.remote_delete()
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC oncall [pruno]
# _DOC open [ADCAMPAIGN_CREATE_CONVERSIONS]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'Conversions Campaign',
    Campaign.Field.objective: Campaign.Objective.conversions,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
# _DOC close [ADCAMPAIGN_CREATE_CONVERSIONS]

campaign.remote_delete()
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC open [ADCAMPAIGN_CREATE_WITH_ADVANCED_OBJECTIVE]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'My First Campaign',
    Campaign.Field.objective: Campaign.Objective.post_engagement,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
print(campaign)
# _DOC close [ADCAMPAIGN_CREATE_WITH_ADVANCED_OBJECTIVE]

campaign.remote_delete()
if __name__ == '__main__':
    FacebookAdsApi.set_default_api(api)

    print('\n\n\n********** Ad Creation example. **********\n')

    ### Setup user and read the object from the server
    me = AdUser(fbid='me')

    ### Get first account connected to the user
    my_account = me.get_ad_account()
    ### Create a Campaign
    campaign = Campaign(parent_id=my_account.get_id_assured())
    campaign.update({
        Campaign.Field.name: 'Seattle Ad Campaign',
        Campaign.Field.objective: 'LINK_CLICKS',
        Campaign.Field.effective_status: Campaign.Status.paused,
    })
    campaign.remote_create()
    print("**** DONE: Campaign created:")
    pp.pprint(campaign)

    ### Create an Ad Set
    ad_set = AdSet(parent_id=my_account.get_id_assured())
    ad_set.update({
        AdSet.Field.name: 'Puget Sound AdSet',
        AdSet.Field.effective_status: AdSet.Status.paused,
        AdSet.Field.daily_budget: 3600,  # $36.00
        AdSet.Field.billing_event: 'IMPRESSIONS',  # $36.00
        AdSet.Field.is_autobid: 'true',  # $36.00
        AdSet.Field.start_time: int(time.time()) + 15,  # 15 seconds from now
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC oncall [pruno]
# _DOC open [ADCAMPAIGN_CREATE_MAIA]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'Mobile App Installs Campaign',
    Campaign.Field.objective: Campaign.Objective.mobile_app_installs,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
# _DOC close [ADCAMPAIGN_CREATE_MAIA]

campaign.remote_delete()
# 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 facebookads import test_config
from facebookads.objects import Campaign

ad_account_id = test_config.account_id
objective = Campaign.Objective.page_likes

# _DOC open [ADCAMPAIGN_CREATE_WITH_SIMPLE_OBJECTIVE]
# _DOC vars [ad_account_id:s, objective:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'My First Campaign',
    Campaign.Field.objective: objective,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
print(campaign)
# _DOC close [ADCAMPAIGN_CREATE_WITH_SIMPLE_OBJECTIVE]

campaign.remote_delete()
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC oncall [pruno]
# _DOC open [ADCAMPAIGN_CREATE]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'My Campaign',
    Campaign.Field.objective: Campaign.Objective.link_clicks,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
# _DOC close [ADCAMPAIGN_CREATE]

campaign.remote_delete()
# 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 facebookads import test_config

ad_account_id = test_config.account_id

# _DOC open [ADCAMPAIGN_CREATE_LOCAL_AWARENESS]
# _DOC vars [ad_account_id:s]
from facebookads.objects import Campaign

campaign = Campaign(parent_id=ad_account_id)
campaign.update({
    Campaign.Field.name: 'Local awareness campaign',
    Campaign.Field.objective: Campaign.Objective.local_awareness,
})

campaign.remote_create(params={
    'status': Campaign.Status.paused,
})
# _DOC close [ADCAMPAIGN_CREATE_LOCAL_AWARENESS]

campaign.remote_delete()