Example #1
0
def fetch_ad_data(ad_id):
    ad = Ad(ad_id)
    ad_datas = ad.get_insights(
        fields=[
            AdsInsights.Field.ad_id, AdsInsights.Field.spend,
            AdsInsights.Field.impressions, AdsInsights.Field.reach,
            AdsInsights.Field.unique_actions, AdsInsights.Field.ad_name
        ],
        params={
            'breakdowns': ['hourly_stats_aggregated_by_audience_time_zone'],
            'time_range': {
                'since': yesterday,
                'until': today
            }
        })
    for ad_data in ad_datas:
        print(ad_data)
        result = {}
        result['spend'] = ad_data['spend'] if 'spend' in ad_data else ''
        result['impression_count'] = ad_data['impressions'] if\
            'impressions' in ad_data else ''
        result['reach_count'] = ad_data['reach'] if 'reach' in ad_data else ''
        result['link_click_count'] = ad_data['link_click'] if\
            'link_click_count' in ad_data else ''
        result['ad_id'] = ad_data['ad_id'] if 'ad_id' in ad_data else ''
        result['stat_dt'] = ad_data['date_start']
        print(result['stat_dt'])
        result['stat_hour'] = \
            str(int(ad_data['hourly_stats_aggregated_by_audience_time_zone'][0:2]) + 1)
        try:
            for actions in ad_data['unique_actions']:
                if actions['action_type'] == 'link_click':
                    result['link_click_count'] = actions['value']
                if actions[
                        'action_type'] == 'offsite_conversion.fb_pixel_purchase':
                    result['effective_count'] = actions['value']
        except Exception as e:
            result['effective_count'] = ''
            result['link_click_count'] = ''
        result['create_time'] = datetime.datetime.now().strftime(
            "%Y-%m-%d %H:%M:%S")
        yield result
Example #2
0
    # Ad Initialization
    current_ad = Ad(ad["id"])
    status = ad["status"]

    fields = [
        'spend', 'clicks', 'ad_id', 'adset_id', 'account_id', 'campaign_id',
        'cost_per_unique_click', 'cpc', 'cpp', 'cpc', 'cpm', 'ctr',
        'date_start', 'date_stop', 'reach', 'frequency', 'impressions',
        'social_spend', 'unique_ctr', 'unique_clicks', 'ad_name'
    ]

    params = {'date_presets': 'lifetime'}

    # Get all insights above from current AD
    ad_insights = current_ad.get_insights(fields, params)

    if ad_insights:
        data = ad_insights[0]

        # IDS
        ad_id = data["ad_id"]
        adset_id = data["adset_id"]
        account_id = data["account_id"]
        campaign_id = data["campaign_id"]

        # TEXT
        ad_name = data["ad_name"]

        # DATE
        date_start = data["date_start"]