Imagem de capa do projeto: NEXUS SimilarWeb EM ANDAMENTO

Resumo técnico

Plugin NEXUS de inteligência de mercado e análise de tráfego web via SimilarWeb API V5: total de visitas, engajamento (rejeição, páginas/visita, tempo no site), fontes de tráfego, rankings e concorrentes por afinidade — com modo gratuito/estimativa sem chave, cache local de 7 dias, configuração de API Key na UI e sinais de enriquecimento de domínios no Intelligence Hub.

Escopo executado

  • Backend backend.php (489 linhas): SIMILARWEB_CACHE_TTL = 604800 (7 dias); similarweb_get_api_key() lê similarweb_settings.api_key com fallback para a constante SIMILARWEB_API_KEY.
  • Tabelas (criadas por similarweb_install() no load): similarweb_cache (id, kind, query_key VARCHAR(255), status, http_code, data LONGTEXT, error, task_id, updated_at; UNIQUE uk_kind_key (kind, query_key), idx_updated_at) e similarweb_history (id, query_type, query_val VARCHAR(255), status, task_id, created_at; idx_created_at).
  • Cache: similarweb_cache_get/put — upsert por kind+chave (chave em minúsculo) com TTL 7 dias; toda consulta registrada no histórico; parâmetro force ignora o cache.
  • HTTP: similarweb_http_get(endpoint, params, timeout) — base https://api.similarweb.com/; api_key anexada aos query params quando configurada; connect 4s / timeout 10s (padrão); Accept: application/json.
  • Dois modos de operação: sem API Key → resposta FREE com estimativas estruturadas (mode: ESTIMATED — visitas simuladas, engajamento, rankings e concorrentes de exemplo, cacheadas para testes); com API Key → dados reais da SimilarWeb V5.
  • similarweb_traffic — GET v1/website/{domain}/total-traffic-and-engagement/visits (granularity mensal, main_domain_only=false); visitas por mês, bounce rate, page_views, time_on_site, monthly_change, global/country/category rank e categoria.
  • similarweb_sources — GET v1/website/{domain}/traffic-sources/overview; distribuição direto/orgânico/social/referrals/busca paga/email + principais keywords orgânicas.
  • similarweb_ranking — GET v1/website/{domain}/global-rank/global-rank; global, país e categoria (disponível via API; na UI os ranks aparecem nos cards da aba Tráfego).
  • similarweb_similar — GET v1/website/{domain}/similar-sites/similarsites; concorrentes com score de afinidade e categoria.
  • similarweb_status — sem chave: modo FREE (services.similarweb_api online, message explicativo); com chave: GET v1/capabilities + online/http_code por serviço.
  • similarweb_history — page e limit ≤ 50, ordenado por id DESC (query_type, query_val, status, task_id, created_at).
  • similarweb_settings_save — action real (não placeholder): salva a API Key em DB::setConfig('similarweb_settings', ['api_key' => ...]), com fallback para a constante.
  • API: 7 actions via PluginManager::registerApiAction (similarweb_status, similarweb_traffic, similarweb_sources, similarweb_ranking, similarweb_similar, similarweb_history, similarweb_settings_save).
  • Intelligence Hub: enricher similarweb (prioridade 60, tipos domain/url) — URLs são reduzidas ao host (parse_url) e deduplicadas por domain:valor; consulta similarweb_traffic e, se houver engajamento, emite signal severity: 'info', status: 'analyzed', summary SimilarWeb: ~{visitas} visitas/mês, Rejeição: {bounce}%, com cached quando servido do cache.
  • UI Alpine.js (tab.php, 468 linhas): tema indigo; badge de modo (verde "API Ativa" / âmbar "Modo Gratuito / Estimativa") + botão ⚙️ Configurar Key (modal com campo senha → similarweb_settings_save); abas Tráfego (análise dispara tráfego + fontes + concorrentes em paralelo; KPI cards — Total de Visitas (B/M/K), Rejeição, Páginas/Visita, Tempo Médio (m/s) — e cards de Global/Country/Category Rank + badge de categoria), Fontes (barras por canal), Concorrentes (tabela domínio/categoria/afinidade + botão "Analisar" que re-executa a análise do concorrente) e Histórico (tipo/domínio/status/data); toggle JSON bruto.
  • Fastr: 3 comandos — /similarweb <domínio> (domain), /similarweb-sources <domínio> (domain), /similarweb-similar <domínio> (domain); todos arg_required=true.
  • Sem cronjob.json — plugin sob demanda com cache de 7 dias.

Stack e ferramentas

  • PHP 8 (sem framework)
  • MySQL 8 (similarweb_cache + similarweb_history)
  • Alpine.js + Tailwind CSS (premium light, indigo ring)
  • Sistema de plugins do NEXUS (PluginManager)
  • cURL → SimilarWeb API V5 (api.similarweb.com)

Tags operacionais

  • Inteligência de Mercado
  • SimilarWeb
  • SEO
  • Tráfego Web
  • Competitive Intelligence
  • Analytics
  • Plugin NEXUS

Resultado operacional

  • Análise de qualquer domínio em um clique: volume de visitas, engajamento, rankings e categoria exibidos em cards legíveis sem abrir o navegador.
  • Visão de canais de aquisição com barras por fonte (direto, orgânico, social, referrals, pago, email) para avaliar a estratégia de tráfego do alvo.
  • Benchmark competitivo: concorrentes ordenados por afinidade de audiência, com botão para re-analisar cada um diretamente.
  • Enriquecimento automático: domínios citados em tarefas/comentários viram sinais informativos (visitas/mês e rejeição) no Intelligence Hub.
  • Modo gratuito sem chave para testes e pré-visualizações; API Key opcional configurável na própria UI.
  • Cache de 7 dias: reconsultas não re-queimam créditos da API paga e o histórico de consultas fica auditável.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Plugin NEXUS de inteligência de mercado e análise de tráfego web via SimilarWeb API V5: total de visitas, engajamento, fontes de tráfego, rankings e concorrentes por afinidade — com modo gratuito/estimativa sem chave, cache local de 7 dias, configuração de API Key e sinais de enriquecimento de domínios no Intelligence Hub.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.