所以我试图从Facebook API获取广告及其各自的图像。到目前为止,我设法获得广告,现在我试图获得该广告的广告素材,但我每次尝试都失败了。
FacebookAdsApi.init(access_token=access_token)
fields = [
'ad_id',
'ad_name',
'impressions',
'clicks',
'spend',
'campaign_name',
'reach',
'relevance_score'
]
params = {
'time_range': {'since': date,'until': date},
'filtering': [],
'level': 'ad',
'breakdowns': [],
}
data = AdAccount(ad_account_id).get_insights(
fields=fields,
params=params,
)
creativeFields = [
'image_url',
'link_url',
'preview_url',
'template_url'
]
vecData = []
for n in data:
ad = Ad(str(n._data[str('ad_id')]))
creatives = ad.get_ad_creatives(fields=creativeFields)
print(creatives)
有关如何获取特定广告的广告素材的图片网址的任何想法?
答案 0 :(得分:0)
我的解决方案不是最好的,但它有效!
creativeFields = [
'thumbnail_url',
]
vecData = []
for n in data:
ad = Ad(str(n._data[str('ad_id')]))
creatives = ad.get_ad_creatives(fields=creativeFields)
parsed = urlparse.urlparse(creatives[0][AdCreative.Field.thumbnail_url])
img = urlparse.parse_qs(parsed.query)['url'][0].replace('u\'','').replace('\'','')
基本上我发现我能够检索缩略图的网址,这个网址有参数' url'原始图片所以我从那里拿走了它。
希望它有所帮助!
答案 1 :(得分:0)
要检索图像的网址,首先必须从广告素材对象故事规范中获取图片哈希。
请求广告素材时请求对象故事规范:
creativeFields = [
'image_url',
'link_url',
'preview_url',
'template_url',
'object_story_spec'
]
从对象故事规范中提取所需的image_hash。以下示例适用于包含一张图片的广告。
imageHash = creatives[0]['object_story_spec']['link_data']
然后从广告帐户请求永久网址获取图片哈希。
fields = ['id','permalink_url','name']
params = {'hashes':[imageHash]}
imageHashes = AdAccount(ad_account_id).getAdImages(
fields=fields,
params=params,
)
print(imageHashes)
我无法测试上面的代码,但它应该能为您提供图像。