Google Analytics 4 और BigQuery की मदद से, परफ़ॉर्मेंस को मेज़र और डीबग करना

Google Analytics 4 प्रॉपर्टी में, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाले डेटा को भेजने का तरीका जानें. साथ ही, BigQuery और Looker Studio में विश्लेषण के लिए डेटा को एक्सपोर्ट करने का तरीका जानें.

Google कई टूल उपलब्ध कराता है—Search कंसोल, PageSpeed इनसाइट (पीएसआई), और Chrome उपयोगकर्ता अनुभव शिकायत करें (CrUX)—जिससे डेवलपर यह देख पाते हैं कि मुख्य वेब ब्राउज़र के मुकाबले, उनकी साइटें कैसा परफ़ॉर्म कर रही हैं इसमें, अपने असली उपयोगकर्ताओं की ज़रूरी जानकारी फ़ील्ड.

ये टूल इस मामले में बहुत अच्छे हैं कि वे आपको अपनी साइट के का बेहतरीन तरीके से इस्तेमाल किया जा सकता है और उनका इस्तेमाल करने के लिए किसी सेटअप की ज़रूरत नहीं होती.

हालांकि, आपके पास इन बातों पर भरोसा न करने की कुछ अहम वजहें हैं सिर्फ़ ऐसे टूल शामिल करें जिनसे आपकी साइट की परफ़ॉर्मेंस का आकलन किया जा सके:

  • CrUX पर आधारित टूल, हर महीने या पिछले 28 दिनों के आधार पर डेटा रिपोर्ट करते हैं. इसका मतलब है कि कोई भी बदलाव करने से पहले, आपको लंबे समय तक इंतज़ार करना होगा नतीजे देख सकते हैं.
  • CrUX पर आधारित टूल को सिर्फ़ सीमित डाइमेंशन के हिसाब से सेगमेंट में बांटा जा सकता है, जैसे कि देश, कनेक्शन टाइप, और डिवाइस की कैटगरी (डेस्कटॉप या मोबाइल). आप ये काम नहीं कर सकते अपने कारोबार के डाइमेंशन के हिसाब से डेटा को अलग-अलग कर सकते हैं (उदाहरण के लिए: जुड़ाव उपयोगकर्ता, किसी खास एक्सपेरिमेंट ग्रुप के उपयोगकर्ता वगैरह).
  • CrUX पर आधारित टूल आपको यह बता सकते हैं कि आपकी परफ़ॉर्मेंस क्या है. हालांकि, ये टूल यह नहीं बता सकते कि आपने क्यों किया है. Analytics टूल की मदद से, Google Analytics 4 पर अतिरिक्त डेटा भेजा जा सकता है. समस्याओं को हल करने में मदद मिलती है.

इन वजहों से, हमारा सुझाव है कि साइट के सभी मालिक, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली मेट्रिक पर नज़र रखें Analytics के मौजूदा टूल का इस्तेमाल करके लागू किया जा सकता है. इस पोस्ट में बताया गया है कि मुफ़्त में आज़माने की सुविधा कैसे इस्तेमाल की जा सकती है ये सभी काम करने के लिए Google के टूल उपलब्ध हैं.

सब कुछ सेट अप करने के बाद, इस तरह के डैशबोर्ड बनाए जा सकते हैं:

वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली कनेक्टर रिपोर्ट का स्क्रीनशॉट

वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली कनेक्टर रिपोर्ट का स्क्रीनशॉट

अगर आपको यहां बताए गए सभी चरणों की खास जानकारी, विज़ुअल की मदद से चाहिए, तो Google I/O '21 में हमारी बातचीत देखें:

मापें

इनका इस्तेमाल करके, Google Analytics की परफ़ॉर्मेंस को मेज़र करना हमेशा से संभव रहा है कस्टम मेट्रिक, लेकिन Google Analytics की कुछ नई सुविधाएँ हैं 4 (GA4) है कि डेवलपर खास तौर पर उन्हें पसंद आएगा.

हालांकि Google Analytics वेब इंटरफ़ेस में शक्तिशाली विश्लेषण टूल मौजूद हैं, लेकिन यह क्वेरी का इस्तेमाल करके, रॉ इवेंट डेटा ऐक्सेस करने की क्षमता और ज़रूरत के हिसाब से काम करना मुश्किल है जो आपको शायद पहले से पता हों.

Google Analytics 4 और BigQuery का इस्तेमाल करके, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली मेट्रिक को मेज़र करना शुरू करने के लिए, आपको तीन काम करने होंगे:

  1. Google Analytics 4 बनाना प्रॉपर्टी और BigQuery प्रोजेक्ट.
  2. BigQuery Export चालू करें कॉन्फ़िगर करने देता है, ताकि आपको मिलने वाला पूरा डेटा आपके BigQuery प्रोजेक्ट की टेबल में अपने-आप जानकारी भर जाती है.
  3. वेब-वाइटल JavaScript जोड़ें लाइब्रेरी में जोड़ा जा सकेगा, ताकि आपको वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी वाली मेट्रिक और Google Analytics को डेटा भेजें 4, जिसमें एट्रिब्यूशन डेटा भी शामिल है.

विश्लेषण करें

सेट अप पूरा होने के बाद, आपको BigQuery में इवेंट डेटा अपने-आप भरा होता दिखेगा इंटरफ़ेस नहीं किया है और आप इस तरह से डेटा से क्वेरी कर सकेंगे:

SELECT * FROM `my_project_id.analytics_XXXXX.events_*`
WHERE event_name IN ('LCP', 'INP', 'CLS')

यहां पर उस क्वेरी के परिणामों का पूर्वावलोकन दिया गया है:

BigQuery में, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाले इवेंट का डेटा

क्वेरी के लिए वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी का डेटा

Web Vitals के इवेंट डेटा की क्वेरी शुरू करने से पहले, इन बातों का ध्यान रखना ज़रूरी है डेटा को इकट्ठा करने का तरीका समझा जा सकता है.

समझने की सबसे अहम बात यह है कि कुछ मामलों में, एक से ज़्यादा इवेंट हो सकता है मिल गया है पर क्लिक करें. ऐसा तब हो सकता है, जब मेट्रिक की वैल्यू बदलावों और अपडेट की गई वैल्यू को रिपोर्ट किया जाता है (सीएलएस में एक आम समस्या).

वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी वाले इवेंट के लिए, भेजी गई आखिरी वैल्यू हमेशा सटीक होती है. इसलिए, कोई भी विश्लेषण करने से पहले, सिर्फ़ उन वैल्यू को फ़िल्टर करना ज़रूरी है. वेब-वाइटल JavaScript लाइब्रेरी से मिला कोड स्निपेट, जिसे डेटा भेजने के लिए इस्तेमाल किया जाता है Google Analytics 4 में हर मेट्रिक के लिए एक यूनीक आईडी भेजा जाता है, ताकि आप आपके परिणामों को प्रत्येक मेट्रिक आईडी:

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)

ध्यान दें कि इस पोस्ट में रेफ़र की गई अन्य सभी क्वेरी इससे शुरू होंगी सबक्वेरी है.

क्वेरी के उदाहरण

अगले कुछ सेक्शन में, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी से जुड़ी उन क्वेरी के कुछ उदाहरण दिए गए हैं जो आपकी ज़रूरत के हिसाब से हो सकती हैं दौड़ना चाहते हैं.

पूरी साइट पर 75% पर्सेंटाइल (p75) पर एलसीपी, आईएनपी, और सीएलएस

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  metric_name,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS p75,
  COUNT(1) as count
FROM (
  SELECT
    metric_name,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
)
GROUP BY 1

सबसे ज़्यादा से सबसे कम तक, सभी अलग-अलग एलसीपी वैल्यू

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
FROM web_vitals_events
WHERE metric_name = 'LCP'
ORDER BY metric_value DESC
# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS LCP,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
  WHERE metric_name = 'LCP'
)
GROUP BY 1
ORDER BY count DESC
LIMIT 10

सबसे खराब सीएलएस वाले टॉप 10 पेज (p75)

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS CLS,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
  FROM web_vitals_events
  WHERE metric_name = 'CLS'
)
GROUP BY 1
HAVING count > 50 # Limit to relatively popular pages
ORDER BY CLS DESC
LIMIT 10

डीबग

पिछली क्वेरी में, Web Vitals मेट्रिक के डेटा को क्वेरी करने का तरीका बताया गया है. यह काम का है इससे आपको अपनी मौजूदा परफ़ॉर्मेंस और समय के साथ उसके रुझान के बारे में जानकारी मिलती है. लेकिन अगर परफ़ॉर्मेंस उम्मीद से खराब है, लेकिन आपको पक्के तौर पर नहीं पता है, तो क्यों?

अगर आप कार्रवाई नहीं कर पा रहे हैं, तो अपने स्कोर में क्या शामिल होने से कोई मदद नहीं मिलेगी और समस्याओं को ठीक करें.

फ़ील्ड में परफ़ॉर्मेंस को डीबग करना से पता चलता है कि अपने आंकड़ों के डेटा के साथ डीबग की अतिरिक्त जानकारी भेजी जा सकती है. अगर आपको उस पोस्ट में दिए गए निर्देशों का पालन करें, तो आपको जानकारी BigQuery में भी दिखती है.

क्वेरी के उदाहरण

इन क्वेरी में बताया गया है कि मदद के लिए, debug_target इवेंट पैरामीटर को कैसे इस्तेमाल किया जाता है परफ़ॉर्मेंस से जुड़ी समस्याओं की असल वजहों का पता लगाएं.

सीएलएस में योगदान देने वाले मुख्य एलिमेंट

debug_target एक सीएसएस सिलेक्टर स्ट्रिंग है, जो वह पेज जो मेट्रिक वैल्यू के लिए सबसे ज़्यादा काम का है.

सीएलएस का इस्तेमाल करने पर, debug_target सबसे बड़े एलिमेंट से सबसे बड़े एलिमेंट को दिखाता है सीएलएस वैल्यू बढ़ाने वाला लेआउट शिफ़्ट. अगर कोई एलिमेंट शिफ़्ट नहीं होता है, तो debug_target की वैल्यू null होगी.

नीचे दी गई क्वेरी में, पेजों को सबसे खराब से सबसे अच्छे सीएलएस के हिसाब से 75वें पेज पर दिखाया जाएगा debug_target के हिसाब से ग्रुप में रखा गया पर्सेंटाइल:

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  page_path,
  debug_target,
  APPROX_QUANTILES(metric_value, 100)[OFFSET(75)] AS CLS,
  COUNT(1) as count
FROM (
  SELECT
    REGEXP_SUBSTR((SELECT value.string_value FROM UNNEST(event_params) WHERE key = "page_location"), r'\.com(\/[^?]*)') AS page_path,
    (SELECT value.string_value FROM UNNEST(event_params) WHERE key = "debug_target") as debug_target,
    ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = "metric_value"), 3) AS metric_value,
    *
  FROM web_vitals_events
  WHERE metric_name = 'CLS'
)
GROUP BY 1, 2
HAVING count > 50 # Limit to relatively popular pages
ORDER BY CLS DESC

सीएलएस में योगदान देने वाले मुख्य एलिमेंट के लिए क्वेरी का नतीजा

पेज पर मौजूद कौनसे एलिमेंट शिफ़्ट हो रहे हैं, यह जानने से काम को आसान बनाने में मदद मिलती है समस्या की असल वजह का पता लगाकर उसे ठीक करना.

ध्यान रखें कि यहां रिपोर्ट किए गए एलिमेंट शायद वे न हों जो यहां दिए गए हैं आपको अपने पेजों को स्थानीय तौर पर डीबग करते समय बदलाव होते हुए दिखता है. इसलिए, ऐसा होता है इस डेटा को कैप्चर करना बहुत ज़रूरी है. चीज़ों को ठीक करना बहुत मुश्किल है जिन समस्याओं को आप समझते नहीं हैं!

अन्य मेट्रिक डीबग करना

पिछली क्वेरी में सीएलएस मेट्रिक के नतीजे दिखाए गए हों, लेकिन वे बिलकुल पहले जैसे ही हों इस तकनीक का इस्तेमाल करके, एलसीपी और आईएनपी के लिए डीबग टारगेट को रिपोर्ट किया जा सकता है. बस डीबग करने के लिए, जहां क्लॉज़ को सही मेट्रिक से बदलें:

WHERE metric_name = 'INP'
WHERE metric_name = 'LCP'

दोबारा, डीबग परफ़ॉर्मेंस को इसमें दोबारा देखा जा सकता है फ़ील्ड में, जानकारी इकट्ठा करने और वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली हर मेट्रिक के लिए, डीबग करने की जानकारी भेजती है.

विज़ुअलाइज़ करना

सिर्फ़ क्वेरी के नतीजों को देखकर अहम जानकारी हासिल करना मुश्किल हो सकता है अकेले. उदाहरण के लिए, नीचे दी गई क्वेरी में डेटासेट में एलसीपी.

# Subquery all Web Vitals events from the last 28 days
WITH web_vitals_events AS (
  SELECT event_name as metric_name, * EXCEPT(event_name, is_last_received_value) FROM (
    SELECT *, IF (ROW_NUMBER() OVER (
      PARTITION BY (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
      ORDER BY (SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value') DESC
    ) = 1, true, false) AS is_last_received_value
    FROM `bigquery_project_id.analytics_XXXXX.events_*`
    WHERE event_name in ('CLS', 'INP', 'LCP') AND
      _TABLE_SUFFIX BETWEEN FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 28 DAY)) AND FORMAT_DATE('%Y%m%d', DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY))
  ) WHERE is_last_received_value
)
# Main query logic
SELECT
  event_date,
  metric_name,
  APPROX_QUANTILES(ROUND(metric_value, 2), 100)[OFFSET(75)] AS p75
FROM
  (
    SELECT
      event_date,
      metric_name,
      ROUND((SELECT COALESCE(value.double_value, value.int_value) FROM UNNEST(event_params) WHERE key = 'metric_value'), 3) AS metric_value
    FROM web_vitals_events
    WHERE
      metric_name = 'LCP'
  )
GROUP BY
  1, 2
ORDER BY event_date

इन क्वेरी के नतीजों के आधार पर, ट्रेंड या आउटलायर की पहचान करना मुश्किल है डेटा को जांचते हुए देखा जा रहा है.

मेट्रिक की वैल्यू के आधार पर की गई क्वेरी के हर दिन के नतीजे

ऐसे मामलों में, डेटा को विज़ुअलाइज़ करने से आपको तुरंत अहम जानकारी मिल सकती है.

Looker Studio में क्वेरी के नतीजों को विज़ुअलाइज़ करना

BigQuery की मदद से, डेटा की मदद से किसी भी क्वेरी के नतीजों को तेज़ी से विज़ुअलाइज़ किया जा सकता है स्टूडियो. Looker Studio, डेटा विज़ुअलाइज़ेशन है बिना किसी शुल्क के इस्तेमाल किया जा सकता है. अपनी क्वेरी के नतीजों को विज़ुअलाइज़ करने के लिए, BigQuery यूज़र इंटरफ़ेस (यूआई) में अपनी क्वेरी चलाने के बाद, डेटा एक्सप्लोर करें बटन पर क्लिक करें और Looker Studio की मदद से एक्सप्लोर करें चुनें.

BigQuery में Looker Studio की मदद से एक्सप्लोर करने का विकल्प

इससे एक्सप्लोरेशन के तहत, BigQuery से Looker Studio में डायरेक्ट लिंक बन जाएगा व्यू. इस व्यू में, वे फ़ील्ड चुने जा सकते हैं जिन्हें आपको विज़ुअलाइज़ करना है. इसके बाद, आसानी से विज़ुअल विश्लेषण करने के लिए, चार्ट के टाइप, फ़िल्टर सेटअप करें, और ऐड-हॉक चार्ट बनाएं. पिछली क्वेरी के नतीजों से, लाइन चार्ट बनाकर यह देखा जा सकता है कि समय के साथ एलसीपी वैल्यू:

Looker Studio में हर दिन की एलसीपी वैल्यू का लाइन चार्ट

BigQuery और Looker Studio के बीच इस डायरेक्ट लिंक की मदद से, चार्ट का इस्तेमाल कर सकते हैं और विज़ुअल विश्लेषण कर सकते हैं. हालांकि, अगर आपको अतिरिक्त विश्लेषण किया है, तो हो सकता है कि आप किसी वर्चुअल विंडो में कई चार्ट ज़्यादा बेहतर व्यू पाने या ड्रिल-डाउन करने के लिए इंटरैक्टिव डैशबोर्ड डेटा में शामिल कर देते हैं. एक आसान डैशबोर्ड होने का मतलब है कि आपको क्वेरी लिखने की ज़रूरत नहीं है साथ ही, हर बार मेट्रिक का विश्लेषण करने के लिए, मैन्युअल तरीके से चार्ट जनरेट करें.

नेटिव BigQuery का इस्तेमाल करके, Looker Studio में डैशबोर्ड बनाया जा सकता है कनेक्टर. ऐसा करने के लिए, datastudio.google.com पर जाएं और कोई नया आइकॉन बनाएं डेटा सोर्स में, BigQuery कनेक्टर चुनें. इसके बाद, अपनी पसंद का डेटासेट चुनें इनके साथ काम करता है:

Looker Studio में BigQuery के नेटिव कनेक्टर का इस्तेमाल करना

वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी का डेटा तैयार करें

जैसा कि ऊपर बताया गया है, Web Vitals के इवेंट डेटा के डैशबोर्ड बनाते समय, इसे सीधे Google Analytics 4 एक्सपोर्ट डेटासेट का इस्तेमाल नहीं करना चाहिए. इस वजह से GA4 डेटा का स्ट्रक्चर और वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली मेट्रिक के लिए, प्री-प्रोसेसिंग ज़रूरी है मेट्रिक्स, आपकी क्वेरी के कुछ हिस्से कई बार चलेंगे. इससे कॉन्टेंट बनाने में दो समस्याएं: डैशबोर्ड परफ़ॉर्मेंस और BigQuery की लागतें.

BigQuery सैंडबॉक्स का इस्तेमाल किया जा सकता है बिना किसी शुल्क के मोड का इस्तेमाल करें. BigQuery के साथ बिना किसी शुल्क के इस्तेमाल करने के टीयर हर महीने प्रोसेस किए गए क्वेरी डेटा के लिए, पहले 1 टीबी का शुल्क नहीं लिया जाता. विश्लेषण के तरीकों के लिए जिनका इस्तेमाल इस पोस्ट में किया गया है, बशर्ते आपने किसी बड़े डेटासेट का इस्तेमाल न किया हो या नियमित रूप से डेटासेट पर काफ़ी क्वेरी कर रहे हैं, तो आपको यह मुफ़्त सीमा हर महीने के लिए होती है. हालांकि, अगर आपकी वेबसाइट पर बहुत ज़्यादा ट्रैफ़िक आता है और आपको तेज़ इंटरैक्टिव डैशबोर्ड का इस्तेमाल करके, नियमित तौर पर अलग-अलग मेट्रिक की निगरानी करते हैं. ग्राहकों को प्री-प्रोसेस करने और वेब की ज़रूरी जानकारी के डेटा को इस्तेमाल करने का सुझाव देते हैं, ताकि वे इनका इस्तेमाल कर सकें BigQuery की परफ़ॉर्मेंस से जुड़ी सुविधाएं, जैसे कि डेटा को सेगमेंट में बांटना, क्लस्टरिंग, और कैश मेमोरी.

नीचे दी गई स्क्रिप्ट आपके BigQuery डेटा (सोर्स टेबल) को पहले से प्रोसेस करेगी और एक मटीरियलाइज़्ड टेबल (टारगेट टेबल) बनाएं. जब इस क्वेरी का इस्तेमाल अपने लिए किया जा रहा हो डेटासेट, हो सकता है कि आप सोर्स टेबल के लिए तारीख की सीमा भी तय करना चाहें, ताकि प्रोसेस किए गए डेटा की मात्रा को कम कर सकते हैं.

# Materialize Web Vitals metrics from GA4 event export data

# Replace target table name
CREATE OR REPLACE TABLE bigquery_project_id.ga4_demo_dev.web_vitals_summary
  PARTITION BY DATE(event_timestamp)
  CLUSTER BY metric_name
AS
SELECT
  ga_session_id,
  IF(
    EXISTS(SELECT 1 FROM UNNEST(events) AS e WHERE e.event_name = 'first_visit'),
    'New user',
    'Returning user') AS user_type,
  IF(
    (SELECT MAX(session_engaged) FROM UNNEST(events)) > 0, 'Engaged', 'Not engaged')
    AS session_engagement,
  evt.* EXCEPT (session_engaged, event_name),
  event_name AS metric_name,
  FORMAT_TIMESTAMP('%Y%m%d', event_timestamp) AS event_date
FROM
  (
    SELECT
      ga_session_id,
      ARRAY_AGG(custom_event) AS events
    FROM
      (
        SELECT
          ga_session_id,
          STRUCT(
            country,
            device_category,
            device_os,
            traffic_medium,
            traffic_name,
            traffic_source,
            page_path,
            debug_target,
            event_timestamp,
            event_name,
            metric_id,
            IF(event_name = 'LCP', metric_value / 1000, metric_value) AS metric_value,
            user_pseudo_id,
            session_engaged,
            session_revenue) AS custom_event
        FROM
          (
            SELECT
              (SELECT value.int_value FROM UNNEST(event_params) WHERE key = 'ga_session_id')
                AS ga_session_id,
              (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'metric_id')
                AS metric_id,
              ANY_VALUE(device.category) AS device_category,
              ANY_VALUE(device.operating_system) AS device_os,
              ANY_VALUE(traffic_source.medium) AS traffic_medium,
              ANY_VALUE(traffic_source.name) AS traffic_name,
              ANY_VALUE(traffic_source.source) AS traffic_source,
              ANY_VALUE(
                REGEXP_SUBSTR(
                  (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'page_location'),
                  r'^[^?]+')) AS page_path,
              ANY_VALUE(
                (SELECT value.string_value FROM UNNEST(event_params) WHERE key = 'debug_target'))
                AS debug_target,
              ANY_VALUE(user_pseudo_id) AS user_pseudo_id,
              ANY_VALUE(geo.country) AS country,
              ANY_VALUE(event_name) AS event_name,
              SUM(ecommerce.purchase_revenue) AS session_revenue,
              MAX(
                (
                  SELECT
                    COALESCE(
                      value.double_value, value.int_value, CAST(value.string_value AS NUMERIC))
                  FROM UNNEST(event_params)
                  WHERE key = 'session_engaged'
                )) AS session_engaged,
              TIMESTAMP_MICROS(MAX(event_timestamp)) AS event_timestamp,
              MAX(
                (
                  SELECT COALESCE(value.double_value, value.int_value)
                  FROM UNNEST(event_params)
                  WHERE key = 'metric_value'
                )) AS metric_value,
            FROM
              # Replace source table name
              `bigquery_project_id.analytics_XXXXX.events_*`
            WHERE
              event_name IN ('LCP', 'INP', 'CLS', 'first_visit', 'purchase')
            GROUP BY
              1, 2
          )
      )
    WHERE
      ga_session_id IS NOT NULL
    GROUP BY ga_session_id
  )
CROSS JOIN UNNEST(events) AS evt
WHERE evt.event_name NOT IN ('first_visit', 'purchase');

इस मटेरियलाइज़्ड डेटासेट के कई फ़ायदे हैं:

  • डेटा स्ट्रक्चर को फ़्लैट किया गया है और क्वेरी करने में यह आसान है.
  • इसमें, सिर्फ़ GA4 के ओरिजनल डेटासेट से जुड़ी, Web Vitals से जुड़े इवेंट सेव किए जाते हैं.
  • सेशन आईडी, उपयोगकर्ता टाइप (नए बनाम लौटने वाले), और सेशन के जुड़ाव की जानकारी कॉलम में सीधे उपलब्ध होता है.
  • टेबल है सेगमेंट: तारीख और क्लस्टर मेट्रिक के नाम के हिसाब से. आम तौर पर, इससे हर एक ऐसेट के लिए प्रोसेस किए गए डेटा की संख्या कम हो जाती है क्वेरी.
  • इस टेबल पर क्वेरी करने के लिए, आपको वाइल्डकार्ड का इस्तेमाल करने की ज़रूरत नहीं है. इसलिए, क्वेरी के नतीजे ये कर सकते हैं कैश मेमोरी में सेव रखने की सुविधा मिलती है. इससे, विज्ञापन दिखाने में आने वाली लागत कम हो जाती है क्वेरी.
  • BigQuery बीआई इंजन का इस्तेमाल करने पर, ऑप्टिमाइज़ किए गए एसक्यूएल फ़ंक्शन और ऑपरेटर की मदद लें टेबल.

BigQuery यूज़र इंटरफ़ेस (यूआई) में जाकर, इस मटेरियलाइज़्ड टेबल के लिए सीधे क्वेरी की जा सकती है या इसका इस्तेमाल किया जा सकता है में BigQuery कनेक्टर का इस्तेमाल करके, Looker Studio में जाकर ऐसा किया जा सकता है.

वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाले कनेक्टर का इस्तेमाल करना

डैशबोर्ड को शुरुआत से बनाने में बहुत समय लगता है, इसलिए हमने ऐसा समाधान जो आपके लिए टेंप्लेट डैशबोर्ड बनाएगा. सबसे पहले यह पक्का करें कि पिछली क्वेरी का इस्तेमाल करके, वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाली टेबल तैयार की है. इसके बाद, इस लिंक का इस्तेमाल करके, Looker Studio के लिए वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाला कनेक्टर: goo.gle/web-vitals-connector

एक बार अनुमति देने के बाद, आपको यह जानकारी दिखेगी कॉन्फ़िगरेशन स्क्रीन:

Web Vitals कनेक्टर की अनुमति वाली स्क्रीन

मटेरियलाइज़्ड BigQuery टेबल आईडी (यानी टारगेट टेबल) दें और अपने BigQuery बिलिंग प्रोजेक्ट आईडी. 'कनेक्ट करें' पर क्लिक करने के बाद, Looker Studio एक नया टेंप्लेट वाला डैशबोर्ड बनाएं और अपने डेटा को उसके साथ जोड़ें. इस टूल में बदलाव के साथ-साथ डैशबोर्ड को अपनी पसंद के मुताबिक शेयर करें. एक बार डैशबोर्ड बनाने पर, आपको आपको कनेक्टर लिंक पर फिर से जाना होगा, जब तक कि आप एक से ज़्यादा डैशबोर्ड से शुरुआत की है.

डैशबोर्ड में नेविगेट करने पर, आपको वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी के हर दिन के रुझान दिखेंगे आपकी वेबसाइट के लिए मेट्रिक और इस्तेमाल की कुछ जानकारी, जैसे कि उपयोगकर्ता और सेशन खास जानकारी टैब.

उपयोगकर्ता विश्लेषण टैब में, आप एक मेट्रिक चुन सकते है और फिर उसका ब्रेकडाउन देख सकते हैं मेट्रिक पर्सेंटाइल और अलग-अलग इस्तेमाल और कारोबार के हिसाब से उपयोगकर्ताओं की संख्या मेट्रिक.

पेज के पाथ का विश्लेषण टैब की मदद से, आप अपने पेज के उन हिस्सों की पहचान कर सकते हैं जिनमें यह समस्या है वेबसाइट. यहां, खास जानकारी देखने के लिए एक मेट्रिक चुनें. हालांकि, आपको यह भी देखना होगा कि y ऐक्सिस और रिकॉर्ड पर पर्सेंटाइल वैल्यू के साथ सभी पेज पाथ का स्कैटर-मैप x ऐक्सिस पर निर्भर करता है. स्कैटर मैप से उन पेजों को पहचानने में मदद मिल सकती है जिनमें कम मेट्रिक वैल्यू उम्मीद के मुताबिक नहीं होती हैं. स्कैटर का इस्तेमाल करके पेज चुनने पर पेज का पाथ टेबल का चार्ट. इसमें समस्या वाले हिस्से को डीबग टारगेट टेबल देखकर.

रेवेन्यू का विश्लेषण टैब, अपने कारोबार की निगरानी करने का उदाहरण है और परफ़ॉर्मेंस मेट्रिक एक ही जगह पर दिखेंगी. इस सेक्शन में वे सभी सेशन दिखाए गए हैं जिनमें उपयोगकर्ता ने खरीदारी की है. आपके पास रेवेन्यू और उपयोगकर्ता अनुभव की तुलना करने का विकल्प होता है किसी खास सत्र के दौरान .

बेहतर इस्तेमाल के लिए

डेटासेट के बारे में ज़्यादा जानने के बाद, आप डैशबोर्ड में बदलाव कर सकते हैं और बेहतर और सही तरीके से विश्लेषण करने के लिए आपके चार्ट. डैशबोर्ड को बेहतर बनाने के लिए तो आप निम्न चरण अपना सकते हैं:

  • अपडेट किया गया डेटा पाने के लिए, BigQuery में शेड्यूल की गई क्वेरी सेटअप करें. मटीरियलाइज़ेशन हमने पहले जो क्वेरी चलाई हैं वे सिर्फ़ उस समय आपके डेटा का स्नैपशॉट लेती हैं. अगर आपको अगर आपको अपने डैशबोर्ड को नए डेटा से अपडेट रखना है, तो क्वेरी जो रोज़ चलेगी और आपकी मटेरियलाइज़्ड टेबल को नए डेटा शामिल है.
  • कारोबार की अहम जानकारी के लिए, पहले पक्ष (ग्राहक) के डेटा (जैसे, सीआरएम) में शामिल हों. मटेरियलाइज़्ड में टेबल में, user_id को एक अलग कॉलम के तौर पर जोड़ा जा सकता है. इससे आपको अपने पहले पक्ष (ग्राहक) का डेटा. अगर पहले पक्ष (ग्राहक) का डेटा पहले से BigQuery में नहीं है, तो डेटा लोड करें या फ़ेडरेटेड डेटा का इस्तेमाल करना" स्रोत.
  • Google को भेजे जाने वाले डेटा में, अपनी साइट या ऐप्लिकेशन के वर्शन को पैरामीटर के तौर पर रिपोर्ट करें Analytics पर क्लिक करें और इसे मटीरियलाइज़्ड टेबल में कॉलम के तौर पर जोड़ें. फिर आप जोड़ सकते हैं उस वर्शन डेटा को आपके चार्ट में डाइमेंशन के तौर पर शामिल करें, ताकि आप उसे आसानी से देख सकें वर्शन में किए गए बदलाव, परफ़ॉर्मेंस पर असर डालते हैं.
  • अगर आपको डेटा की मदद से, डेटासेट को डायरेक्ट करने की सुविधा के ज़रिए क्वेरी या डैशबोर्ड के लिए, BigQuery बीआई बीआई बीआई का पैसे चुकाकर इस्तेमाल किया जाने वाला वर्शन" इस्तेमाल किया जा सकता है इंजन.

खास जानकारी

इस पोस्ट में Google Analytics 4 और BigQuery का इस्तेमाल करने के बारे में बुनियादी जानकारी दी गई है फ़ील्ड में इकट्ठा किए गए असल उपयोगकर्ता डेटा की मदद से, परफ़ॉर्मेंस को मेज़र और डीबग करना. यह Looker Studio का इस्तेमाल करके, ऑटोमेटेड रिपोर्ट और डैशबोर्ड बनाने का तरीका भी बताया गया है वेबसाइट की परफ़ॉर्मेंस की अहम जानकारी देने वाले कनेक्टर का इस्तेमाल करें डेटा को जितना हो सके उतना आसान तरीके से विज़ुअलाइज़ करना.

इस पोस्ट से जुड़ी कुछ ज़रूरी बातें:

  • सही जानकारी हासिल करने के लिए, असली उपयोगकर्ता के डेटा की मदद से परफ़ॉर्मेंस को मेज़र करना ज़रूरी है. आपकी साइट को डीबग और ऑप्टिमाइज़ करना.
  • आपको अपने कारोबार और परफ़ॉर्मेंस मेट्रिक के बारे में अहम जानकारी मिल सकती है मेट्रिक भी उसी सिस्टम में हैं. Google Analytics और BigQuery के ज़रिए किया जा सकता है.
  • BigQuery Export की मदद से, रॉ Google Analytics डेटा को एक्सपोर्ट करने से आपको किसी ऐसी क्वेरी भाषा का इस्तेमाल करके, जो आपको शायद पहले से पता हो.
  • Google के पास Looker Studio जैसे कई एपीआई और विज़ुअलाइज़ेशन टूल हैं. आपको अपनी रिपोर्ट को ठीक उसी तरह बनाने की स्वतंत्रता मिलती है जैसे आप उन्हें चाहते हैं बनाया.