Publicidad y privacidad
Cómo gana dinero este sitio — y qué se niega a hacer
Esta página existe porque «gratis» suele esconder algo. Aquí tienes todo, en lenguaje sencillo y con el código que de verdad se ejecuta en el sitio. Sin letra pequeña.
La versión corta
- Tu código nunca sale de tu dispositivo. El compilador se ejecuta dentro de tu navegador. No hay ningún servidor que lo reciba.
- Sin anuncios en la parte en la que estás trabajando. El editor, el botón Ejecutar y los resultados de las pruebas están libres de anuncios por diseño — lo impone el código, no lo promete una política.
- Sin anuncios por encima del contenido que has venido a ver. No habrá ningún banner que empuje el artículo hacia abajo. Esto también lo impone una lista de permitidos.
- No ponemos cookies de seguimiento. Tu tema, tu idioma, tus borradores y tu progreso se guardan solo en tu navegador.
- Los anuncios vienen de Google AdSense, y Google pone sus propias cookies — más abajo te explicamos exactamente cómo desactivar la publicidad personalizada.
Afirmación 1 — tu código no se sube
Todo lo que escribes lo compila JSCPP, un intérprete de C++ escrito en JavaScript que se carga una vez en tu página:
// js/site.js — el único lugar donde se descarga el motor
var SELF = document.currentScript;
var VENDOR_BASE = (function () {
var src = (SELF && SELF.src) || "";
var i = src.indexOf("js/site.js");
return i >= 0 ? src.slice(0, i) : ""; // funciona desde /, /zh/ y /es/
})();
// Un archivo local que se publica con el sitio. No es un CDN: la página
// no carga nada de un dominio de terceros.
var JSCPP_URL = VENDOR_BASE + "vendor/jscpp.min.js";
// ... y así es como se ejecuta tu programa: localmente, en esta pestaña.
function runInPage(code, stdin) {
return loadEngineScript().then(function (JSCPP) {
var out = "";
var exitCode = JSCPP.run(code, stdin || "", {
stdio: { write: function (s) { out += s; } }
});
return { ok: true, output: out, exitCode: exitCode };
});
}
No hay ningún fetch, ningún XMLHttpRequest ni ningún envío de formulario en el código de corrección. Puedes comprobarlo: abre las herramientas de desarrollo (DevTools) → Red, ejecuta cualquier problema y verás que ninguna petición lleva tu código fuente.
Afirmación 2 — sin anuncios junto al editor ni a los resultados de las pruebas
El sitio tiene 370 comentarios de hueco publicitario. Solo siete tipos tienen permiso para mostrar realmente un anuncio. Los demás — incluidos todos los huecos de «parte superior de la página» — quedan inactivos para siempre, porque empujarían el contenido hacia abajo:
// js/ads.js — la lista de permitidos que se aplica de verdad en este sitio
var CPPLAB_AD_PLACEMENT = {
allow: [
"below solution", // un solo punto, después de la solución del problema
"mid-article", // solo artículos largos, entre secciones
"mid-lesson unit",
"end of article",
"end-of-lesson unit",
"bottom of hub", // pie de página de una página de listado
"bottom unit"
]
// "top of article", "top of hub", "above lesson content" y
// "top responsive unit" no están aquí a propósito. Nunca se renderizan.
};
Y este es el bucle que recorre la página en busca de marcadores — fíjate en el filtro allow.some(...): todo lo que no está en la lista se omite, no se renderiza:
if (/^\s*AD:/.test(t) && allow.some(function (k) { return t.indexOf(k) !== -1; })) {
marks.push(walker.currentNode); // solo los huecos permitidos reciben un anuncio
}
Qué significa esto para ti, que estás aprendiendo: cuando escribes código y lees si ha pasado o ha fallado, no hay nada que pulsar ni nada que compita por tu atención. El primer anuncio con el que te puedes encontrar en una página de problema aparece después de la solución, es decir, cuando ya has terminado.
Afirmación 3 — sin cookies de seguimiento por nuestra parte
Este sitio guarda exactamente cinco cosas, todas locales, y todas las puedes leer y borrar tú:
| Clave | Qué guarda |
|---|---|
cpplab.theme | modo claro u oscuro |
cpplab.lang | tu elección de idioma |
cpplab.code | tu borrador del editor |
cpplab.practice.… | tu borrador de cada problema |
cpplab.game | problemas resueltos, logros y racha |
No ponemos cookies propias. Si borras los datos del sitio en tu navegador, desaparece todo lo anterior y no se pierde nada por nuestra parte — porque no tenemos ninguna copia.
Afirmación 4 — qué hace Google, con honestidad
Para que el sitio siga siendo gratis, tenemos previsto mostrar publicidad de Google AdSense. Cuando esté activa:
- Google (como proveedor externo) usa cookies para mostrar anuncios basados en tus visitas anteriores a este y a otros sitios web.
- El uso que hace Google de las cookies publicitarias permite que él y sus socios muestren anuncios basados en tus visitas a este sitio y/u otros lugares de internet.
- Puedes desactivar la publicidad personalizada en la configuración de anuncios de Google.
- A los visitantes del EEE/Reino Unido se les mostrará un aviso de consentimiento, tal como exige la política de consentimiento de usuarios de la UE de Google.
- Mantenemos Auto Ads desactivado. Eso significa que no hay anuncios intersticiales a pantalla completa ni una barra inferior fija que te asalte a mitad de párrafo.
Lo que nunca haremos
- Poner un anuncio entre tú y un botón Ejecutar, o dentro de un resultado de prueba.
- Poner los problemas de práctica detrás de un muro de pago, o esconder una solución detrás de un registro.
- Vender tus datos — no recopilamos ninguno que vender.
- Mostrar un muro de «desactiva tu bloqueador de anuncios». Si bloqueas los anuncios, el sitio sigue funcionando por completo.
Cómo comprobar todo esto por tu cuenta
- Mira el código: los archivos de arriba (
js/site.js,js/ads.js) son JavaScript normal, íntegro y sin ningún paso de compilación. - Observa la red: herramientas de desarrollo → Red → resuelve un problema. Ninguna petición contiene tu código.
- Cuenta los anuncios: en una página de problema, el primer hueco de anuncio está después de la solución; en un artículo, nunca por encima del primer encabezado.
- Limpia: herramientas de desarrollo → Aplicación → Almacenamiento local → borra las claves. Recarga. Vuelves a ser un visitante completamente nuevo.
Si algo de esta página resulta no coincidir con lo que el sitio hace en realidad, es un error — avísanos y corregiremos el código o la página. Política de privacidad completa.