Contorizarea vizualizărior în Wordpress pentru paginile AMP

how to count amp views in wordpress


Recent am avut ocazia să-mi aduc contribuția la un proiect, detalii pe larg vor veni mai târziu. Site-ul avea o temă pe care am refăcut-o de la zero și am implementat numărul de vizualizări folosind un AJAX request. În trecut tot erau probleme cu sistemul de cache și nu se înregistra fiecare vizualizare.

 

Sistemul functionează perfect, problema a venit după ce indexarea s-a stabilizat și paginile AMP au început să reprezinte cam 70-80% din trafic. Folosesc pluginul oficial AMP. Problema cu paginile AMP este că sunt livrate de pe serverele Google și nu acceptă Javascript-ul "clasic". Din acest motiv vizualizările articolelor reflectau numai acei vizitatori care intrau pe pagina non-AMP, deci cam 20-30% din traficul real.

 

Soluția este folosirea unui pixel AMP care poate face un request care conține post_id-ul către un fișier din care apoi rulăm scriptul de update în baza de date. Este valabil atât pentru paginile servite de serverul de hosting cât și pentru cele din cache-ul Google.

 

Pentru a "injecta" pixelul AMP trebuie să adăugăm în functions.php următorul cod (documentație plugin AMP):

 

add_action( 'amp_post_template_footer', 'xyz_amp_add_pixel' );
function xyz_amp_add_pixel( $amp_template ) {
$post_id = $amp_template->get( 'post_id' );
?>
<amp-pixel src="https://domeniu.tld/fisierul_de_update.php?post_id=<?php echo $post_id; ?>"></amp-pixel>
<?php
}

 

Putem verifica dacă funcționează din Developer Tools, tabul Network. Vom vedea că acum pe lângă pagina AMP există și un request către https://domeniu.tld/fisierul_de_update.php

 

fisierul_de_update.php poate avea orice denumire cu condiția să actualizăm și src-ul pixelului. Din acest fișier preluăm post_id-ul cu GET, îl sanitizăm și apoi putem rula un query pentru a actualiza numărul de vizualizări al acelui post_id.