2017-01-14 11 views
0

特定の期間内に配信されたキャンペーンのリストを取得したいとします。ある期間内にすべてのキャンペーンのリストを取得できますが、フィルタリングする方法を理解する上で助けが必要です。ここでFacebookの広告キャンペーンを配信してPythonで配信する広告キャンペーン

は私の現在のコードです:

FacebookAdsApi.init(my_app_id, my_app_secret, my_access_token) 

my_account = objects.AdAccount('act_XXXXXXXXXXXXX') 
print my_account 


today = datetime.date.today() 
threeDaysAgo = today - timedelta(days=3) 


#get list of campaigns from FB 
cparams = { 
    #'effective_status':['ACTIVE'], 
    'time_range': { 
     'since': threeDaysAgo.__str__(), 
     'until': today.__str__() 
    } 
} 
clist = my_account.get_campaigns(params=cparams) 

これは私の時間範囲の間のすべてのキャンペーンを取得します。しかし、私は納品したものだけを入手する必要があります。どうすればいいの?

答えて

0

私はそうするために一つの方法を考え出しました - 洞察力のエッジを使用してください。洞察を超える

fields = [ 
    Insights.Field.campaign_id, 
    Insights.Field.campaign_name, 
    Insights.Field.spend, 
] 

today = datetime.date.today() 
threeDaysAgo = today - timedelta(days=3) 
params = { 
    'time_range': {'since': threeDaysAgo.__str__(), 'until': today.__str__()}, 
    'level': 'campaign', 
    'limit': 100 
} 

insights = my_account.get_insights(fields=fields, params=params) 

その後、我々はできるループ - キャンペーンのIDを取得する:ここで

はどのようにある

for i in insights: 
    print "Processing ..." + i['campaign_id'] 
    cid = i['campaign_id'] 

をして、キャンペーンやデータと私たちが望むどのような方法で処理します.. 。

campaign = Campaign(cid + "") 

と...

campaign.remote_read(fields=[ 
      Campaign.Field.name, 
      Campaign.Field.effective_status, 
      Campaign.Field.objective, 
     ]) 

希望します。

関連する問題