Как опубликовать рекламу в Facebook Marketing API с помощью python

Я пытаюсь опубликовать рекламу в Facebook Marketing API, используя Python SDK.

Я получаю эту ошибку.

FacebookBadObjectError: This AdSet object was already created.

Из этой строки:

adset.remote_create(params={'status': 'PAUSED'})

Вот функция:

adset = AdSet(campaign_result["id"])
adset.update({
    'name': 'test adset ex_2',
    'campaign_id': campaign_result["id"],
    'daily_budget': 150,
    'billing_event': 'IMPRESSIONS',
    'optimization_goal': 'REACH',
    'bid_amount': 10,
    'targeting': {'geo_locations': {'countries': ['US']},
                  'publisher_platforms': ['facebook']},
    'start_time': start_time,
    'end_time': end_time
})

adset.remote_create(params={'status': 'PAUSED'})

Документация не распространяется на это. Я следую этому руководству: https://medium.com/@gokhang1327/publishing-facebook-ads-with-python-step-by-step-5c2a98ee4d58 С этим кодом: https://github.com/gokhangerdan/publish_facebook_ads/blob/master/script.py

Мои параметры работают в проводнике графа API.

Как я могу опубликовать рекламу в python?


person Tony Wheeler    schedule 15.06.2020    source источник


Ответы (1)


Это немного отличается от того, как вы это делали, но я обнаружил, что гораздо проще выполнять все действия по созданию на уровне класса AdAccount, независимо от того, создаете ли вы кампанию, группу объявлений или объявление. Это функция, которую я создал для создания новых групп объявлений, при условии, что кампания, в которой вы хотите ее создать, уже существует:

my_adaccount = AdAccount([INSERT AD ACCOUNT ID HERE])
    
def create_ad_set(name, campaign_id, optimization_goal, status, daily_budget, billing_event, targeting, bid_strategy):
        params = {
            'name': name,
            'campaign_id': campaign_id,
            'optimization_goal': optimization_goal,
            'status': status,
            'daily_budget': daily_budget,
            'billing_event': billing_event,
            'targeting': targeting,
            'bid_strategy': bid_strategy
        }
        response = my_adaccount.create_ad_set(params=params)
        print(response)
        newest_adset = response['id']

После множества проб и ошибок я пришел к выводу, что это все необходимые параметры для успешного создания группы объявлений. Очевидно, вы можете отредактировать их или добавить больше, как вам нравится, в аргументах функции. Ваши варианты можно найти здесь для удобства.

person Jadin Press    schedule 10.07.2020