Configurar a Nonli no seu site

Este guia destina-se à equipa técnica que integra a Nonli no site de um editor. A Nonli também disponibiliza uma página de configuração personalizada com os valores exatos para o seu domínio.

1. Autorizar os nossos endereços IP#

Para evitar que os nossos crawlers sejam bloqueados, autorize os seguintes endereços IP nos seus servidores, firewall ou WAF.

OVHGoogleHetzner
51.77.188.71130.211.76.244167.235.24.250
51.83.116.244104.155.62.41167.235.65.20
51.255.141.21434.77.85.234116.203.102.173
51.68.75.2777.42.68.147
51.38.196.17489.167.4.248
54.36.13.23889.167.13.146
54.36.18.6846.224.230.139

Também pode obter a lista atualizada de forma programática: www.nonli.com/crawler-ips.json (estruturada) ou www.nonli.com/crawler-ips.txt (texto simples).

2. Escolher o domínio do SDK#

Por razões de segurança e de RGPD, o SDK tem de funcionar num subdomínio do seu domínio principal. Crie um registo CNAME:

l.yourdomain.com → CNAME → tls.non.li

Importante: não ative o proxy da Cloudflare (nuvem laranja) neste registo. Entraria em conflito com o nosso próprio proxy Cloudflare, por isso mantenha-o apenas como DNS (nuvem cinzenta).

A Nonli documenta uma configuração do SDK que pode enquadrar-se na isenção de consentimento descrita pela CNIL. Desde 22 de janeiro de 2025, o nosso SDK deixou de colocar qualquer cookie e o nosso encurtador de links não coloca nenhum cookie da aplicação Nonli; nenhum dos dois cria identificadores de visitantes. Os contadores do SDK e dos links curtos são agregados por conteúdo, link ou domínio; o tratamento da infraestrutura técnica, como TLS, segurança ou registos de exceções, mantém-se separado da medição de audiência.

3. Instalar o SDK#

Adicione este script imediatamente antes da tag de fecho </body> em todas as páginas de artigo e em qualquer página suscetível de ser partilhada nas redes sociais. Indique abaixo o subdomínio do seu SDK e copie o snippet gerado.

Também o pode pré-preencher através do URL com ?domain=l.yourdomain.com.

html
1<script type="text/javascript">
2window._nli=window._nli||[],function(){var n,e,i=window._nli||(window._nli=[]);i.loaded||((n=document.createElement("script")).defer=!0,n.src="https://l.yourdomain.com/sdk.js",(e=document.getElementsByTagName("script")[0]).parentNode.insertBefore(n,e),i.loaded=!0)}();
3</script>

Se uma página utilizada por um bot não puder incluir o SDK, por exemplo a página de quiosque que mostra a primeira página do jornal, adicione o respetivo URL a URLs to monitor (URL a monitorizar): consulte publicar a primeira página do jornal com um bot.

4. Adicionar as meta tags Open Graph#

As tags Open Graph permitem-nos ler corretamente os seus artigos. As datas são o mais importante.

Quando um editor precisar de substituir estes valores padrão ou fornecer campos personalizados de imagem e vídeo, utilize a referência completa das meta tags HTML da Nonli.

4.1. Tags principais do artigo#

html
1<meta property="og:title" content="Article title">
2<meta property="og:url" content="https://www.mysite.com/canonical-url-of-article.html">
3<meta property="og:description" content="Article description">
4
5<!-- These 3 meta tags are particularly important: -->
6<meta property="og:type" content="article">
7<meta property="article:published_time" content="2022-06-06T11:54:30Z">
8<meta property="article:modified_time" content="2022-06-06T12:21:12Z">

4.2. Tags de imagem#

html
1<!-- Use large uncropped images > 1000px -->
2<meta property="og:image" content="https://www.mysite.com/myimage.jpg">
3<meta property="og:image:alt" content="Image description">

Para as imagens, utilize visuais grandes e não recortados com mais de 1000 px. JPG e PNG são os formatos mais seguros para os analisadores de metadados, e a imagem deve ter menos de 8 MB.

4.3. Tags de secção e de palavras-chave#

html
1<!-- article:section classifies content by section (category) -->
2<meta property="article:section" content="Sport" />
3
4<!-- article:tag classifies content with keywords, spread across several tags -->
5<meta property="article:tag" content="keyword 1" />
6<meta property="article:tag" content="keyword 2" />
7<meta property="article:tag" content="keyword 3" />

Utilize um único article:section para a categoria principal e repita article:tag uma vez por palavra-chave.

5. Adicionar dados estruturados schema.org#

Adicione JSON-LD no <head> da página.

5.1. NewsArticle#

NewsArticle é o objeto principal de dados estruturados. articleSection indica-nos as secções do artigo e keywords indica-nos as tags. Os autores costumam já estar bem descritos, mas o objeto tem de incluir pelo menos um autor.

json
1{
2 "@context": "https://schema.org",
3 "@type": "NewsArticle",
4 "mainEntityOfPage": {
5 "@type": "WebPage",
6 "@id": "https://www.example.com/category/my-article.php"
7 },
8 // A unique identifier to avoid duplicate content very quickly
9 "identifier": "123456",
10 "headline": "Main article title",
11 "alternativeHeadline": "Alternative title or article lead",
12 "description": "Complete article description for SEO",
13 "keywords": ["keyword1", "keyword2", "keyword3"],
14 // It might be interesting to add articleSection to make it appear in the categories:
15 "articleSection": ["Main category", "Secondary category"],
16 "author": [
17 {
18 "url": "https://www.example.com/author",
19 "@type": "Person",
20 "name": "First Last",
21 "jobTitle": "Journalist",
22 "address": "City"
23 }
24 ],
25 "datePublished": "2025-09-29T10:00:00Z",
26 "dateModified": "2025-09-29T15:30:00Z",
27 "isAccessibleForFree": true
28}

Utilize isAccessibleForFree: false se o artigo estiver atrás de um paywall.

5.2. ImageObject#

Se o artigo tiver uma imagem principal, inclua-a através do campo image em NewsArticle.

json
1{
2 "@type": "ImageObject",
3 "url": "https://www.example.com/images/hero.jpg",
4 "width": 1200,
5 "height": 630,
6 "caption": "Image description"
7}

5.3. VideoObject#

Se um artigo contiver um vídeo, adicione um bloco JSON-LD VideoObject separado.

json
1{
2 "@context": "https://schema.org",
3 "@type": "VideoObject",
4 "name": "Video title",
5 "description": "Video description",
6 "thumbnailUrl": [
7 "https://www.example.com/video-thumbnail.jpg"
8 ],
9 "uploadDate": "2025-09-29T08:00:00+00:00",
10 "duration": "PT1M54S",
11 "contentUrl": "https://www.example.com/video/123/file.mp4",
12 "embedUrl": "https://www.example.com/embed/123",
13 "interactionStatistic": {
14 "@type": "InteractionCounter",
15 "interactionType": { "@type": "WatchAction" },
16 "userInteractionCount": 5647018
17 },
18 "regionsAllowed": "FR"
19}

6. Lista de verificação final#

  • NewsArticle: inclua identifier, datePublished, dateModified e pelo menos um author.
  • Datas: utilize ISO 8601, em UTC (Z) ou com um desvio de fuso horário.
  • Open Graph: adicione og:type=article, as datas de publicação e de modificação, um article:section e um article:tag por palavra-chave.
  • JSON-LD: exponha as categorias com articleSection e as tags com a matriz keywords.
  • Imagens: utilize um og:image grande e não recortado, adicione og:image:alt e inclua as dimensões da imagem no JSON-LD sempre que possível.
  • Vídeos: adicione VideoObject apenas quando o artigo incorporar um vídeo.

Para um acompanhamento guiado da integração, peça uma demo.

Se um artigo específico continuar a faltar após a configuração, siga o diagnóstico da recolha de conteúdos web.

Este artigo foi útil?

Marque uma demo personalizada com a nossa equipa.