نود Google Analytics در N8N
نود Google Analytics در n8n به شما اجازه میدهد دادههای تحلیلی سایت یا اپلیکیشن را بهصورت خودکار دریافت کنید، آنها را پردازش کنید و به ابزارهای دیگر مثل Google Sheets، Slack، Email یا دیتابیسها بفرستید. اگر گزارشگیریهای تکراری، مانیتورینگ KPIها، یا ساخت داشبوردهای داخلی دارید، این نود میتواند بخش زیادی از کارهای دستی را حذف کند.
معرفی نود در N8N
این نود برای اتصال n8n به Google Analytics و گرفتن گزارشها (Metrics و Dimensions) استفاده میشود. خروجی معمولاً به شکل ردیفهای گزارش (Report Rows) است که میتوانید در ادامه ورکفلو فیلتر، تبدیل یا ذخیره کنید.
- کارکرد اصلی: خواندن دادههای تحلیلی (مثلاً sessions، users، pageviews، conversions) در بازه زمانی مشخص و با فیلترهای دلخواه
- دستهبندی نود: Integration (اتصال به سرویس خارجی) / Action (اجرای درخواست و دریافت نتیجه)
- اهمیت در ورکفلوها: پایهی بسیاری از سناریوهای گزارشگیری خودکار، هشداردهی، و تحلیل روندها است و کمک میکند دادهها از Analytics وارد چرخه اتوماسیون شوند.
موارد استفاده
1) گزارش روزانه KPI به Slack یا Email
هر روز صبح، آمار روز گذشته مثل Users، Sessions، Conversions و Top Landing Pages را بگیرید و خلاصه را برای تیم ارسال کنید.
- ترکیب پیشنهادی نودها: Cron → Google Analytics → Function / Code → Slack / Email
2) ثبت خودکار دادهها در Google Sheets برای داشبورد
اگر داشبورد را با Google Sheets یا Looker Studio میسازید، میتوانید دادهها را روزانه/ساعتی داخل شیت ذخیره کنید.
- ترکیب پیشنهادی نودها: Cron → Google Analytics → Set → Google Sheets (Append)
3) مانیتورینگ افت شدید ترافیک و ارسال هشدار
بهصورت ساعتی ترافیک را بررسی کنید؛ اگر Sessions نسبت به میانگین 7 روز اخیر بیش از X درصد افت داشت، هشدار دهید.
- ترکیب پیشنهادی نودها: Cron → Google Analytics (امروز) + Google Analytics (میانگین 7 روز) → Function / Code (محاسبه درصد) → IF → Telegram / Slack
4) گزارش عملکرد کمپینها (UTM)
ابعادی مثل source/medium/campaign را بگیرید و عملکرد کمپینها را تحلیل و ذخیره کنید.
- ترکیب پیشنهادی نودها: Manual Trigger → Google Analytics → Sort/Limit (در Code) → Notion / Airtable / DB
5) ساخت گزارش Top Pages و تشخیص صفحات در حال رشد
لیست صفحات با بیشترین Pageviews یا Engagement را بگیرید و صفحاتی که رشد غیرعادی دارند را مشخص کنید.
- ترکیب پیشنهادی نودها: Cron → Google Analytics → Code (محاسبه رشد) → Google Sheets / Email
پارامترها و تنظیمات
پارامترهای دقیق ممکن است بسته به نسخه n8n و نوع Analytics (Universal Analytics قدیمی یا GA4) متفاوت باشد، اما منطق کلی تقریباً یکسان است: انتخاب اکانت/پراپرتی، تعیین بازه زمانی، تعیین Metrics و Dimensions، و اعمال فیلتر/سورت.
1) Credentials (اعتبارنامه اتصال)
- نام پارامتر: Credentials
نوع داده: تنظیمات احراز هویت (OAuth2 یا Service Account بسته به پشتیبانی و تنظیمات)
کاربرد: اجازه دسترسی n8n به Google Analytics
مثال عملی: اتصال با OAuth2 برای اکانت مارکتینگ، یا Service Account برای محیط سرور و اجرای بدون دخالت کاربر
نکته مهم: برای Service Account باید دسترسی آن اکانت را به Property/View مربوطه اضافه کنید. در بسیاری از سناریوها، OAuth2 سادهتر است ولی برای اتوماسیون سروری، Service Account پایدارتر است.
2) Property / View / Account (انتخاب منبع داده)
- نام پارامتر: Property ID / View ID (یا معادل آن)
نوع داده: String / Dropdown
کاربرد: مشخص میکند گزارش از کدام پراپرتی/ویو خوانده شود
مثال عملی: انتخاب View مربوط به وبسایت اصلی یا پراپرتی اپلیکیشن
نکته مهم: در GA4 معمولاً مفهوم View مثل UA نیست و به جای آن Property و Data Stream مطرح است؛ در بسیاری از نودها، انتخاب Property کافی است.
3) Date Range (بازه زمانی)
- نام پارامتر: Start Date / End Date
نوع داده: String (تاریخ) یا Expression
کاربرد: تعیین بازه گزارش
مثال عملی: Start: 2026-02-01 و End: 2026-02-14
- نام پارامتر: Relative Dates (اگر پشتیبانی شود)
نوع داده: String
کاربرد: استفاده از مقادیر نسبی مثل yesterday، last7days
مثال عملی: Start: {{$today.minus({days:1}).toISODate()}} و End: {{$today.minus({days:1}).toISODate()}}
نکات مهم:
- فرمت رایج تاریخ: YYYY-MM-DD
- اگر گزارشهای روزانه میخواهید، بهتر است تاریخ را با Expression از زمان اجرای ورکفلو تولید کنید تا خطای دستی کم شود.
4) Metrics (شاخصها)
- نام پارامتر: Metrics
نوع داده: Array/List
کاربرد: انتخاب اعداد کلیدی مثل users، sessions، engagedSessions، conversions
مثال عملی: users, sessions, newUsers
نکته مهم: Metrics باید با Dimensions انتخابشده سازگار باشند. بعضی ترکیبها در Analytics مجاز نیستند و خطای API میدهند.
5) Dimensions (ابعاد)
- نام پارامتر: Dimensions
نوع داده: Array/List
کاربرد: شکستن دادهها بر اساس ویژگیها مثل date، country، deviceCategory، pagePath، sourceMedium
مثال عملی: date و country برای گزارش روزانه کاربران به تفکیک کشور
نکته مهم: اگر Dimension ندهید، معمولاً یک ردیف کلی (Aggregate) دریافت میکنید. اگر چند Dimension بدهید، خروجی بهصورت گروهبندی چندبعدی برمیگردد و تعداد ردیفها افزایش پیدا میکند.
6) Filters (فیلترها)
- نام پارامتر: Dimension Filter / Metric Filter
نوع داده: Object / Builder
کاربرد: محدود کردن گزارش به شرطهای خاص
مثال عملی: فقط ترافیک ارگانیک: sourceMedium contains “google / organic”
نکات مهم:
- در GA4 فیلترها ممکن است ساختار پیچیدهتری داشته باشند (AND/OR و Match Type).
- اگر فیلتر اشتباه تنظیم شود، خروجی خالی یا خطای اعتبارسنجی دریافت میکنید.
7) Order By / Sort (مرتبسازی)
- نام پارامتر: Order By
نوع داده: Array/List
کاربرد: مرتبسازی نتایج بر اساس یک Metric یا Dimension
مثال عملی: مرتبسازی بر اساس sessions بهصورت descending برای Top Pages
8) Limit / Pagination (محدودیت تعداد ردیف)
- نام پارامتر: Limit / Page Size
نوع داده: Number
کاربرد: کنترل تعداد ردیفهای خروجی
مثال عملی: Limit = 10 برای گرفتن 10 صفحه برتر
نکته مهم: اگر گزارش شما بزرگ است، بهتر است Limit بگذارید یا با صفحهبندی (Pagination) جلو بروید تا هم سرعت بهتر شود و هم ریسک Time-out کم شود.
9) Sampling / Quotas (رفتارهای مربوط به سهمیه)
- نام پارامتر: (در برخی نسخهها) Sampling Level / Quota Handling
نوع داده: Option
کاربرد: کنترل نمونهبرداری یا مدیریت محدودیت درخواستها
مثال عملی: اگر گزارشهای بزرگ دارید، کاهش ابعاد و محدود کردن بازه زمانی برای جلوگیری از Sample شدن
ورودیها و خروجیها
ورودیها (Input)
در بسیاری از موارد، این نود میتواند بدون ورودی هم اجرا شود (همه چیز از تنظیمات خودش میآید). اما در سناریوهای پویا، ورودی میتواند پارامترها را با Expression تغذیه کند.
- ورودیهای رایج: تاریخ شروع/پایان، نام کمپین، لیست صفحات، یا Property ID که از نودهای دیگر میآید.
خروجیها (Output)
خروجی معمولاً شامل آرایهای از ردیفها است که هر ردیف Dimensions و Metrics را دارد. ساختار دقیق بسته به UA/GA4 و پیادهسازی نود متفاوت است، اما معمولاً چیزی شبیه نمونه زیر است.
نمونه JSON خروجی
نمونهای نزدیک به خروجی رایج (برای فهم ساختار):
{ "propertyId": "123456789", "dateRange": { "startDate": "2026-02-14", "endDate": "2026-02-14" }, "rows": [ { "dimensions": { "date": "20260214", "country": "Germany" }, "metrics": { "users": 120, "sessions": 150 } }, { "dimensions": { "date": "20260214", "country": "United States" }, "metrics": { "users": 90, "sessions": 110 } } ]}
نکته عملی: برای ارسال پیام به Slack یا ذخیره در Sheets، معمولاً بهتر است داده را در یک نود Code به ساختار سادهتری تبدیل کنید (مثلاً هر ردیف یک item مستقل در n8n باشد).
نکات پیشرفته و ترفندها
1) تبدیل خروجی به آیتمهای قابل پردازش در n8n
اگر نود Google Analytics خروجی را به شکل یک آبجکت بزرگ برگرداند، در نود Code میتوانید rows را به items تبدیل کنید تا هر ردیف جداگانه پردازش شود.
const rows = $json.rows || [];return rows.map(r => ({ json: { ...r.dimensions, ...r.metrics }}));
2) ساخت گزارش مقایسهای (MoM / WoW) با دو اجرای نود
دو بار نود Google Analytics را اجرا کنید: یکی برای بازه فعلی و یکی برای بازه قبلی. سپس در Code درصد تغییر را حساب کنید و خروجی را برای هشدار/گزارش استفاده کنید.
3) کاهش هزینه و زمان اجرا با محدود کردن Dimensions
هرچه Dimensions بیشتری اضافه کنید، تعداد ردیفها و زمان پاسخ بیشتر میشود. برای گزارشهای مدیریتی، اغلب 1 تا 2 Dimension کافی است.
4) ترکیب با IF برای هشدار هوشمند
به جای ارسال گزارش کامل هر روز، شرط بگذارید فقط زمانی پیام ارسال شود که یک KPI از آستانه عبور کند (مثلاً conversions کمتر از 5 یا افت sessions بیش از 30%).
5) ذخیرهسازی تاریخچه و ساخت مدل ساده پیشبینی
با ذخیره روزانه KPIها در دیتابیس (Postgres/MySQL) میتوانید میانگین متحرک، روند، و حتی پیشبینی ساده بسازید و با IF هشدارهای دقیقتری تولید کنید.
محدودیتها و خطاها
محدودیتها
- ناسازگاری Metrics و Dimensions: همه ترکیبها در Analytics مجاز نیستند و ممکن است درخواست رد شود.
- Quota و Rate Limit: اگر تعداد درخواستها زیاد شود یا گزارشهای سنگین بگیرید، ممکن است با محدودیت سهمیه روبهرو شوید.
- دادههای Sample شده: در برخی شرایط (بهخصوص گزارشهای بزرگ)، Analytics ممکن است داده را نمونهبرداری کند و دقت کاهش یابد.
- تفاوت GA4 و UA: نام Metrics/Dimensions و ساختار گزارش در GA4 با Universal Analytics متفاوت است و انتخاب اشتباه باعث خطا میشود.
خطاهای رایج و راهحلها
- خطا: Permission denied / insufficient permissions
علت: دسترسی اکانت OAuth یا Service Account به Property/View داده نشده است.
راهحل: سطح دسترسی را در Google Analytics Admin بررسی کنید و اکانت را اضافه کنید.
- خطا: Invalid argument / Invalid dimension or metric
علت: نام Dimension/Metric اشتباه است یا در آن Property پشتیبانی نمیشود.
راهحل: نامها را مطابق مستندات رسمی GA4 Data API یا Reporting API بررسی کنید و یک ترکیب سادهتر تست کنید.
- خطا: Requested entity was not found
علت: Property ID / View ID اشتباه است یا دسترسی ندارید.
راهحل: ID صحیح را از تنظیمات Analytics بردارید و Credential درست را انتخاب کنید.
- خروجی خالی (No rows)
علت: بازه زمانی بدون داده است یا فیلتر خیلی محدودکننده است.
راهحل: فیلتر را موقتاً حذف کنید، بازه را بزرگتر کنید، سپس مرحلهبهمرحله فیلترها را اضافه کنید.
- کندی یا Time-out
علت: گزارش سنگین (Dimensions زیاد، بازه طولانی، بدون Limit).
راهحل: Limit بگذارید، Dimensions را کم کنید، بازه را کوچک کنید، و در صورت نیاز گزارش را به چند درخواست تقسیم کنید.
ایده ها
- سیستم هشدار افت فروش یا لید: اگر conversions یا purchase revenue کاهش شدید داشت، به Slack پیام بدهد.
- گزارش خودکار عملکرد محتوا: هر هفته Top 20 مقاله بر اساس pageViews/engagement را استخراج و در Notion ثبت کند.
- کنترل سلامت سئو تکنیکال از زاویه ترافیک: اگر ترافیک ارگانیک روی یک دسته URL افت کرد، تیکت در Jira بسازد.
- ساخت دیتاست آموزشی برای تحلیل: دادههای روزانه کاربران/سشن/کشور/دستگاه را ذخیره و برای تحلیل در Python استفاده کند.
- پایش کمپینهای تبلیغاتی: هزینه و خروجی را از منابع دیگر بگیرد و با سشنها/کانورژنهای Analytics ترکیب کند.
