همانطور که احتمالا در جریان هستید، گوگل مدتی پیش بدون اعلام قبلی، حساب گوگل آنالیتیکس تعداد زیادی از کاربران ایرانی را محدود کرد و عملا دسترسی به دادههای ارزشمند آنالیتیکس آنها از بین رفت. این اتفاق باعث شد تا بسیاری از کسبوکارها اطلاعات بسیار مهم خود را از دست بدهند. یکی از راهکارهایی که میتواند از تکرار چنین وضعیتی جلوگیری کند، خروجی گرفتن مستمر دادههای گوگل آنالیتیکس و ذخیرهی آن در سرویسهای ابری دیگر (مانند گوگل بیگکوئری) است. در این آموزش، قصد داریم روش بکاپ گرفتن از آنالیتیکس در BigQuery و تنظیم بکاپگیری روزانه را به شما آموزش دهیم تا حتی در صورت بستهشدن ناگهانی حساب آنالیتیکس، دادههای شما در بیگکوئری حفظ شود.
بیگکوئری چیست؟
بیگکوئری یک انبار داده ابری (Cloud Data Warehouse) است که به شما امکان میدهد کوئریهای فوقالعاده سریع روی حجم زیادی از دادهها در هر نقطهی جهان که گوگل دیتاسنتر دارد، اجرا کنید.
اما چرا BigQuery برای پشتیبانگیری از دادههای آنالیتیکس مناسب است؟ در ادامه به برخی از مزایای بکاپ گرفتن از آنالیتیکس در BigQuery میپردازیم:
- دسترسی کامل به دادههای خام (Raw Data): وقتی گوگل آنالیتیکس به بیگکوئری متصل شود، تمام رویدادهای ثبتشده (همانطور که GA4 آنها را جمعآوری کرده) بهصورت جدولهایی در BigQuery ذخیره میشوند. برخلاف گزارشهای خلاصهشدهی داخل گوگل آنالیتیکس، در بیگکوئری تمام پارامترهای هر رویداد به شکل کامل در دسترس شماست.
- قابلیت ترکیب با دادههای دیگر: میتوانید دادههای بیگکوئری را با دیتاستهای دیگر (مثلاً CRM، لاگهای وبسرور، ابزارهای تبلیغاتی و …) ترکیب کرده و گزارشها و آنالیزهای دقیقتر و پرجزئیاتتری داشته باشید.
- اجرای کوئریهای سنگین و سریع: بیگکوئری با زیرساخت ابری گوگل کار میکند و امکان اجرای کوئریهای پیچیده روی حجم بالایی از داده را با سرعت مناسب فراهم میکند.
- جلوگیری از حذف یا محدودسازی دادهها: در صورتی که به هر دلیلی دسترسی شما به گوگل آنالیتیکس محدود یا مسدود شود، دادههای ذخیرهشده در بیگکوئری همچنان باقی خواهند ماند.
پیشنیازها
در این بخش به پیشنیازهای بکاپ گرفتن از آنالیتیکس در BigQuery میپردازیم:
حساب کاربری فضای ابری گوگل یا همان گوگل کلاد پلتفرم (GCP)
وارد وبسایت Google Cloud شوید و یک حساب کاربری جدید بسازید.
سپس Billing را فعال کنید تا پروژه شما مجوز استفاده از سرویسهای کلاد را داشته باشد (در بسیاری از کشورها نیاز به روش پرداخت بینالمللی دارید؛ اما اگر قبلا حسابتان فعال بوده، میتوانید از همان استفاده کنید).
فعالسازی BigQuery API
در Google Cloud Console از منوی کناری روی APIs & Services کلیک کنید. به بخش Library بروید و در نوار جستجو، عبارت BigQuery را وارد کنید. بررسی کنید که BigQuery API در حالت Enable قرار داشته باشد.
دسترسی ادمین در گوگل آنالیتیکس (GA4)
تنها کاربرانی که دسترسی Administrator در Google Analytics دارند، میتوانند GA4 را به بیگکوئری متصل کنند.
مراحل اتصال آنالیتیکس به BigQuery
در ادامه مراحل بکاپ گرفتن از آنالیتیکس در BigQuery را با جزئیات بیشتری توضیح میدهیم. این مراحل شامل پیشنیازهایی در Google Cloud Platform و انجام پیکربندیهای لازم در Google Analytics است. لطفاً توجه داشته باشید که برای انجام این مراحل به سطح دسترسی ادمین در هر دو پلتفرم نیاز دارید.
ایجاد حساب یا اتصال به Google Cloud و ساخت پروژه
اولین گام این است که حساب گوگل کلاد (Google Cloud) داشته باشید. این کار خیلی ساده است، درست مثل ساختن یک حساب جیمیل.
وقتی وارد محیط گوگل کلاد شدید، باید Project بسازید. پروژهی بیگکوئری مانند یک Bucket در فضای ابری گوگل است که تمام دیتاستها و اطلاعات شما در آن قرار میگیرد.
برای ساخت یک پروژه ابتدا نیاز است تا به کنسول گوگل کلاد خود وصل شوید. برای این کار به آدرس console.cloud.google.com بروید و با حساب گوگل خود وارد شوید.
در این صفحه برروی گزینه BigQuery کلیک کنید تا لیست پروژهها نمایش داده شود. اگر قصد استفاده از یک پروژه موجود دارید، روی Select Project کلیک کنید و پروژه مورد نظر خود را انتخاب کنید.
در غیر این صورت، روی Create New Project کلیک کنید. نام منحصربهفردی برای پروژه تعیین کنید. سپس روش صورتحساب (Billing) را انتخاب و پروژه را ایجاد کنید.
ایجاد Dataset
Dataset در BigQuery نقشی شبیه به اسکیما (Schema) در پایگاههای دادههای سنتی دارد.
پس از ساخت پروژه، روی آن کلیک و گزینه Create dataset را انتخاب کنید.
یک شناسه (ID) برای Dataset (مثلاً demo_data
) بگذارید و مکان جغرافیایی (Location) را تعیین کنید.
ساخت جدول (Table)
در Dataset ایجاد شده، روی Create table کلیک کنید.
اکنون از بخش Create table from، میتوانید یک جدول خالی ایجاد کنید یا این که از یک فایل CSV، فایل Google Drive، یا سایر منابع داده برای بارگزاری یک جدول استفاده کنید.
مسیر فایل را تعیین کنید و نام جدول را وارد کنید (مثلاً orders
).
برای سادهسازی، گزینه Auto-detect Schema را فعال کنید. در صورت نیاز، اولین سطر را بهعنوان هدر رد کنید (Skip first row).
دو مفهوم بسیار مهم در BigQuery عبارتند از پارتیشنبندی (Partitioning) و خوشهبندی (Clustering):
- Partitioning باعث میشود بتوانید دادههایتان را بر اساس یک ستون مشخص، در دستههای جداگانه ذخیره کنید؛ برای مثال براساس زمان بارگذاری (Ingestion time). اگر روزانه داده بارگذاری میکنید، هر روز یک پارتیشن جدا خواهید داشت که به شما کمک میکند موقع پرسوجو (Query) فیلترهای مشخص را سریعتر اعمال کنید.
- Clustering هم طوری دادهها را در پشت صحنه سازماندهی میکند که دسترسی و جستجو در آنها بهینهتر شود؛ مثلاً اگر همیشه بر اساس یک ستون مانند «status» جستجو میکنید، با خوشهبندی براساس آن ستون، پرسوجوها سریعتر انجام میشوند. همچنین از آنجا که در BigQuery هزینهها بیشتر بر اساس میزان دادهای که در هر Query خوانده و اسکن میشود محاسبه میگردد، استفاده درست از پارتیشنبندی و خوشهبندی میتواند حجم داده اسکنشده و در نتیجه هزینهها را کاهش دهد.
جدول را ایجاد کنید.
پس از ساخت جدول، میتوانید با کلیک روی Query، یک ویرایشگر خالی باز کرده و دستورات SQL خود را اجرا کنید.
BigQuery بهصورت سرورلس کار میکند و نیازی نیست منابع سختافزاری را خودتان مدیریت کنید؛ همه چیز خودکار مقیاس میگیرد.
فعالسازی BigQuery API
بعد از ساخت پروژه، گام بعدی فعال کردن BigQuery API است. این API اجازه میدهد GA4 به BigQuery متصل شود. برای این کار، از منوی کناری سمت چپ به APIs & Services بروید (یا از بخش منو این قسمت را انتخاب کنید).
سپس گزینه Enable APIs & Services را از بالای صفحه انتخاب کنید. در فیلد سرچ نام BigQuery را جستجو کنید. و BigQuery API را انتخاب کنید.
کافیست روی گزینهی Enable کلیک کنید تا فعال شود.
اکنون API شما آماده به کار است.
تنظیم صورتحساب (Billing) در صورت نیاز
گوگل برای پروژههای جدید، به طور معمول نیاز دارد که یک حساب Billing Account فعال داشته باشید. با استفاده از کارت اعتباری یا روشهای دیگر، تنظیمات پرداخت حساب خود را پیکربندی کنید.
نکته: اگر برای اولین بار از Google Cloud استفاده میکنید، میتوانید از دوره آزمایشی رایگان (Free Trial) گوگل کلاد استفاده کنید.
ورود به گوگل آنالیتیکس و انتخاب Property مناسب
در ادامه مراحل بکاپ گرفتن از آنالیتیکس در BigQuery نیاز است تا به گوگل آنالیتیکس خود وارد شوید و Propert مناسب را انتخاب کنید:
- ورود به حساب Google Analytics: با مراجعه به analytics.google.com و وارد کردن حساب گوگل، به پنل مدیریت گوگل آنالیتیکس وارد شوید.
- انتخاب Property درست: اگر چندین Property دارید، در ستون سمت چپ،حتما آن Property را انتخاب کنید که قصد لینک کردن آن به بیگکوئری را دارید (یک GA4 Property).
- رفتن به بخش Admin: در منوی سمت چپ، روی Admin کلیک کنید (این گزینه در پایین منو قرار دارد).
ایجاد لینک بین GA4 و BigQuery
در اینجا یک نمونه از پروژه گوگل آنالیتیکس در بیگکوئری را میبینید.
این یک جدول از گزارش رویدادهاست که هر رویداد، زمان ثبت شدن (تایماستمپ) و تمامی پارامترهای مرتبط با آن رویداد را نشان میدهد. وقتی دادهها وارد بیگکوئری شدند، میتوانید هرطور که میخواهید از آنها استفاده کنید. کاربران زیادی از BigQuery Export استفاده میکنند تا دادههای آنالیتیکس خود را با دادههای دیگر ترکیب کنند یا مدلهای سفارشی خود را برای کاربران و مشتریانشان آموزش دهند.
همانطور که پیشتر گفتیم برای شروع کار، ابتدا باید یک حساب گوگل کلاد پلتفرم (Google Cloud Platform) بسازید و APIهای بیگکوئری را برای پیکربندی Export گوگل آنالیتیکس فعال کنید. پس از انجام این کار، مراحل لینک کردن این دو سرویس در گوگل آنالیتیکس را با هم مرور کنیم.
ابتدا وارد منوی Admin شوید. در زیر منوی Product Links، روی Big Query Links کلیک میکنیم.
برای ایجاد یک لینک جدید، دکمه Link را میزنیم.
اولین کاری که لازم است انجام دهیم، لینک کردن گوگل آنالیتیکس به یک پروژه بیگکوئری است. برای دیدن لیست پروژههای بیگکوئری که به آنها دسترسی دارید، روی “Choose a BigQuery project” کلیک کنید.
در این مرحله، تمام پروژههای ابری (Cloud projects) که به آنها دسترسی دارید نمایش داده میشوند. پروژهای را که میخواهید به گوگل آنالیتیکس لینک کنید انتخاب کرده و روی “Confirm” کلیک کنید. توجه داشته باشید که یک property گوگل آنالیتیکس فقط میتواند به یک پروژه بیگکوئری لینک شود.
قدم بعدی انتخاب محل دیتاست (Data Location) است. این گزینه به شما اجازه میدهد مکانی را انتخاب کنید که برای دسترسی و پردازش بهینهتر باشد. در این مثال United states بعنوان لوکیشن دیتاست انتخاب شده است. اما برای کاربران ایرانی بهتر است یکی از لوکیشنهای نزدیک به ایران با فاصله زمانی کمتر مانند ترکیه یا امارات انتخاب شوند. سپس روی Next کلیک میکنیم.
در گام بعدی، فرکانس خروجی دادهها از گوگل آنالیتیکس به بیگکوئری را تعیین میکنیم. دو گزینه وجود دارد: Daily (روزانه) و Streaming (استریم یا لحظهای). خروجی روزانه یک بار در روز انجام میشود اما اطلاعات Attribution (مثلا اطلاعات مربوط به منبع ورودی کاربران) را هم در بر میگیرد و داده کاملتری محسوب میشود. خروجی استریم دادهها را چند دقیقه پس از جمعآوری در گوگل آنالیتیکس ارسال میکند، اما برخی دادههای اضافی که نیاز به پردازش دارند (مثل Attribution) در آن گنجانده نمیشود. میتوانید یکی یا هر دو این گزینهها را فعال کنید. در این مثال هر دو گزینه انتخاب شدهاند و تیک هر دو را زدهایم. پس از این مرحله روی Next کلیک کنید.
در نهایت، میتوانیم همه تنظیمات را مرور کرده و پس از اطمینان از درستی آنها، روی Submit کلیک کنیم. وقتی لینک با موفقیت ایجاد شود، طی چند ساعت آینده دادهها در بیگکوئری در دسترس خواهند بود.
بررسی وضعیت جداول در BigQuery
اکنون میخواهیم به مثال پروژه گوگل آنالیتیکسمان در بیگکوئری برگردیم و آن را تست کنیم.
معمولا بین چند ساعت تا یک روز زمان میبرد تا اولین دادهها در بیگکوئری ظاهر شوند. اگر استریم را فعال کرده باشید، دادهها سریعتر (در حد چند دقیقه) شروع به نمایش میکنند، اما کامل نیستند (بدون داده Attribution).
به console.cloud.google.com/bigquery بروید.
پروژهای که انتخاب کردهاید را از منوی Project در سمت چپ انتخاب کنید.
دیتاست (مثلاً analytics_xxxxxx) که گوگل آنالیتیکس ایجاد کرده است را مشاهده خواهید کرد.
زیرمجموعه دیتاست، جداولی با پیشوند یا الگوی خاص (برای مثال events_YYYYMMDD) میبینید. این جداول، دادههای خام رویدادهای GA4 را نگهداری میکنند.
برای اطمینان از درستی اتصال، میتوانید یک کوئری ساده اجرا کنید.
در این مثال قصد داریم یک کوئری بنویسیم تا تعداد کل کاربران را در یک روز مشخص به دست بیاوریم. کد مورد نیاز برای انجام این کار را در ادامه آوردهایم. روی Run کلیک میکنیم و نتیجه کوئری را مشاهده خواهیم کرد.