Google Ads
Pesquisa, Display, YouTube e Performance Max. Você entra com a sua conta do Google, marca quais contas são deste workspace, e pronto. Não há token nem identificador para pedir a ninguém.
Começar
Conectarlogin do Google, sem digitar nada
Em Fontes · Conectar nova fonte · Google Ads, clique no cartão. Abre uma janela do Google. Escolha o login e conclua. Se aparecer uma caixa de permissão do Google Ads, ela precisa ser marcada, senão a conexão não se completa.
A janela do Google só fecha depois que o caOS terminou de varrer as contas, então em carteira grande ela demora alguns segundos. Depois é só marcar as contas do workspace.
Como o caOS descobre as contas
O caOS pergunta ao Google o que aquele login alcança. Vale saber o formato da resposta, porque ele explica conta faltando:
Login numa conta de administrador (MCC): aparecem a MCC e as contas um nível abaixo dela. Conta pendurada em uma sub-MCC, dois níveis abaixo, não aparece.
Login direto na conta: aparece aquela conta, e só. Isso funciona normalmente. Conta fora de qualquer MCC não é problema, e não é preciso mover a conta para lugar nenhum.
A conta de administrador em si não vira conta de anúncio: a MCC é descartada, assim como conta desativada ou cancelada. Só entra o que está ativo.
Tenha à mão o número da conta, no formato 123-456-7890. Um login de agência traz dezenas de contas de uma vez, e sem o número achar a certa vira caça ao nome.
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
O Google organiza cada relatório em torno de um recurso (campanha, grupo, palavra-chave), e as métricas são as mesmas em quase todos. Abaixo, as que aparecem em relatório de verdade.
Métricas principais8
| Campo na API | O que é | Onde aparece |
|---|---|---|
| metrics__costMicros | O custo, em milionésimos da moeda. | Investimento no Pacer, já convertido. Na planilha, divida por 1.000.000. |
| metrics__impressions | Quantas vezes o anúncio foi exibido. | Impressões. |
| metrics__clicks | Cliques no anúncio. | Cliques. |
| metrics__conversions | Conversões atribuídas, conforme a configuração da conta. | Pode ser fracionária: o Google divide o crédito entre pontos de contato. |
| metrics__allConversions | Inclui também as conversões não marcadas como principais. | Sempre maior ou igual à de cima. Escolha uma e mantenha. |
| metrics__conversionsValue | Valor monetário das conversões. | Para ROAS, divida pelo investimento já convertido. |
| metrics__engagements | Interações com anúncios que aceitam engajamento. | Não existe para todo tipo de campanha. |
| metrics__videoTrueviewViews | Visualizações TrueView em campanha de vídeo. | Só campanha de vídeo preenche este campo. |
Dimensões4
| Campo na API | O que é | Onde aparece |
|---|---|---|
| segments__date | O dia da linha. | Toda tabela de desempenho vem por dia. |
| campaign__name | Nome da campanha. | Com campaign__id, que sobrevive a renomeação. |
| adGroup__name | Nome do grupo de anúncios. | O nível abaixo da campanha no Google. |
| customer__id | A conta de anúncio. | O número de 10 dígitos, sem os hífens. |
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 |
|---|---|---|
| FROM <recurso> | O que cada linha representa. | 28 recursos: campanha, grupo de anúncios, palavra-chave, termo de busca, posicionamento, vídeo do YouTube, geografia, demografia e os de cadastro. |
| segments | A quebra, que multiplica as linhas. | segments.date é a mais comum. Há também dispositivo, rede, hora e tipo de conversão. |
| metrics | As colunas de número. | metrics.impressions, metrics.clicks, metrics.cost_micros e as demais. |
| período | A janela de datas. | Vem da fonte, automaticamente. Não escreva filtro de data na consulta: conflita com o da fonte e a tela avisa. |
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 Google Ads tem 28 tabelas e 613 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.
ad_group_criterion68 campos
adGroup__resourceName, adGroup__id, adGroupCriterion__adGroup, adGroupCriterion__ageRange__type, adGroupCriterion__appPaymentModel__type, adGroupCriterion__approvalStatus, adGroupCriterion__audience__audience, adGroupCriterion__bidModifier, adGroupCriterion__combinedAudience__combinedAudience, adGroupCriterion__cpcBidMicros, adGroupCriterion__cpmBidMicros, adGroupCriterion__cpvBidMicros, adGroupCriterion__criterionId, adGroupCriterion__customAffinity__customAffinity, adGroupCriterion__customAudience__customAudience, adGroupCriterion__customIntent__customIntent, adGroupCriterion__disapprovalReasons, adGroupCriterion__displayName, adGroupCriterion__effectiveCpcBidMicros, adGroupCriterion__effectiveCpcBidSource, adGroupCriterion__effectiveCpmBidMicros, adGroupCriterion__effectiveCpmBidSource, adGroupCriterion__effectiveCpvBidMicros, adGroupCriterion__effectiveCpvBidSource, adGroupCriterion__effectivePercentCpcBidMicros, adGroupCriterion__effectivePercentCpcBidSource, adGroupCriterion__finalMobileUrls, adGroupCriterion__finalUrlSuffix, adGroupCriterion__finalUrls, adGroupCriterion__gender__type, adGroupCriterion__incomeRange__type, adGroupCriterion__keyword__matchType, adGroupCriterion__keyword__text, adGroupCriterion__labels, adGroupCriterion__mobileAppCategory__mobileAppCategoryConstant, adGroupCriterion__mobileApplication__appId, adGroupCriterion__mobileApplication__name, adGroupCriterion__negative, adGroupCriterion__parentalStatus__type, adGroupCriterion__percentCpcBidMicros, adGroupCriterion__placement__url, adGroupCriterion__positionEstimates__estimatedAddClicksAtFirstPositionCpc, adGroupCriterion__positionEstimates__estimatedAddCostAtFirstPositionCpc, adGroupCriterion__positionEstimates__firstPageCpcMicros, adGroupCriterion__positionEstimates__firstPositionCpcMicros, adGroupCriterion__positionEstimates__topOfPageCpcMicros, adGroupCriterion__qualityInfo__creativeQualityScore, adGroupCriterion__qualityInfo__postClickQualityScore, adGroupCriterion__qualityInfo__qualityScore, adGroupCriterion__qualityInfo__searchPredictedCtr, adGroupCriterion__resourceName, adGroupCriterion__status, adGroupCriterion__systemServingStatus, adGroupCriterion__topic__path, adGroupCriterion__topic__topicConstant, adGroupCriterion__trackingUrlTemplate, adGroupCriterion__type, adGroupCriterion__urlCustomParameters, adGroupCriterion__userInterest__userInterestCategory, adGroupCriterion__userList__userList, adGroupCriterion__webpage__conditions, adGroupCriterion__webpage__coveragePercentage, adGroupCriterion__webpage__criterionName, adGroupCriterion__webpage__sample, adGroupCriterion__youtubeChannel__channelId, adGroupCriterion__youtubeVideo__videoId, customer_id, parent_customer_id
campaign_budget55 campos
customer__resourceName, customer__id, campaign__resourceName, campaign__id, campaignBudget__alignedBiddingStrategyId, campaignBudget__amountMicros, campaignBudget__deliveryMethod, campaignBudget__explicitlyShared, campaignBudget__hasRecommendedBudget, campaignBudget__id, campaignBudget__name, campaignBudget__period, campaignBudget__recommendedBudgetAmountMicros, campaignBudget__recommendedBudgetEstimatedChangeWeeklyClicks, campaignBudget__recommendedBudgetEstimatedChangeWeeklyCostMicros, campaignBudget__recommendedBudgetEstimatedChangeWeeklyInteractions, campaignBudget__recommendedBudgetEstimatedChangeWeeklyViews, campaignBudget__referenceCount, campaignBudget__resourceName, campaignBudget__status, campaignBudget__totalAmountMicros, campaignBudget__type, segments__date, segments__budgetCampaignAssociationStatus__campaign, segments__budgetCampaignAssociationStatus__status, metrics__allConversions, metrics__allConversionsFromInteractionsRate, metrics__allConversionsValue, metrics__averageCost, metrics__averageCpc, metrics__averageCpe, metrics__averageCpm, metrics__trueviewAverageCpv, metrics__clicks, metrics__conversions, metrics__conversionsFromInteractionsRate, metrics__conversionsValue, metrics__costMicros, metrics__costPerAllConversions, metrics__costPerConversion, metrics__crossDeviceConversions, metrics__ctr, metrics__engagementRate, metrics__engagements, metrics__impressions, metrics__interactionEventTypes, metrics__interactionRate, metrics__interactions, metrics__valuePerAllConversions, metrics__valuePerConversion, metrics__videoTrueviewViewRate, metrics__videoTrueviewViews, metrics__viewThroughConversions, customer_id, parent_customer_id
video49 campos
customer__resourceName, customer__id, segments__date, metrics__conversions, segments__month, customer__currencyCode, segments__year, customer__timeZone, metrics__engagements, campaign__resourceName, campaign__id, metrics__engagementRate, segments__device, video__resourceName, video__id, segments__week, metrics__videoTrueviewViewRate, adGroup__resourceName, adGroup__name, metrics__clicks, adGroup__status, segments__dayOfWeek, metrics__costPerConversion, metrics__ctr, metrics__videoQuartileP25Rate, metrics__videoQuartileP75Rate, metrics__videoQuartileP50Rate, adGroupAd__ad__resourceName, adGroupAd__ad__id, segments__adNetworkType, video__title, metrics__impressions, metrics__viewThroughConversions, adGroupAd__resourceName, adGroupAd__status, adGroup__id, metrics__videoQuartileP100Rate, metrics__allConversionsValue, campaign__name, metrics__videoTrueviewViews, video__durationMillis, video__channelId, customer__descriptiveName, campaign__status, metrics__crossDeviceConversions, metrics__conversionsFromInteractionsRate, metrics__costMicros, customer_id, parent_customer_id
keyword_view45 campos
keywordView__resourceName, customer__resourceName, customer__id, segments__date, metrics__conversions, adGroupCriterion__resourceName, adGroupCriterion__status, adGroupCriterion__keyword__text, customer__currencyCode, segments__slot, adGroupCriterion__keyword__matchType, adGroupCriterion__labels, campaign__resourceName, campaign__id, adGroupCriterion__finalUrls, segments__device, adGroupCriterion__finalMobileUrls, adGroup__resourceName, adGroup__name, adGroupCriterion__effectiveCpcBidSource, metrics__clicks, adGroupCriterion__criterionId, adGroupCriterion__qualityInfo__qualityScore, adGroupCriterion__qualityInfo__postClickQualityScore, adGroupCriterion__qualityInfo__searchPredictedCtr, adGroup__status, adGroupCriterion__positionEstimates__firstPageCpcMicros, adGroupCriterion__qualityInfo__creativeQualityScore, campaign__manualCpc__enhancedCpcEnabled, adGroupCriterion__effectiveCpcBidMicros, adGroupCriterion__approvalStatus, adGroupCriterion__topic__topicConstant, segments__adNetworkType, metrics__impressions, adGroup__id, adGroupCriterion__positionEstimates__topOfPageCpcMicros, campaign__name, adGroupCriterion__positionEstimates__estimatedAddCostAtFirstPositionCpc, customer__descriptiveName, campaign__status, adGroupCriterion__positionEstimates__estimatedAddClicksAtFirstPositionCpc, metrics__costMicros, campaign__biddingStrategyType, customer_id, parent_customer_id
managed_placement_view45 campos
managedPlacementView__resourceName, customer__resourceName, customer__id, segments__date, metrics__conversions, adGroupCriterion__status, customer__currencyCode, customer__timeZone, campaign__resourceName, campaign__id, adGroupCriterion__resourceName, adGroupCriterion__finalUrls, segments__device, adGroupCriterion__finalMobileUrls, adGroupCriterion__placement__url, metrics__gmailForwards, adGroup__resourceName, adGroup__name, adGroupCriterion__effectiveCpcBidSource, metrics__clicks, adGroupCriterion__criterionId, adGroup__status, adGroup__targetingSetting__targetRestrictions, campaign__biddingStrategyType, adGroupCriterion__effectiveCpcBidMicros, adGroupCriterion__negative, metrics__videoQuartileP25Rate, metrics__videoQuartileP75Rate, metrics__videoQuartileP50Rate, adGroupCriterion__bidModifier, segments__adNetworkType, metrics__impressions, adGroup__id, metrics__videoQuartileP100Rate, metrics__gmailSaves, metrics__allConversionsValue, campaign__name, metrics__videoTrueviewViews, customer__descriptiveName, campaign__status, metrics__gmailSecondaryClicks, metrics__costMicros, adGroupCriterion__displayName, customer_id, parent_customer_id
ad_group_ad41 campos
adGroup__resourceName, adGroup__id, adGroupAd__ad__id, adGroupAd__ad__addedByGoogleAds, adGroupAd__ad__appAd, adGroupAd__ad__devicePreference, adGroupAd__ad__displayUrl, adGroupAd__ad__finalAppUrls, adGroupAd__ad__finalMobileUrls, adGroupAd__ad__finalUrlSuffix, adGroupAd__ad__finalUrls, adGroupAd__ad__hotelAd, adGroupAd__ad__name, adGroupAd__ad__resourceName, adGroupAd__ad__shoppingComparisonListingAd, adGroupAd__ad__shoppingProductAd, adGroupAd__ad__shoppingSmartAd, adGroupAd__ad__smartCampaignAd, adGroupAd__ad__systemManagedResourceSource, adGroupAd__ad__trackingUrlTemplate, adGroupAd__ad__type, adGroupAd__ad__urlCollections, adGroupAd__ad__urlCustomParameters, adGroupAd__actionItems, adGroupAd__adGroup, adGroupAd__adStrength, adGroupAd__labels, adGroupAd__resourceName, adGroupAd__status, adGroup__name, segments__date, customer__resourceName, customer__id, campaign__id, campaign__resourceName, campaign__status, adGroup__status, campaign__name, adGroup__baseAdGroup, customer_id, parent_customer_id
adgroups32 campos
adGroup__urlCustomParameters, adGroup__type, adGroup__trackingUrlTemplate, adGroup__targetingSetting__targetRestrictions, adGroup__targetRoas, adGroup__targetCpmMicros, adGroup__status, adGroup__targetCpaMicros, adGroup__resourceName, adGroup__percentCpcBidMicros, adGroup__name, adGroup__labels, adGroup__id, adGroup__finalUrlSuffix, adGroup__excludedParentAssetFieldTypes, adGroup__effectiveTargetRoasSource, adGroup__effectiveTargetRoas, adGroup__effectiveTargetCpaSource, adGroup__effectiveTargetCpaMicros, adGroup__displayCustomBidDimension, adGroup__cpvBidMicros, adGroup__cpmBidMicros, adGroup__cpcBidMicros, adGroup__campaign, adGroup__baseAdGroup, adGroup__adRotationMode, campaign__resourceName, campaign__id, campaign__name, segments__date, customer_id, parent_customer_id
search_term_view30 campos
customer__resourceName, customer__id, segments__date, customer__currencyCode, customer__descriptiveName, adGroup__id, adGroup__name, adGroup__status, segments__adNetworkType, metrics__conversionsValue, campaign__id, campaign__name, campaign__status, metrics__clicks, metrics__conversions, metrics__costMicros, segments__device, metrics__impressions, segments__keyword__adGroupCriterion, segments__keyword__info, searchTermView__resourceName, searchTermView__searchTerm, searchTermView__status, segments__searchTermMatchType, campaign__resourceName, adGroup__resourceName, adGroupAd__resourceName, adGroupAd__ad__resourceName, customer_id, parent_customer_id
ad_listing_group_criterion26 campos
adGroupCriterion__resourceName, adGroup__id, adGroupCriterion__criterionId, adGroupCriterion__listingGroup__caseValue__activityCountry__value, adGroupCriterion__listingGroup__caseValue__activityId__value, adGroupCriterion__listingGroup__caseValue__activityRating__value, adGroupCriterion__listingGroup__caseValue__hotelCity__cityCriterion, adGroupCriterion__listingGroup__caseValue__hotelClass__value, adGroupCriterion__listingGroup__caseValue__hotelCountryRegion__countryRegionCriterion, adGroupCriterion__listingGroup__caseValue__hotelId__value, adGroupCriterion__listingGroup__caseValue__hotelState__stateCriterion, adGroupCriterion__listingGroup__caseValue__productCategory__categoryId, adGroupCriterion__listingGroup__caseValue__productCategory__level, adGroupCriterion__listingGroup__caseValue__productBrand__value, adGroupCriterion__listingGroup__caseValue__productChannel__channel, adGroupCriterion__listingGroup__caseValue__productChannelExclusivity__channelExclusivity, adGroupCriterion__listingGroup__caseValue__productCondition__condition, adGroupCriterion__listingGroup__caseValue__productCustomAttribute__index, adGroupCriterion__listingGroup__caseValue__productCustomAttribute__value, adGroupCriterion__listingGroup__caseValue__productItemId__value, adGroupCriterion__listingGroup__caseValue__productType__level, adGroupCriterion__listingGroup__caseValue__productType__value, adGroupCriterion__listingGroup__parentAdGroupCriterion, adGroupCriterion__listingGroup__type, customer_id, parent_customer_id
campaign_history24 campos
campaign__resourceName, campaign__id, campaign__name, customer__resourceName, customer__id, campaign__adServingOptimizationStatus, campaign__advertisingChannelSubType, campaign__advertisingChannelType, campaign__experimentType, campaign__endDate, campaign__finalUrlSuffix, campaign__frequencyCaps, campaign__optimizationScore, campaign__paymentMode, campaign__servingStatus, campaign__startDate, campaign__status, campaign__trackingUrlTemplate, campaign__vanityPharma__vanityPharmaDisplayUrlMode, campaign__vanityPharma__vanityPharmaText, campaign__videoBrandSafetySuitability, segments__date, customer_id, parent_customer_id
campaign_performance_by_age_range_and_device20 campos
ageRangeView__resourceName, adGroupCriterion__resourceName, adGroupCriterion__ageRange__type, campaign__resourceName, campaign__name, campaign__status, adGroup__resourceName, adGroup__name, segments__date, segments__device, adGroupCriterion__systemServingStatus, adGroupCriterion__bidModifier, metrics__clicks, metrics__impressions, metrics__ctr, metrics__averageCpc, metrics__costMicros, campaign__advertisingChannelType, customer_id, parent_customer_id
campaign_performance_by_gender_and_device20 campos
genderView__resourceName, adGroupCriterion__resourceName, adGroupCriterion__gender__type, campaign__resourceName, campaign__name, campaign__status, adGroup__resourceName, adGroup__name, segments__date, segments__device, adGroupCriterion__systemServingStatus, adGroupCriterion__bidModifier, metrics__clicks, metrics__impressions, metrics__ctr, metrics__averageCpc, metrics__costMicros, campaign__advertisingChannelType, customer_id, parent_customer_id
ad_groups_performance puxada por padrão17 campos
campaign__resourceName, campaign__id, adGroup__resourceName, adGroup__id, metrics__impressions, metrics__clicks, metrics__costMicros, metrics__conversions, metrics__engagements, metrics__interactions, metrics__videoTrueviewViews, metrics__conversionsValue, metrics__allConversions, metrics__allConversionsValue, segments__date, customer_id, parent_customer_id
customer15 campos
customer__resourceName, customer__id, customer__autoTaggingEnabled, customer__descriptiveName, customer__currencyCode, customer__finalUrlSuffix, customer__manager, customer__optimizationScore, customer__payPerConversionEligibilityFailureReasons, customer__testAccount, customer__timeZone, customer__trackingUrlTemplate, segments__date, customer_id, parent_customer_id
campaign_performance_by_location14 campos
locationView__resourceName, campaignCriterion__resourceName, campaignCriterion__location__geoTargetConstant, campaign__resourceName, campaign__name, campaignCriterion__bidModifier, segments__date, metrics__clicks, metrics__impressions, metrics__ctr, metrics__averageCpc, metrics__costMicros, customer_id, parent_customer_id
geo_performance13 campos
campaign__resourceName, campaign__name, campaign__status, segments__date, metrics__clicks, metrics__costMicros, metrics__impressions, metrics__conversions, geographicView__resourceName, geographicView__locationType, geographicView__countryCriterionId, customer_id, parent_customer_id
campaign_performance12 campos
campaign__resourceName, campaign__name, campaign__status, segments__device, segments__date, metrics__impressions, metrics__clicks, metrics__ctr, metrics__averageCpc, metrics__costMicros, customer_id, parent_customer_id
ad_group_ad_label11 campos
adGroup__resourceName, adGroup__id, adGroupAd__resourceName, adGroupAd__ad__id, adGroupAd__ad__resourceName, adGroupAdLabel__resourceName, label__name, label__resourceName, label__id, customer_id, parent_customer_id
audience11 campos
customer__resourceName, customer__id, audience__description, audience__dimensions, audience__exclusionDimension, audience__id, audience__name, audience__resourceName, audience__status, customer_id, parent_customer_id
campaign_criterion11 campos
campaign__resourceName, campaign__id, campaignCriterion__resourceName, campaignCriterion__campaign, campaignCriterion__ageRange__type, campaignCriterion__mobileApplication__name, campaignCriterion__negative, campaignCriterion__youtubeChannel__channelId, campaignCriterion__youtubeVideo__videoId, customer_id, parent_customer_id
geo_target_constant10 campos
geoTargetConstant__resourceName, geoTargetConstant__canonicalName, geoTargetConstant__countryCode, geoTargetConstant__id, geoTargetConstant__name, geoTargetConstant__status, geoTargetConstant__targetType, geoTargetConstant__parentGeoTarget, customer_id, parent_customer_id
user_interest9 campos
userInterest__availabilities, userInterest__launchedToAll, userInterest__name, userInterest__resourceName, userInterest__taxonomyType, userInterest__userInterestId, userInterest__userInterestParent, customer_id, parent_customer_id
ad_group_label8 campos
adGroup__id, label__id, adGroup__resourceName, adGroupLabel__resourceName, label__name, label__resourceName, customer_id, parent_customer_id
campaign_label8 campos
campaign__id, label__id, campaign__resourceName, campaignLabel__resourceName, label__name, label__resourceName, customer_id, parent_customer_id
label8 campos
label__textLabel__backgroundColor, label__textLabel__description, label__name, label__status, label__id, label__resourceName, customer_id, parent_customer_id
customer_label7 campos
customer__resourceName, customer__id, customerLabel__resourceName, customerLabel__customer, customerLabel__label, customer_id, parent_customer_id
customer_hierarchy3 campos
customer_id, parent_customer_id, customerClient
accessible_customers1 campos
resourceNames
O Google não expõe alcance. Não existe alcance nem frequência em nenhuma tabela, diferente de Meta e TikTok. Relatório que depende de alcance precisa tratar o Google à parte, e somar alcance de plataformas diferentes não dá um número válido.
Ponto vira dois sublinhados. O que o Google chama de
campaign.id aterrissa como campaign__id, nas colunas
e nas chaves.
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. O catálogo de tabelas do Google é o maior de todos os conectores, e você não precisa conhecê-lo: marque investimento, impressões, cliques e o nome da campanha.
Lembre de dividir o custo por 1.000.000 na planilha, ou peça o campo já convertido ao montar a fonte.
BigQuery
Para quem vai modelar em cima
28 tabelas, o maior catálogo dos conectores do caOS. Onze trazem métricas; as outras são cadastro.
Desempenho por nível: campanha, grupo de anúncios, palavra-chave, termo de busca, posicionamento, vídeo do YouTube, geografia e demografia. Cadastro: campanhas, grupos, anúncios, orçamentos, critérios, rótulos, públicos, dados da conta e hierarquia.
Desempenho por anúncio não está nas tabelas padrão: a tabela de anúncios é só cadastro. Para investimento por anúncio, monte uma tabela sua.
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 30 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.
No Google isso pesa mais do que na média, porque a conversão pode ser atribuída bem depois do clique. Campanha com jornada longa continua ganhando conversão em dias já fechados.
Detalhe
Bom sabero que costuma gerar dúvida
Relatório por região merece atenção. O Google emite duas linhas por campanha, dia e região: uma de área de interesse, outra de localização de presença. Elas somam, não duplicam. Se região é o seu relatório, inclua o tipo de localização nas chaves, senão parte do investimento some.
Não escreva filtro de data na tabela que você monta. O período da fonte já é aplicado, e um filtro seu conflita com ele. A tela avisa.
Conversão fracionária é normal. O Google divide o crédito de uma conversão entre pontos de contato, então 0,5 conversão numa linha não é erro de extração.
Suporte
Quando dá erradoa mensagem e o que fazer
“Falta a permissão do Google Ads.” Nada foi gravado, a conexão não existe. Refaça e conclua a tela do Google sem recusar a permissão.
“State token expired or already used.” O link vale 10 minutos e uma vez. Recarregar a janela do Google cai aqui. Recomece por Fontes.
Conectou e nenhuma conta apareceu. É o caso mais silencioso: a credencial fica gravada e a lista fica vazia, sem mensagem. Confira nesta ordem: o login alcança a conta no Google Ads? A conta está ativa? Você não apontou para a própria MCC? A conta não está dois níveis abaixo, sob uma sub-MCC?
“A conexão com esta conta foi perdida.” Alguém revogou o acesso do lado do Google. Conecte de novo o mesmo login.
“Seu plano permite até N conta(s) de anúncio.” A trava é do plano, na hora de salvar a fonte. As contas já estão conectadas; o que não cabe é a fonte.