如何使用 python post 将广告集投放到 Facebook 营销 api

How to post an adset to Facebook Marketing api using python

我正在尝试 post 使用 python sdk 将广告集添加到 facebook 营销 api。

我遇到了这个错误。

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 中 post 广告集?

这与您的处理方式略有不同,但我发现在 AdAccount class 级别执行所有“创建”操作要容易得多,无论您是否正在创建活动、广告集或广告。这是我创建的用于创建新广告集的函数,假设您要在其中创建它的广告系列已经存在:

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']

经过反复试验,我确定这些是成功创建广告集所需的所有参数。您显然可以在函数参数中编辑它们或添加更多内容。可以找到您的选项 here 以方便参考。