0

私は、ダッシュボードに広告とその掲載結果を表示できるように、広告のインサイトと広告画像のURLを結びつけようとしています。したがって、「広告の洞察」データセットと「広告画像」データセットをマージする必要があります。私はそれらを別々に引き出す方法を知っていますが、どちらの列を2つのデータセットをマージするためのキー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」と「クリエイティブ」の外観は似ていますが、マージしても一致しません。

誰も以前にこの問題に対処していましたか?どんなインプット/思考でも大歓迎です!

答えて

0

広告イメージは、後で使用できるコンテンツの「ライブラリ」のように考える必要があります。特定のイメージを使用している広告が0個、1個以上ある可能性があるため、 、またはこのライブラリから画像を使用していない広告あなたの目的のためのデータモデルは、おそらく広告に設定する必要があり

- >広告 - >

広告クリエイティブクリエイティブの広告が促進されているものの詳細が含まれ、通常、ページに投稿すると、その投稿に「画像」フィールドが表示されます

+0

特定の広告で使用されていることがわかっている特定の画像に基づいてトラッキングしている場合は、自分のアプリで画像 - >広告リンクをトラッキングすることもできます。 – Igy

+1

広告画像と広告クリエイティブの違いを明確にしてください。私は2人の異なる目的に混乱しました。それは今よりずっと意味をなさない。 –

0

これは次の方法で行うことができます:

  1. あなたのような洞察がすでにad_id/insights
  2. が、私はそれが役に立てば幸いそして、あなたはcreative_id?fields=image_url

のような画像のURLを取得することができます

  • ad_id?fields=creativeのような創造を取得していなさい!

    0

    上記のご回答ありがとうございます。あなたは私に正しい方向を指摘しました。これまで私は自分自身の疑問を解決してくれました。

    # 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 
    

    これは、同じ質問に遭遇した場合に役立ちます。

    関連する問題