![6GL13L.png](https://i.resimyukle.xyz/6GL13L.png)
Merhaba TürkHackTeam Üyeleri.
Bu Konumda Sizlere Page Speed Analytics.js Sorunu Çözümünü Anlatacağım.
![PeK4Tf.gif](https://i.resimyukle.xyz/PeK4Tf.gif)
Konu İçeriği
➤ Analytics.js Cache Sorunu
➤Analytics.js Cache Sorunu Çözümü
![3bPSLV.png](https://i.resimyukle.xyz/3bPSLV.png)
Analytics.js Cache Sorunu
Günümüzde teknolojinin ilerlemesi ile birlikte kullanıcılar zaman ile yarışmaya başladı. Google SEOda son birkaç yıldır site yükleme hızınızı önemsemeye başladı. Daha doğrusu artık Google tarafında bu çok önemli bir rol almaya başladı. Google site yükleme hızıyla ilgili en önemli araçlardan biri olan Google Page Speed Insights da sitemizin yükleme hızıyla ilgili hatalarını görebiliyoruz.
Bu hatalardan bazıları;
»CSS minify(CSS küçültme),
»HTML minify(HTML küçültme),
»Resim optimizasyonu,
»Sunucu yanıt süresi,
»Tarayıcı önbellekleme özelliği
Bu makalede sizlere analytics.js cache sorunun çözümünü paylaşacağım.
Eğer yukarıdaki optimizasyonları yaptıysanız 99/100 olarak skor görüyorsunuz. Bu makale sizlere 100/100 skor yapmayı hedeflemektedir.
![5yef6S.png](https://i.resimyukle.xyz/5yef6S.png)
![WVABMN.gif](https://i.resimyukle.xyz/WVABMN.gif)
Analytics.js Cache Sorunu Çözümü
Analytics.js soru çözümü için aşağıda sunduğum 5 adımı eksiksiz olarak tamamlamanız gerekmektedir.
![AAU3JG.png](https://i.resimyukle.xyz/AAU3JG.png)
1. Yöntem
»Analytics JavaScript Dosyası: Yapmanız gereken ilk şey, Googleın analytics javascript dosyasını locale (yerel olarak) bir javascript dosyası oluşturarak içine atmanız. Bu sayfaya girerek sağ tıklayıp farklı kaydet olarak masaüstüne local-ga.js olarak kaydediyorsunuz.
![3bHUaJ.jpg](https://i.resimyukle.xyz/3bHUaJ.jpg)
»Analytics.Js Ftpye Yükleme: local-ga.js dosyasını sunucunuza yüklüyorsunuz.
Önemli Not: Bu dosyanın stabil çalışabilmesi için tüm yetkileri vermeniz gerekmektedir.
»İzleme Kodunu Düzenleme: Daha sonrasında sitenizde Google Analytics izleme kodunu aşağıdaki şekilde güncellememiz gerekmektedir. Aşağıdaki örnekte local-ga.js dosyasını nasıl kullandığımızı göstermektedir.
![0dARSS.jpg](https://i.resimyukle.xyz/0dARSS.jpg)
![zLP3B9.jpg](https://i.resimyukle.xyz/zLP3B9.jpg)
»Analytics Dosyasını Güncelleme: 2.adımda not olarak belirttiğimiz bölümün amacını bu adımda daha iyi anlayacağız. Google analytics.js yerel olarak çalıştırdığımızda periyodik olarak güncelleme yapmamız gerekmektedir. Zaten bütün sorunlar burada başlıyordu. Google tarafından periyodik olarak bu javascript dosyası güncellenmektedir. Biz bu dosyayı lokal(yerel olarak) kaydettiğimiz için güncellenmemektedir. Bu adım da nasıl güncelleyeceğimizi anlatacağım. Eğer bu adımı yapmaz isek Googleın yapacağı bir güncelleme sonucunda sitenizdeki trafiği izlenmesinde doğru raporlar alamayabilirsiniz. Şimdi bir adet ga-update.php isminde bir dosya oluşturalım. İçerisine aşağıdaki kodları yazacağız.
Kod:
[FONT="Courier New"][COLOR="RoyalBlue"][CENTER]<?
// script to update local version of Google analytics script
// Remote file to download
$remoteFile = 'https://www.google-analytics.com/analytics.js';
$localfile = 'ENTER YOUR ABSOLUTE PATH TO THE FILE HERE';
//For Cpanel it will be /home/USERNAME/public_html/local-ga.js
// Connection time out
$connTimeout = 10;
$url = parse_url($remoteFile);
$host = $url['host'];
$path = isset($url['path']) ? $url['path'] : '/';
if (isset($url['query'])) {
$path .= '?' . $url['query'];
}
$port = isset($url['port']) ? $url['port'] : '80';
$fp = @fsockopen($host, '80', $errno, $errstr, $connTimeout );
if(!$fp){
// On connection failure return the cached file (if it exist)
if(file_exists($localfile)){
readfile($localfile);
}
} else {
// Send the header information
$header = "GET $path HTTP/1.0\r\n";
$header .= "Host: $host\r\n";
$header .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6\r\n";
$header .= "Accept: */*\r\n";
$header .= "Accept-Language: en-us,en;q=0.5\r\n";
$header .= "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
$header .= "Keep-Alive: 300\r\n";
$header .= "Connection: keep-alive\r\n";
$header .= "Referer: http://$host\r\n\r\n";
fputs($fp, $header);
$response = '';
// Get the response from the remote server
while($line = fread($fp, 4096)){
$response .= $line;
}
// Close the connection
fclose( $fp );
// Remove the headers
$pos = strpos($response, "\r\n\r\n");
$response = substr($response, $pos + 4);
// Return the processed response
echo $response;
// Save the response to the local file
if(!file_exists($localfile)){
// Try to create the file, if doesn't exist
fopen($localfile, 'w');
}
if(is_writable($localfile)) {
if($fp = fopen($localfile, 'w')){
fwrite($fp, $response);
fclose($fp);
}
}
}
?>[/CENTER][/COLOR][/FONT]
»Analytics.js için Cron Yazma: Son adım olarak periyoduk olarak güncelleme yapması gereken bir cron işlemi yapmanız gerekmektedir. Bu işlem local-ga.js dosyanızı Google üzerindeki ile periyodik olarak güncelleme işlemi yapacaktır.
Kod:
[CENTER][FONT="Courier New"][COLOR="royalblue"]02 4 * * * / usr / bin / php /home/USERNAME/public_html/ga-update.php 2> & 1[/COLOR][/FONT][/CENTER]
![aWbJKN.png](https://i.resimyukle.xyz/aWbJKN.png)
2. Yöntem : User Agent
1.yöntem ile native(en sade şekilde) olarak analytics.js nin page speed skorunun 100/100 alarak rakip firmaların ve müşterinizin gözünde +1 puan sağlamaktadır. Paylaştığımız ilk yöntem sağlıklı ve en güvenli yöntemdir. 2.yöntem ise kullanımı çok basit ama önermediğimiz bir yöntemdir. Analytics kodu bir javascript kodu olduğu için bizim önerimiz footera eklenmesidir.
Kod:
[FONT="Courier New"][COLOR="RoyalBlue"][CENTER]< script >
if(navigator.userAgent.indexOf("Speed Insights") == -1) {
(function (i, s, o, g, r, a, m) {
i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
(i[r].q = i[r].q || []).push(arguments)
}, i[r].l = 1 * new Date(); a = s.createElement(o),
m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
})(window, ********, 'script', '//www.google-analytics.com/analytics.js', 'ga');
ga('create', 'UA-XXXXXXX-X', 'auto');
ga('send', 'pageview');
}
< /script >[/CENTER][/COLOR][/FONT]
Burada UserAgent özelliğini kullanarak page speedin speed insights değerini okumadan analytics kodlarını eklemektedir
Kod:
[FONT="Courier New"][COLOR="royalblue"][CENTER]if(navigator.userAgent.indexOf("Speed Insights") == -1) {[/CENTER][/COLOR][/FONT]
[divider style=solid top=40″ bottom=40″]
![aWbJKN.png](https://i.resimyukle.xyz/aWbJKN.png)
3.Yöntem : WordPress Eklentisi ile Sorunu Çözmek
Çoğunlukta ufak çözümleri eklenti ile basit yola başvurarak;
gtmetrixde waterfall beni ilgilendirmiyor,
nasılsa eklenti sorunumu çözüyor,
sunucu tabii ki işlemleri o yapacak
diyen arkadaşlarımız için wordpress eklenti ile bu sorunun çözümünü göstereceğiz.
» Eklenti bölümünden yeni ekle seçeneğine tıklıyoruz.
![4QA9zS.jpg](https://i.resimyukle.xyz/4QA9zS.jpg)
» Arama kısmına Complete Analytics Optimization Suite (CAOS) isimli eklentiyi yüklüyoruz. Daha sonra eklentimizi etkinleştir yapıyoruz. Sol taraftaki ayarlar bölümünden Optimize Analytics e tıklıyoruz.
![AUSRa2.jpg](https://i.resimyukle.xyz/AUSRa2.jpg)
» Burada Tracking IDmizi, tracking kodumuzun header/footer daki yerleşim yerini seçiyoruz.
![1U66L6.jpg](https://i.resimyukle.xyz/1U66L6.jpg)
» Son adım olarak ise bounce rate 30 yaparak değişiklikleri kaydet yaparak işlemimizi tamamlıyoruz.
![u9SS0e.gif](https://i.imgyukle.com/2020/08/28/u9SS0e.gif)
![6LLyGU.png](https://i.resimyukle.xyz/6LLyGU.png)
//Alıntıdır
Okuduğunuz İçin Teşekkür Ederim.
Esenlikle Kalın..
Saygılarımla:Smiley1021:
![MJ7SfS.png](https://i.resimyukle.xyz/MJ7SfS.png)