El mayor problema de hacer eso, es la forma de bloquear scripts y cookies, yo sé lo que uso en mis sitios porque o bien programo yo o hago mis propios themes para wordpress, por lo tanto me es muy fácil bloquear todo hasta que yo quiera.
Pero hay gente que incluso utiliza fuentes en sus sitios webs de google fonts, cargadas desde el servidor de google, eso no se puede hacer a menos que te lo permitan los usuarios. En mi caso, cuando uso una fuente de google fonts, la descargo y la pongo en mi servidor, así me evito tener la necesidad de pedir permiso y carga más rápido.
Eso es solo un ejemplo de la complejidad que tengo para hacer un tutorial.
En mi caso es muy claro: Google analytics 4 e iframes con videos de youtube o post de instagram, no tengo nada más.
Lo que hice fue quitar el <script> que te da el propio google analytics 4 y cambiar los atributos src de los iframe a data-src para que no cargase. Esto lo hice con php a través de mi theme:
Insertar CODE, HTML o PHP:
add_filter( 'render_block', 'ec_filter_blocks_gutenberg' , 10, 2 );
function ec_filter_blocks_gutenberg( $block_content, $block ) {
if( !is_admin() and 'core/embed' == $block['blockName'] and $block['attrs']['providerNameSlug'] == 'youtube' ) {
$block_content = preg_replace('/<iframe(.*?)src=\"(.*)\"(.*?)><\/iframe>/isU', '<iframe class="iframe"$1data-src="$2"$3></iframe>', $block_content);
}
return $block_content;
}
En mi caso es muy fácil ya que utilizo gutenberg y el block embed que trae el propio gutenberg.
En el atributo src va la url del video y al cambiar el atributo de nombre, los navegadores no lo cargan.
Por último debajo del <script> de google adsense puse:
Insertar CODE, HTML o PHP:
<script>
window.googlefc = window.googlefc || {};
window.googlefc.ccpa = window.googlefc.ccpa || {};
window.googlefc.callbackQueue = window.googlefc.callbackQueue || [];
// Poner el callback en la cola
googlefc.callbackQueue.push({
'AD_BLOCK_DATA_READY': () => {
if (googlefc.getAdBlockerStatus() === googlefc.AdBlockerStatusEnum.NO_AD_BLOCKER) {
// Crear un nuevo elemento <script>
let script = document.createElement('script');
// Añadir atributos al elemento <script>
script.async = true;
script.src = "https://www.googletagmanager.com/gtag/js?id=ID-GA4";
// Evento para saber cuando se ha cargado el script
script.addEventListener('load', () => {
// Crear un nuevo elemento <script> para el código adicional
let inlineScript = document.createElement('script');
// Añadir el código JavaScript al elemento <script>
inlineScript.innerHTML = `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'ID-GA4');
`;
// Añadir el nuevo elemento <script> al <head> del documento
document.head.appendChild(inlineScript);
});
// Añadir el elemento <script> al <head> del documento
document.head.appendChild(script);
// iframes
document.querySelectorAll('.iframe').forEach((iframe) => {
const dataSrc = iframe.getAttribute('data-src');
if (dataSrc) {
iframe.setAttribute('src', dataSrc);
}
});
}
}
});
</script>
Con este ejemplo básico cargaría google analytics 4, sustituyendo donde dice ID-GA4 por tu ID de analytics y los videos de youtube, solamente en el caso de que hayan consentido en el banner de cookies de google adsense.
También para asegurarme en google adsense edito el mensaje de cookies y pongo:
Insertar CODE, HTML o PHP:
Para el correcto funcionamiento de esta web usamos cookies propias necesarias para que el sitio funcione y de terceros (para analíticas, publicidad y ver vídeos), Nuestros socios (incluido Google) pueden recopilar, compartir y utilizar datos personales para personalizar anuncios. Si desea dar su consentimiento tan solo hay que hacer click en consentir.
En fin, eso sería todo y no es muy complejo, pero, mi idea con el tutorial cuando saque tiempo es crear un plugin que bloquee todo lo que haya que bloquear simplemente activando el plugin y para ello tengo que pensar qué clase de cosas pueden tener los sitios de la gente.
En mi caso que me encanta que mis sitios funcionen muy rápidos, apenas uso nada externo y me es muy fácil pensar en mis sitios webs, pero por experiencia de haber trabajado con clientes, sé que la gente usa 50.000 plugins con mil cosas que podrían insertar automáticamente y no deberían, lo cual lo hace más complejo de explicar para alguien que no tenga suficientes conocimientos.