Diretrizes Técnicas

Embora os smartphones estejam cada vez mais disponíveis em todo o mundo, a maioria das pessoas em mercados emergentes ainda possui celulares comuns. Para garantir que o Free Basics esteja ao alcance de todos, nosso foco está no suporte a sites móveis leves.

Detalhes

Para fazer com que seu site seja exibido de forma apropriada na Plataforma Free Basics, e para que ele seja acessível a pessoas com todos os tipos de celulares e planos de dados, seus sites móveis devem atender a certas condições técnicas criadas pelo proxy do Free Basics. Especificamente, os sites móveis devem funcionar na falta de:

  • JavaScript
  • iframes
  • Vídeos e imagens grandes
  • Flash e applets Java

Se os sites contiverem qualquer um dos itens acima após a implementação, eles serão bloqueados até que possamos confirmar se o conteúdo foi removido.

JavaScript

Para oferecer uma experiência capaz de funcionar nos mais variados dispositivos, seu serviço deve continuar funcional e útil quando o JavaScript for desabilitado. Isso significa que seu conteúdo não deve depender do JavaScript para realizar as principais experiências do usuário, especialmente a navegação ou outras funcionalidades essenciais.

iframes

Algumas supressões podem ocorrer com os iframes, portanto, certifique-se de que seu conteúdo não dependa deles. Recomendamos evitar completamente os iframes, uma vez que eles tendem a restringir uma experiência móvel.

Vídeos e imagens grandes

Para respeitar o baixo consumo de dados para pessoas que usam o Free Basics, evite recursos que tenham elevado consumo de dados, como vídeos e imagens em alta definição. Não exibiremos arquivos de vídeo e cortaremos recursos com mais de 200 KB.

Flash e applets Java

O Free Basics não suporta recursos em Flash ou applets Java. Se seu serviço utilizar essas tecnologias, certifique-se de implementar os devidos fallbacks para que elas possam ser ocultadas de maneira apropriada e não interrompam a funcionalidade do seu site.

Suporte HTTPS

Nós criptografamos as informações para o Free Basics sempre que possível. Quando as pessoas usam o aplicativo para Android do Free Basics, o tráfego delas é completamente criptografado, a menos que você especifique que seu serviço deve ser somente HTTP. Para o site do Free Basics em um navegador móvel, nós usamos um modelo de “certificado duplo” para criptografar o tráfego entre o dispositivo de uma pessoa e nossos servidores em ambas as direções. Se seu servidor suportar HTTPS, também criptografaremos o tráfego entre nossos servidores e o seu. Mesmo que seu serviço ainda não ofereça suporte a HTTPS, quando possível, criptografaremos as informações entre nossos servidores e os dispositivos das pessoas, a menos que você nos peça para não usar o HTTPS de certificado duplo. Quando as pessoas usam o site móvel do Free Basics, as informações são descriptografadas temporariamente em nossos servidores seguros para garantir o funcionamento apropriado dos serviços e evitar cobranças inesperadas.

Garantimos a privacidade dessas informações enquanto elas são descriptografadas, só armazenando o nome do domínio do seu serviço e a quantidade de dados que está sendo usada (as mesmas informações que estariam visíveis com o uso da criptografia completa), bem como os cookies que são armazenados em um formato criptografado e ilegível.

Proxy da Internet.org

A partir do Free Basics, todo o tráfego é roteado por meio do proxy da Internet.org. Fazemos isso para criar um fluxo de tráfego padrão, para que as operadoras possam identificar devidamente o seu serviço e oferecer uma tarifa gratuita para ele. É importante observar que seu serviço não é hospedado nem armazenado em cache pela Internet.org (ele ainda operará nos seus próprios servidores e será completamente mantido por você), e, ao detectar solicitações que são transferidas pela Plataforma Free Basics, você pode aplicar controles como o bloqueamento geográfico para seu conteúdo e/ou medir o tráfego da sua Plataforma Free Basics.

Endereços IP

  • Saiba que, devido à criptografia SSL, o aplicativo Free Basics para Android não oferece suporte aos campos de cabeçalho HTTP x-iorg-fbs-uip e x-iorg-fbs.

Como as solicitações passam pelo proxy da Internet.org, o endereço IP de solicitação de HTTP sempre será dos nossos servidores, não do solicitante original. Você pode obter o IP do solicitante original no campo de cabeçalho HTTP X-IORG-FBS-UIP (que é criado por nosso proxy).

Nosso proxy também segue a convenção X-Forwarded-For, portanto, o mesmo endereço IP será encontrado nesse campo (como um primeiro endereço IP não privado).

Detectando solicitações

Todas as solicitações que passam pelo proxy da Internet.org conterão o campo X-IORG-FBS (sempre definido como true). Basta apenas verificar sua existência dentro do cabeçalho.

Além disso, a cadeia Internet.org é inserida no campo de cabeçalho Via, que é uma maneira secundária de identificar solicitações que passaram por nosso proxy.

Todas as solicitações recebidas do aplicativo Android conterão um valor de cabeçalho HTTP usuário-agente único (que depende da versão do aplicativo). Um exemplo de usuário-agente é:

Mozilla/5.0 (Linux; Android 7.1.2; Pixel Build/N2G47E; wv) AppleWebKit/537.36 (KHTML, como Gecko) Version/4.0 Chrome/57.0.2987.132 Mobile Safari/537.36[FBAN/InternetOrgApp; FBAV/7.0;]

Para detectar a solicitação, você pode verificar se a cadeia de caracteres contém “InternetOrgApp”

Cookies

Há suporte para cookies.

User Agent (Cadeia de caracteres do UA)

A Cadeia de caracteres do UA do solicitante original não é alterada pelo proxy da Internet.org.

Análises e medições

Você pode usar no seu site os serviços de monitoramento, como Google Analytics, Effective Measure, Chartbeat etc. Conforme mencionado acima, nosso ambiente da Web não oferece suporte a JavaScript no momento, e é importante estar ciente disso, uma vez que muitos serviços de análise dependem do JavaScript para sua total funcionalidade, ainda que a maioria ofereça um fallback para quando o JavaScript não está disponível. Consulte a documentação do serviço que você estiver usando.

Google Analytics

Para facilitar o uso do Google Analytics sem JavaScript dentro da Plataforma do Free Basics, confira algumas diretrizes sobre como configurar seu serviço.

Como detectar o país

Para detectar corretamente o país do usuário, você precisa preencher corretamente o parâmetro de substituição UIP da solicitação do Google Analytics. A maneira mais fácil de fazer isso é usar o campo de cabeçalho HTTP X-IORG-FBS-UIP (consulte Proxy da Internet.org). Seria necessário definir o parâmetro UIP no lado do servidor para a solicitação para o Google Analytics.

Como monitorar sem JavaScript

Para realizar a análise de tráfego sem JavaScript, você precisará usar o lado do servidor de seu serviço.

As solicitações do Google Analytics podem ser gerenciadas completamente pelo back-end, e o servidor pode assumir o gerenciamento de cookies (ou diferenciar os usuários de alguma outra forma). Você pode decidir quais parâmetros da solicitação preencher e usar para a análise. Isso é feito usando o Protocolo de medição do Google Analytics.

Se você já tiver uma solução iframe, precisará realizar uma solicitação POST no lado do servidor para o endereço do Google Analytics. A maioria dos parâmetros será consistente com aqueles usados pela solução iframe.

Teste

Antes de enviar seu site para consideração, você deve testá-lo em relação a todos os requisitos acima. Os seguintes recursos podem ajudar a fornecer feedback em tempo real, informando se você está pronto.

Emulador de dispositivos do Chrome

O Navegador Chrome pode emular uma experiência móvel, o que facilita imensamente a maioria dos aspectos de teste. Recomendamos ativar o Emulador de dispositivos e testar todo seu site com:

As instruções podem ser encontradas aqui: https://developer.chrome.com/devtools/docs/device-mode

Emulador do Opera

O Opera oferece um emulador próprio, que permite realizar testes mais específicos de como seu site renderiza e se comporta no navegador Opera Mini.

As instruções podem ser encontradas aqui: http://dev.opera.com/articles/installing-opera-mini-on-your-computer/