如何将广告图片与广告见解链接? (Facebook Ads Python SDK)

问题描述:

我试图将广告洞察与广告图片网址相关联,以便我可以在信息中心中展示广告及其效果。因此,我需要将“广告洞察”数据集与“广告图片”数据集合并。我知道如何分别提取它们,但不知道哪个列可以用作键ID列来合并两个数据集。 (请注意,可通过比我下面所使用的那些API的多了很多领域。)如何将广告图片与广告见解链接? (Facebook Ads Python SDK)

深入了解:

insights = account.get_insights(fields=[ 
    AdsInsights.Field.date_start, 
    AdsInsights.Field.ad_id, 
    AdsInsights.Field.ad_name, 
    AdsInsights.Field.impressions, 
    AdsInsights.Field.clicks, 
    AdsInsights.Field.inline_post_engagement, 
    AdsInsights.Field.video_10_sec_watched_actions, 
    # AdsInsights.Field.canvas_avg_view_time, 
], params={ 
    'level': AdsInsights.Level.ad, 
    'breakdowns': 'publisher_platform', 
    'time_range': {'since': str(datetime.date(2017,1,15)), 'until': str(datetime.date(2017,1,21))}, 
}) 

广告洞察输出例如:

<AdsInsights> { 
    "ad_id": "6074251934453", 
    "ad_name": "Post 185|Campaign|Video|:15 Video|Chloe Ombre Legging|Womens|11.11|Gap|Holiday|Marcom|GapFit|On-figure", 
    "clicks": "80", 
    "date_start": "2017-01-15", 
    "date_stop": "2017-01-21", 
    "impressions": "29898", 
    "inline_post_engagement": "65", 
    "publisher_platform": "instagram", 
    "video_10_sec_watched_actions": [ 
     { 
      "action_type": "video_view", 
      "value": "2342" 
     } 
    ] 
} 

获取图像:

images = account.get_ad_images(fields=[ 
    AdImage.Field.account_id, 
    AdImage.Field.created_time, 
    AdImage.Field.creatives, 
    AdImage.Field.permalink_url, 
], params = { 
    'time_range': {'since': str(datetime.date(2017,1,15)), 'until': str(datetime.date(2017,1,21))} 
}) 

广告图像输出例如:

<AdImage> { 
    "account_id": "104181146376574", 
    "created_time": "2017-03-08T10:45:57-0800", 
    "creatives": [ 
     "6079059384653", 
     "6079059384853", 
     "6079059387253" 
    ], 
    "id": "104181146376574:d2d60f26e67d99e6869c9b8444a3b30c", 
    "permalink_url": "https://www.facebook.com/ads/image/?d=AQIY0GjCTF9UUMExzqq2QAI3hFKgmObAyivAwfb346WgnzAIiysmGLjU_msd1pJcVxcr4zawWXHsiRviQjrW50lqTXxq3to6CQIQFLptp9DZ9Kanqx0tmFqoIB1_37PLqjGo7cK1bt6G2YxaL29ihdge" 
} 

'ad_id'和'creatives'看起来相似,但在尝试合并之后没有任何匹配。

以前任何人有过处理这个问题的经验吗?任何输入/思想将非常感谢!

广告图像应该被认为更像是以后可以使用的内容库,不要试图将Insights重新关联到此,因为可能会有0个,1个或多个使用特定图像的广告,或者不使用的图像从该库中的广告

你的目的的数据模型也许应该是广告设置 - >广告 - >广告创意

广告内容中含有的什么所宣传的细节,这通常是一个发布在页面上,该帖子有'图片'字段

+0

如果您基于特定图片进行跟踪,并且您可以在自己的应用中跟踪该图片 - >广告链接 – Igy

+1

感谢您澄清广告图片和广告素材之间的差异;我对这两者的不同目的感到困惑。现在它变得更有意义。 –

您可以通过以下方式执行此操作:

  1. 获取的信息,比如你已经有ad_id/insights
  2. 得到像creative_id?fields=image_url

创意就像ad_id?fields=creative

  • 然后你就可以得到图像的URL我希望帮助!

  • 谢谢你们上面的答案,你指出我正确的方向。这是我解决我自己的问题,这一直很大,到目前为止:

    # get insights 
    insights = account.get_insights(fields=[ 
        AdsInsights.Field.date_start, 
        AdsInsights.Field.ad_id, 
        AdsInsights.Field.ad_name, 
        AdsInsights.Field.impressions 
    ], params={ 
        'level': AdsInsights.Level.ad, 
        'time_range': {'since': str(datetime.date(2017, 3, 31)), 'until': str(datetime.date(2017, 3, 31))} 
        'time_increment': 1 
    }) 
    
    # get a list of ad ids 
    insights_ids = [insight['ad_id'] for insight in insights] 
    
    url_list = [] 
    count = 0 
    
    for ad_id in insights_ids: 
        ad = Ad(fbid=ad_id) 
        # get creative by ad_id 
        adcreatives = ad.get_ad_creatives(fields=[ 
         AdCreative.Field.thumbnail_url, 
         AdCreative.Field.body 
        ]) 
        count += 1 
        print count 
        url_dict = {'ad_id': ad_id, 
           'thumbnail_url': adcreatives[0]['thumbnail_url'] 
           } 
        url_list.append(url_dict) 
        time.sleep(2) # will likely hit rate limit when set to 1 sec 
    

    希望这有助于谁遇到同样的问题!