Api facebook ajuda

33 views
Skip to first unread message

Leonardo Smart - Trafego

unread,
Aug 11, 2021, 2:08:44 PM8/11/21
to PyTche
Salve pessoal

Estou desenvolvendo em Python uma API para puxar as métricas do Facebook ADS para uma planilha google, depois vamos levar isto para o DataStudio mas esta resolvido esta questão.

Bom vamos la, conseguimos puxar as informações que precisamos, mas segue os problemas que estamos enfrentando

1 - Sempre que puxamos as infos, elas vem em celular diferentes e nunca nas mesmas, preciso manter sempre nas mesmas

2 - algumas infos, vem com numero ( como preciso) e outras vem como exemplo a seguir.
purchase_roas - [{'action_type': 'omni_purchase', 'value': '2.894007'}]

Preciso de uma ajuda se alguem souber, empaquei nesta etapa e preciso finalizar este projeto vou enviar as linhas de programação a baixo, apenas nao terá os dados q estou usando.

------------------------------------------------------------------------------------------------------

from facebook_business.adobjects.adaccount import AdAccount
from facebook_business.adobjects.campaign import Campaign
from facebook_business.adobjects.adsinsights import AdsInsights
from facebook_business.api import FacebookAdsApi
from gspread_pandas import Spread, Client, conf
import pandas as pd
import datetime

from requests.api import post

app_id = 'info cliente'
app_secret = 'info cliente'
access_token = 'info cliente'
FacebookAdsApi.init(app_id, app_secret, access_token)
my_account = AdAccount('act_info cliente')

params = {
    'date_preset': 'this_month',
    'level': 'account',
}

fields = {
    AdsInsights.Field.account_id,
    AdsInsights.Field.account_name,
    AdsInsights.Field.action_values,
    AdsInsights.Field.actions,
    AdsInsights.Field.ad_id,
    AdsInsights.Field.ad_name,
    AdsInsights.Field.adset_id,
    AdsInsights.Field.adset_name,
    AdsInsights.Field.campaign_id,
    AdsInsights.Field.campaign_name,
    AdsInsights.Field.cost_per_action_type,
    AdsInsights.Field.cost_per_inline_link_click,
    AdsInsights.Field.cost_per_inline_post_engagement,
    AdsInsights.Field.cost_per_unique_click,
    AdsInsights.Field.cpm,
    AdsInsights.Field.cpp,
    AdsInsights.Field.ctr,
    AdsInsights.Field.date_start,
    AdsInsights.Field.date_stop,
    AdsInsights.Field.frequency,
    AdsInsights.Field.impressions,
    AdsInsights.Field.inline_link_clicks,
    AdsInsights.Field.inline_post_engagement,
    AdsInsights.Field.reach,
    AdsInsights.Field.spend,
    AdsInsights.Field.unique_clicks,
    AdsInsights.Field.unique_ctr,
    AdsInsights.Field.website_ctr
   

}



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

for i in response:
    df = pd.DataFrame({})
    for col in i:
        df1 = pd.DataFrame({col: [i[col]]})
        df = pd.concat([df, df1], axis=1, sort=False)
    
print(response) 
print(df)

c = conf.get_config(
    "local aonde esta o arquivo","credentials.json")

spread = Spread("nome planilha", config=c)
spread.df_to_sheet(
    df, index=False, sheet='account', start='A1', replace=True)
Reply all
Reply to author
Forward
0 new messages