Como corrigir o Google Maps Field no ACF PRO (chave de API)
O que é Google Maps Field do ACF PRO?
O Google Maps Field do ACF PRO e um campo que renderiza um mapa interativo do Google no editor do WordPress para escolher e salvar um endereco com latitude e longitude. Ele depende da Google Maps JavaScript API, que so funciona com uma chave de API valida do Google e as APIs corretas habilitadas no projeto do Google Cloud. Quando essa chave esta ausente, invalida ou sem as APIs ativadas, o campo não renderiza o mapa: aparece uma área cinza, sem tiles, e o navegador registra um erro da Google Maps JavaScript API no console.
Como identificar
- O campo de mapa aparece como uma área cinza vazia no editor, sem os tiles do Google, mas a caixa de busca de endereco continua visivel.
- No console do navegador (F12, aba Console) aparece a mensagem ‘Google Maps JavaScript API error: ApiNotActivatedMapError’ quando a Maps JavaScript API não foi habilitada no projeto.
- O console mostra ‘Google Maps JavaScript API error: InvalidKeyMapError’ quando a chave informada esta errada ou não existe.
- O console mostra ‘Google Maps JavaScript API error: RefererNotAllowedMapError’ quando a restricao de referenciador HTTP da chave não inclui o domínio do site.
- O console mostra ‘Google Maps JavaScript API error: BillingNotEnabledMapError’ quando o faturamento (billing) não esta ativo no projeto do Google Cloud.
- A busca de endereco no campo não retorna sugestoes, sinal de que a Places API (ou a Legacy Places API) não esta habilitada.
Como prevenir
- Restrinja a chave de API a referenciadores HTTP do seu domínio e habilite apenas as APIs necessarias, para evitar consumo não autorizado e cobranca surpresa.
- Use uma chave diferente para staging e producao, cada uma com a restricao de domínio correta, para nunca cair em RefererNotAllowedMapError ao publicar.
- Configure alertas de orcamento (budget alerts) no faturamento do Google Cloud para ser avisado antes de a cobranca da Maps Platform crescer.
- Registre a chave em um plugin de snippets versionado ou no tema filho, nunca em um tema pai que será sobrescrito na próxima atualização.
Causa
- Nenhuma chave de API foi registrada no ACF: o filtro acf/fields/google_map/api ou a chamada acf_update_setting com google_api_key não existe no functions.php do tema ou em um plugin de snippets.
- A Maps JavaScript API não esta habilitada no projeto do Google Cloud Console, entao a chave existe mas o serviço que desenha o mapa esta desligado (gera ApiNotActivatedMapError).
- A chave tem restricao de referenciador HTTP configurada apenas para outro domínio (por exemplo, o ambiente de staging), e o domínio de producao do site não foi adicionado a allowlist da chave (gera RefererNotAllowedMapError).
- O faturamento não esta ativado no projeto do Google Cloud: desde 2018 o Google exige um cartao vinculado para liberar a Maps Platform, e sem isso a chave e recusada (gera BillingNotEnabledMapError).
- A Places API usada pela busca de endereco não esta habilitada; desde 1 de marco de 2025 o Google descontinuou a Places API antiga e novos projetos precisam ativar a Legacy Places API (places-backend.googleapis.com) para o autocomplete de endereco funcionar.
Como resolver
- Gerar a chave de API no Google Cloud Console: Acesse o Google Cloud Console, selecione ou crie um projeto e gere uma chave em APIs e serviços, Credenciais, Criar credenciais, Chave de API. Copie o valor da chave para usar no próximo passo.
console.cloud.google.com/apis/credentials - Habilitar as três APIs exigidas pelo campo: Na biblioteca de APIs, ative as três APIs que o Google Maps Field usa. A Maps JavaScript API desenha o mapa, a Geocoding API converte o endereco em coordenadas e a Places API alimenta o autocomplete de endereco. Em projetos novos, ative também a Legacy Places API.
Maps JavaScript API Geocoding API Places API console.cloud.google.com/apis/library/places-backend.googleapis.com - Ativar o faturamento e restringir a chave ao domínio: Em Faturamento, vincule uma conta de cobranca ao projeto, exigencia da Maps Platform. Depois, em Credenciais, edite a chave e, na restricao de aplicativo, escolha Referenciadores HTTP e adicione o domínio do site para evitar uso indevido da chave.
https://full.services/* https://*.full.services/* - Registrar a chave no ACF via filtro no functions.php: Adicione o filtro do ACF que injeta a chave no campo. Coloque o snippet no functions.php do tema filho ou em um plugin de snippets de código, trocando o valor pela sua chave real. Salve, limpe o cache e recarregue a tela de edição para ver o mapa carregar.
add_filter('acf/fields/google_map/api', 'full_acf_google_map_api');
<?php
// functions.php do tema filho ou plugin de snippets
// Metodo 1 — filtro especifico do campo Google Map
function full_acf_google_map_api( $api ) {
$api['key'] = 'SUA_CHAVE_DE_API';
return $api;
}
add_filter( 'acf/fields/google_map/api', 'full_acf_google_map_api' );
// Metodo 2 (alternativo) — define a chave global do ACF no acf/init
function full_acf_init() {
acf_update_setting( 'google_api_key', 'SUA_CHAVE_DE_API' );
}
add_action( 'acf/init', 'full_acf_init' );














