Meta Ads
Facebook e Instagram pagos. Você entra com a sua conta da Meta, marca quais contas de anúncio são deste workspace, e pronto. Não há nada para digitar e nada para pedir ao suporte da Meta.
Começar
Conectarlogin da Meta, sem digitar nada
Em Fontes · Conectar nova fonte · Meta Ads, clique no cartão. Abre uma janela do Facebook, você entra e aprova. Se nada acontecer ao clicar, é bloqueador de pop-up.
Depois o caOS pergunta Quais contas são deste workspace?, com tudo pré-marcado. Marque as suas e confirme. Falta só a tag.
Desmarque o que não é seu. A autorização enxerga tudo que a pessoa que clicou alcança na Meta, e numa agência isso é a carteira inteira. Já houve workspace novo nascendo com quase cem contas de outra empresa. O que você não marcar não entra, e nada é alterado do lado da Meta.
Quem clica define o que aparece. A lista sai do acesso daquela pessoa. Se ela não enxerga a conta no Gerenciador de Anúncios, não vai enxergar aqui. Escolha antes quem vai conectar.
Sua credencial, e o que acontece com ela
Conectou uma vez, está conectado. A credencial se renova sozinha, indefinidamente. Você não precisa marcar data no calendário nem reconectar de tempos em tempos.
Só existe um jeito de a conexão cair: alguém revogar o acesso do lado da plataforma (senha trocada, pessoa removida da conta, autorização cancelada). Aí a conta aparece em Conexões perdidas e reconectar resolve, com as tags que ela já tinha.
A credencial fica cifrada de ponta a ponta. Ela é cifrada antes de ser gravada, e a chave não vive no banco: nem quem tem acesso ao banco lê o valor. Ninguém no caOS, nem você, vê a credencial de volta depois de salva; a tela mostra apenas que ela existe e está válida.
Só é lida a métrica que você pediu. O caOS não escreve na sua conta de anúncio para extrair dados, e não guarda dado pessoal de quem viu o anúncio. O tratamento segue a LGPD, e a exclusão é sua: revogar a conexão apaga a credencial guardada.
Referência
Métricas e dimensõeso que cada campo quer dizer
A tabela de desempenho traz 110 campos. Você não precisa conhecer todos: abaixo estão os que aparecem em relatório de verdade, com o nome que eles ganham no Pacer e na planilha.
Métricas principais13 de 110
| Campo na API | O que é | Onde aparece |
|---|---|---|
| spend | Quanto foi investido, já na moeda da conta. | Investimento no Pacer. Coluna spend na planilha. |
| impressions | Quantas vezes o anúncio foi exibido. | Impressões. |
| clicks | Todos os cliques, inclusive os que não vão para o site. | Cliques. Para clique que sai para o site, use inline_link_clicks. |
| reach | Pessoas diferentes que viram o anúncio. | Alcance. Não some entre dias nem entre anúncios: a mesma pessoa contaria duas vezes. |
| frequency | Quantas vezes, em média, cada pessoa viu. | Frequência. O Pacer recalcula como impressões ÷ alcance do período, em vez de somar o campo. |
| inline_post_engagement | Interações com a publicação. | Engajamento. |
| actions | Lista com todos os tipos de ação, não um número só. | É daqui que sai conversão. Compra no site é offsite_conversion.fb_pixel_purchase. |
| video_15_sec_watched_actions | Vídeo assistido por 15 segundos ou até o fim. | É o que vira visualização de vídeo nos relatórios do caOS. |
| video_thruplay_watched_actions | ThruPlay, a métrica que a interface da Meta mostra. | Só existe na tabela que você monta. Número diferente do de cima: escolha um e não misture. |
| video_p25_watched_actions | Chegou a 25% do vídeo. Existem também 50, 75, 95 e 100. | Use para curva de retenção. |
| cpm | Custo por mil impressões. | CPM. O Pacer recalcula a partir das somas, em vez de tirar média de médias. |
| cpc | Custo por clique. | CPC, também recalculado. |
| ctr | Cliques ÷ impressões. | CTR, também recalculado. |
Dimensões5
| Campo na API | O que é | Onde aparece |
|---|---|---|
| date_start | O dia da linha. | Toda tabela de desempenho vem por dia. |
| campaign_name | Nome da campanha. | Vem junto campaign_id, que é o que não muda quando renomeiam. |
| adset_name | Nome do conjunto. | Com adset_id. |
| ad_name | Nome do anúncio. | Com ad_id. |
| account_currency | Moeda da conta. | Confira antes de somar contas de países diferentes. |
Parâmetros do relatório
Os campos acima dizem o que volta. Estes parâmetros dizem como: eles decidem o grão da linha, o período que ela cobre e o que conta como conversão. Dois relatórios da mesma conta com números diferentes quase sempre diferem aqui.
| Parâmetro | O que muda | Valores |
|---|---|---|
| level | O grão de cada linha. | Conta, campanha, conjunto ou anúncio. Padrão do caOS: anúncio. |
| time_increment | Se a linha é de um dia ou de um período inteiro. | 1 dia, 7 dias, mês, ou o período todo numa linha só. Padrão: 1 dia. |
| breakdowns | A quebra, que multiplica as linhas. | 12 valores: idade, gênero, país, região, DMA, plataforma, posicionamento, dispositivo de impressão e de ação, produto, hora e faixa de frequência. |
| action_breakdowns | Como a coluna de ações se abre. | 15 valores, entre eles tipo de ação, destino, reação, tipo de vídeo, som e card do carrossel. Padrão: action_type. |
| action_attribution_windows | Que janela conta uma conversão. | Visualização e clique em 1, 7 ou 28 dias. Padrão do caOS: 1d_view + 7d_click, o mesmo padrão da Meta. |
| action_report_time | Em que dia a conversão é lançada. | impression lança no dia do anúncio, conversion no dia da compra, mixed mistura. Padrão: mixed. |
Tudo que dá para puxar
As tabelas acima são as que a maior parte dos relatórios usa, mas você não está preso a elas. O catálogo inteiro do Meta tem 11 tabelas e 427 campos, e ao montar a fonte você escolhe o que entra. O que aparece marcado como puxada por padrão é o que a fonte de exemplo usa; o resto está disponível do mesmo jeito.
A lista abaixo sai do próprio catálogo do Xtractor, o mesmo que a tela de nova fonte lê. Se um campo está aqui, a tela oferece.
adsinsights_default puxada por padrão110 campos
account_currency, account_id, account_name, action_values, actions, ad_click_actions, ad_id, ad_impression_actions, ad_name, adset_id, adset_name, attribution_setting, auction_bid, auction_competitiveness, auction_max_competitor_bid, average_purchases_conversion_value, buying_type, campaign_id, campaign_name, canvas_avg_view_percent, canvas_avg_view_time, catalog_segment_actions, catalog_segment_value, catalog_segment_value_mobile_purchase_roas, catalog_segment_value_omni_purchase_roas, catalog_segment_value_website_purchase_roas, clicks, conversion_rate_ranking, conversion_values, conversions, converted_product_quantity, converted_product_value, cost_per_15_sec_video_view, cost_per_2_sec_continuous_video_view, cost_per_action_type, cost_per_ad_click, cost_per_conversion, cost_per_estimated_ad_recallers, cost_per_inline_link_click, cost_per_inline_post_engagement, cost_per_outbound_click, cost_per_thruplay, cost_per_unique_action_type, cost_per_unique_click, cost_per_unique_inline_link_click, cost_per_unique_outbound_click, cpc, cpm, cpp, created_time, ctr, date_start, date_stop, engagement_rate_ranking, estimated_ad_recall_rate, estimated_ad_recallers, frequency, full_view_impressions, full_view_reach, impressions, inline_link_click_ctr, inline_link_clicks, inline_post_engagement, instant_experience_clicks_to_open, instant_experience_clicks_to_start, instant_experience_outbound_clicks, marketing_messages_delivery_rate, marketing_messages_link_btn_click_rate, marketing_messages_quick_reply_btn_click_rate, marketing_messages_read_rate, marketing_messages_website_purchase_values, mobile_app_purchase_roas, objective, onsite_conversion_messaging_detected_purchase_deduped, optimization_goal, outbound_clicks, outbound_clicks_ctr, purchase_roas, qualifying_question_qualify_answer_rate, quality_ranking, reach, shops_assisted_purchases, social_spend, spend, unique_actions, unique_clicks, unique_ctr, unique_inline_link_click_ctr, unique_inline_link_clicks, unique_link_clicks_ctr, unique_outbound_clicks, unique_outbound_clicks_ctr, updated_time, video_15_sec_watched_actions, video_30_sec_watched_actions, video_avg_time_watched_actions, video_continuous_2_sec_watched_actions, video_p100_watched_actions, video_p25_watched_actions, video_p50_watched_actions, video_p75_watched_actions, video_p95_watched_actions, video_play_actions, video_play_curve_actions, video_play_retention_0_to_15s_actions, video_play_retention_20_to_60s_actions, video_play_retention_graph_actions, video_time_watched_actions, website_ctr, website_purchase_roas
adaccounts80 campos
account_id, timezone_id, business_name, account_status, age, amount_spent, balance, business_city, business_country_code, business_street, business_street2, can_create_brand_lift_study, capabilities, created_time, currency, disable_reason, end_advertiser, end_advertiser_name, has_migrated_permissions, id, is_attribution_spec_system_default, is_direct_deals_enabled, is_in_3ds_authorization_enabled_market, is_notifications_enabled, is_personal, is_prepay_account, is_tax_id_required, min_campaign_group_spend_cap, min_daily_budget, name, offsite_pixels_tos_accepted, owner, spend_cap, tax_id_status, tax_id_type, timezone_name, timezone_offset_hours_utc, agency_client_declaration_agency_representing_client, agency_client_declaration_client_based_in_france, agency_client_declaration_client_city, agency_client_declaration_client_country_code, agency_client_declaration_client_email_address, agency_client_declaration_client_name, agency_client_declaration_client_postal_code, agency_client_declaration_client_province, agency_client_declaration_client_street, agency_client_declaration_client_street2, agency_client_declaration_has_written_mandate_from_advertiser, agency_client_declaration_is_client_paying_invoices, business_manager_block_offline_analytics, business_manager_created_by, business_manager_created_time, business_manager_extended_updated_time, business_manager_is_hidden, business_manager_link, business_manager_name, business_manager_payment_account_id, business_manager_primary_page, business_manager_profile_picture_uri, business_manager_timezone_id, business_manager_two_factor_type, business_manager_updated_by, business_manager_update_time, business_manager_verification_status, business_manager_vertical, business_manager_vertical_id, business_manager_manager_id, extended_credit_invoice_group_id, extended_credit_invoice_group_auto_enroll, extended_credit_invoice_group_customer_po_number, extended_credit_invoice_group_email, extended_credit_invoice_group_emails, extended_credit_invoice_group_name, business_state, io_number, media_agency, partner, salesforce_invoice_group_id, business_zip, tax_id
creatives52 campos
id, account_id, actor_id, applink_treatment, asset_feed_spec, authorization_category, body, branded_content_sponsor_page_id, bundle_folder_id, call_to_action_type, categorization_criteria, category_media_source, degrees_of_freedom_spec, destination_set_id, dynamic_ad_voice, effective_authorization_category, effective_instagram_media_id, effective_object_story_id, enable_direct_install, image_hash, image_url, instagram_actor_id, instagram_permalink_url, instagram_story_id, link_destination_display_url, link_og_id, link_url, messenger_sponsored_message, name, object_id, object_store_url, object_story_id, object_story_spec, object_type, object_url, page_link, page_message, place_page_set_id, platform_customizations, playable_asset_id, source_instagram_media_id, status, template_url, thumbnail_id, thumbnail_url, title, url_tags, use_page_actor_override, video_id, template_url_spec, product_set_id, carousel_ad_link
adsets43 campos
name, end_time, billing_event, campaign_attribution, destination_type, is_dynamic_creative, lifetime_imps, multi_optimization_goal_weight, optimization_goal, optimization_sub_event, pacing_type, recurring_budget_semantics, source_adset_id, status, targeting_optimization_types, use_new_app_click, promoted_object, id, account_id, updated_time, daily_budget, budget_remaining, effective_status, campaign_id, created_time, start_time, lifetime_budget, bid_info, adlabels, attribution_spec, learning_stage_info, configured_status, asset_feed_id, daily_min_spend_target, daily_spend_cap, instagram_actor_id, review_feedback, rf_prediction_id, bid_amount, bid_strategy, targeting, lifetime_min_spend_target, lifetime_spend_cap
advideos38 campos
id, account_id, ad_breaks, backdated_time, backdated_time_granularity, content_category, content_tags, created_time, custom_labels, description, embed_html, embeddable, event, format, from_object, icon, is_crosspost_video, is_crossposting_eligible, is_episode, is_instagram_eligible, is_reference_only, length, live_status, music_video_copyright, permalink_url, place, post_views, premiere_living_room_status, privacy, published, scheduled_publish_time, source, status_processing_progress, status_value, title, universal_video_id, updated_time, views
campaigns35 campos
name, objective, id, account_id, effective_status, buying_type, can_create_brand_lift_study, can_use_spend_cap, configured_status, has_secondary_skadnetwork_reporting, is_skadnetwork_attribution, primary_attribution, smart_promotion_type, pacing_type, source_campaign_id, boosted_object_id, special_ad_categories, special_ad_category, status, topline_id, spend_cap, budget_remaining, daily_budget, start_time, stop_time, updated_time, created_time, adlabels, budget_rebalance_flag, bid_strategy, ad_strategy_group_id, ad_strategy_id, lifetime_budget, last_budget_toggling_time, special_ad_category_country
customaudiences21 campos
account_id, id, approximate_count_lower_bound, approximate_count_upper_bound, time_updated, time_created, time_content_updated, customer_file_source, data_source, delivery_status, description, lookalike_spec, is_value_based, operation_status, permission_for_actions, pixel_id, retention_days, subtype, rule_aggregation, opt_out_link, name
ads19 campos
bid_type, account_id, campaign_id, adset_id, bid_amount, bid_info, status, creative, id, updated_time, created_time, name, effective_status, last_updated_by_app_id, recommendations, source_ad_id, tracking_specs, conversion_specs, configured_status
adimages16 campos
id, account_id, created_time, creatives, hash, height, is_associated_creatives_in_adgroups, name, original_height, original_width, permalink_url, status, updated_time, url, url_128, width
customconversions8 campos
account_id, id, name, creation_time, business, is_archived, is_unavailable, last_fired_time
adlabels5 campos
id, account, created_time, updated_time, name
E a tabela que você desenha
Além das tabelas prontas, o Meta é o único conector com um montador de tabela: você escolhe o nível (conta, campanha, conjunto ou anúncio), se agrega por dia, semana, mês ou período inteiro, e quais campos entram. O seletor oferece 119 campos organizados em oito categorias: identificação, configuração, entrega e custo, cliques, engajamento, vídeo, conversões e ações, e qualidade e estimativas.
São 23 dimensões, 68 métricas e 28 tipos de ação. Por cima disso entram as quebras, que multiplicam as linhas: idade, gênero, país, região, DMA, plataforma, posicionamento, dispositivo de impressão, dispositivo de ação, produto, hora e faixa de frequência. E as quebras de ação, que abrem a coluna de conversões por tipo, destino, reação, tipo de vídeo, som, card do carrossel e mais.
A tela valida a combinação antes de chamar a API, porque o Meta só aceita certas permutações de quebra. Se ela recusar, é a regra da própria plataforma, e tirar uma quebra por vez resolve.
Cada quebra multiplica as linhas, e a Meta só aceita certas combinações: frequência exige alcance, quebra por hora recusa campos de vídeo. A tela avisa antes de chamar a API.
Saída
Onde os dados chegamplanilha e banco são coisas diferentes
Planilha do Google
Para quem monta relatório na mão
Você escolhe as colunas e o recorte, e cada sincronização atualiza a mesma aba. Não há catálogo para estudar: o que você marcar vira coluna, na ordem em que marcou.
Comece por investimento, impressões, cliques e o nome da campanha. É o suficiente para 90% dos relatórios, e você acrescenta o resto depois sem refazer nada.
BigQuery
Para quem vai modelar em cima
11 tabelas padrão mais as que você desenhar. A de
desempenho é adsinsights_default: uma linha por anúncio por
dia. As outras são cadastro (contas, campanhas, conjuntos, anúncios,
criativos, imagens, vídeos, rótulos, públicos e conversões) e são retrato
do momento, não série no tempo.
Tabelas que você desenha viram tabela própria no destino: escolhe o nível, a agregação e os campos.
Criativo em tamanho de apresentação. A API da Meta devolve a imagem do criativo em miniatura, e cerca de metade dos criativos (vídeo, carrossel, dinâmico) nem traz a versão grande. Serve para conferir, não para colocar num relatório de cliente.
No plano Enterprise o caOS pede a imagem em alta na origem e guarda uma cópia própria de cada criativo, com link estável. O criativo entra no relatório em tamanho de apresentação, e continua acessível mesmo depois de o anúncio sair do ar.
Confiança
Atualização do dadopor que o número de ontem ainda muda
Plataforma de anúncio reescreve o passado. Conversão que só é atribuída dias depois, gasto revisado, linha corrigida: o número de terça-feira muda na quinta. Se a extração só trouxesse o dia novo, sua planilha ficaria congelada no primeiro valor e passaria a divergir da plataforma sem ninguém perceber.
Por isso o caOS relê os últimos 28 dias a cada sincronização, e reescreve o que mudou. O histórico mais antigo continua no destino e não é tocado. Na prática: o que está na sua planilha ou no seu banco é o que a plataforma diz hoje, não o que ela dizia no dia da primeira carga.
O dia fecha no fuso da conta de anúncio, não no seu. Quando um cliente troca de conta e a nova está em outro fuso, a fronteira do dia se desloca: o total do período não muda, mas o número de um dia específico sim.
Detalhe
Bom sabero que costuma gerar dúvida
Conversão não é uma coluna, é uma linha dentro de actions.
Compra no site é offsite_conversion.fb_pixel_purchase;
omni_purchase soma site, app e loja, e dá número maior. Na
planilha, actions chega como a soma de todos os tipos de ação, não
como a conversão isolada que você quer.
Duas métricas de vídeo com nomes parecidos. A tabela padrão traz a de 15 segundos; a tabela que você monta oferece o ThruPlay, e não oferece a de 15 segundos. São números diferentes. Escolha um e não misture entre relatórios.
Alcance não soma. Somar o alcance de dois dias, ou de dois anúncios, conta a mesma pessoa duas vezes. Para alcance de um período, peça o período inteiro de uma vez.
Suporte
Quando dá erradoa mensagem e o que fazer
“A autorização não foi concluída.” O acesso foi negado, ou a janela foi fechada antes de aprovar. Recomece pelo botão do caOS.
“Sua sessão de conexão expirou.” O link vale 10 minutos e serve uma vez. Recomece, sem reaproveitar uma janela antiga.
Conectou e nenhuma conta aparece. Na Meta a busca roda depois da conexão. Espere alguns segundos e recarregue. Continuando vazio, o lugar de olhar é o acesso de quem autorizou.
“Conta Meta sem token válido.” A credencial que trouxe aquela conta foi revogada. Reconectar resolve, e a conta volta com as tags que tinha.
“Combinação de quebras não é válida.” Tire uma quebra por vez até a tela voltar ao normal.
“Pausada automaticamente após 5 falhas seguidas.” A conexão para sozinha depois de cinco erros em sequência. Corrija o que o último erro apontou e reative.