Çevrimdışı çalışan bir uygulama geliştiriyorsanız kullanıcıların bağlantısı olmadığında uygulamanızla nasıl etkileşimde bulunduklarını anlamak, bu deneyimi optimize etmek açısından çok önemlidir.
Google Analytics gibi Analytics sağlayıcıları, sunucularına veri göndermek için ağ bağlantısı gerektirir. Bu nedenle, bağlantı mevcut değilse bu istekler başarısız olur ve bu etkileşimler analiz raporlarınızda eksik olur. Bunlar hiç gerçekleşmemiş gibi olacak.
Workbox Google Analytics, Service Worker'ın başarısız istekleri algılama özelliğinden yararlanarak Google Analytics kullanıcıları için bu sorunu çözer.
Google Analytics, tüm verileri Measurement Protocol'e gönderilen HTTP istekleri aracılığıyla alır. Bu, bir Hizmet Çalışanı komut dosyasının Measurement Protocol'e gönderilen başarısız istekleri algılamak için bir getirme işleyicisi ekleyebileceği anlamına gelir. Bu istekleri IndexedDB'de saklayabilir ve daha sonra bağlantı yeniden kurulduktan sonra tekrar deneyebilir.
Workbox Google Analytics, tam olarak bunu yapar. Ayrıca, analytics.js ve gtag.js komut dosyalarını önbelleğe almak için getirme işleyicileri ekler. Böylece bu komut dosyaları çevrimdışı olarak da çalıştırılabilir. Son olarak, başarısız istekler
yeniden denedikten sonra, Workbox Google Analytics,
qt
Google Analytics'teki zaman damgalarının
orijinal kullanıcı etkileşiminin süresi.
Workbox Google Analytics'i etkinleştirme
Workbox Google Analytics'i etkinleştirmek için initialize()
yöntemini çağırın:
import * as googleAnalytics from 'workbox-google-analytics';
googleAnalytics.initialize();
Google Analytics'e gönderilen başarısız isteklerin sıraya alınması ve yeniden denenmesi için gereken tek kod budur. Ayrıca, Google Analytics'i çevrimdışı çalıştırmanın en basit yoludur.
Ancak yalnızca yukarıdaki kodu kullanıyorsanız yeniden denenen istekler ilk denemede başarılı olan isteklerden ayırt edilemez. Bu, çevrimdışı kullanıcıların tüm etkileşim verilerini aldığınız ancak kullanıcı çevrimdışıyken hangi etkileşimlerin gerçekleştiğini anlayamadığınız anlamına gelir.
Bu sorunu gidermek için gönderilen verileri değiştirmek veya ek açıklama eklemek için yeniden denendi.
Gönderilen verileri değiştirme
Yeniden denenen istekler ile yeniden denenemeyen istekleri ayırt edebilmek istiyorsanız
parameterOverrides
veya hitFilter
değerini belirtebilirsiniz
yapılandırma seçeneklerini kullanın.
Bu seçenekler, yeniden denemeye gönderilen Measurement Protocol parametrelerini değiştirmenize olanak tanır. parameterOverrides
seçeneği
belirli bir web sitesi için aynı değeri ayarlamak istediğinizde
parametresini kullanın. hitFilter
seçeneği, belirli bir parametrenin değerinin çalışma zamanında hesaplanmasının veya başka bir parametrenin değerinden türetilmesinin gerektiği durumlarda kullanılmalıdır.
Aşağıdaki örneklerde her iki seçeneği nasıl kullanabileceğiniz gösterilmektedir.
Örnekler
Online ve çevrimdışı etkileşimleri izlemek için özel boyut kullanma
Google Analytics'te, online ve çevrimdışı etkileşimler için yerleşik bir boyut yoktur. Ancak, tam olarak bu boyut için kendi boyutunuzu oluşturabilirsiniz bir amaca hizmet eden özel boyutları kullanın.
Hizmet çalışanı tarafından özel bir kod kullanılarak tekrar oynatılan istekleri izlemek için boyutunu Workbox Google Analytics ile kullanmak için aşağıdaki adımları uygulayın:
- Google Analytics'te yeni bir özel boyut oluşturun. "Ağ Durumu" gibi bir ad verin ve "isabet" kapsamı (her etkileşim çevrimdışı olabileceğinden).
Yeni oluşturulan boyut için atanan dizini not edin ve bunu Workbox Google Analytics kodunuzdaki
parameterOverrides
yapılandırma seçeneğine parametre adı olarak iletin.Örneğin, bu ilk özel boyutunuzsa dizini
1
olur. parametre adı dacd1
olur (dizin8
olsaydıcd8
):import * as googleAnalytics from 'workbox-google-analytics'; googleAnalytics.initialize({ parameterOverrides: { cd1: 'offline', }, });
(İsteğe bağlı)
parameterOverrides
içindeki değerler yalnızca yeniden denenen ("çevrimdışı") isteklere uygulandığından, diğer tüm istekler için varsayılan "online" değerini de ayarlayabilirsiniz. Bu çok gerekli olmasa da raporlarınızın daha kolay okunmasını sağlar.
Örneğin, Google Etiket Yöneticisi'ni yüklemek için varsayılan analytics.js izleme snippet'iniga('set', 'dimension1', 'online')
satırını ekleyebilirsiniz. kullanarak "Ağ Durumu" için varsayılan'online'
değerini kullanın özel boyut hizmet çalışanı tarafından tekrar oynatılmayan tüm istekler için geçerlidir.<script> (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,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-XXXXX-Y', 'auto'); // Set default value of custom dimension 1 to 'online' ga('set', 'dimension1', 'online'); ga('send', 'pageview'); </script>
İstekler kuyrukta geçirdiği süreyi izlemek için özel metrik kullanma
Çevrimdışı bir etkinliğin gerçekleşmesi arasında ne kadar zaman geçtiğini merak ediyorsanız
etkileşimin ne zaman gerçekleştiğini, bağlantının yeniden ne zaman kurulduğunu ve
tekrar denendiğini öğrenmek için şunu kullanarak takip edebilirsiniz:
özel metrik ve
hitFilter
yapılandırma seçeneği:
- Yeni özel metrik oluşturma Analytics'ten ulaşabilirsiniz. "Çevrimdışı Sıralama Süresi" gibi bir ad verin, kapsamını "hit" olarak ayarlayın ve biçimlendirme türünü "Süre" (saniye cinsinden) olarak ayarlayın.
hitFilter
öğesini kullanarakqt
değerini değiştirin ve 1000'e bölün (saniyeye dönüştürmek için). Ardından bu değeri yeni oluşturulan metriğin dizinini içeren bir parametre olarak kullanılır. Bu ilk özel metrik, parametre adı'cm1'
olur:import * as googleAnalytics from 'workbox-google-analytics'; googleAnalytics.initialize({ hitFilter: (params) => { const queueTimeInSeconds = Math.round(params.get('qt') / 1000); params.set('cm1', queueTimeInSeconds); }, });
Çalışma Kutusu Google Analytics'i Test Etme
Workbox Google Analytics, etkinlikleri yeniden oynatmak için arka plan senkronizasyonunu kullandığından test edilmesi kolay olmayabilir. Daha fazla bilgi için Workbox Arka Plan Senkronizasyonunu Test Etme başlıklı makaleyi inceleyin.
Türler
GoogleAnalyticsInitializeOptions
Özellikler
-
cacheName
dize isteğe bağlı
-
parameterOverrides
nesne isteğe bağlı
-
hitFilter
geçersiz isteğe bağlı
hitFilter
işlevi şu şekilde görünür:(params: URLSearchParams) => {...}
-
params
URLSearchParams
-
Yöntemler
initialize()
workbox-google-analytics.initialize(
options?: GoogleAnalyticsInitializeOptions,
)
Parametreler
-
seçenekler
GoogleAnalyticsInitializeOptions isteğe bağlı