أتمتة تقارير GA4 الأسبوعية إلى Slack بـ n8n
لو في الفريق عندك حد بيفتح Google Analytics كل اثنين الصبح ويعمل screenshot للأرقام ويبعتها على Slack، الـ workflow اللي هنا هيوفرلك الوقت ده بالكامل، ومجانًا لو بتشغّل n8n على VPS بتاعك.
المشكلة باختصار
التقارير الأسبوعية من GA4 بتتعمل يدوي في أغلب الشركات الصغيرة والمتوسطة. الموظف بيفتح الـ dashboard، بياخد القيم بعينه، بيكتبها في رسالة Slack. بياخد 15 دقيقة كل أسبوع، بيتنسي في الإجازات، وبيكون فيه أخطاء نقل. القيمة هنا مش توفير الـ 15 دقيقة بس، القيمة إن الأرقام بتوصل للفريق في نفس الوقت كل أسبوع بدون اعتماد على شخص.
ليه n8n بالظبط مش Zapier أو Make
n8n مجاني لو self-hosted، والـ workflow ده بيتنفّذ 4 مرات في الشهر فقط. Zapier هيكلّفك 19.99 دولار شهريًا على الأقل لنفس الـ workflow لأنه بيحسب كل HTTP request كـ task. Make أرخص (9 دولار) لكن الـ self-hosting على VPS بـ 5 دولار (Hetzner CX11 مثلاً) بيديك باقي موارد لـ workflows تانية بدون تكلفة إضافية.
الافتراض هنا: عندك VPS صغير شغّال أو بتقدر تشغّل Docker على سيرفر قائم. لو مش عندك، استخدم n8n Cloud بـ 20 يورو شهريًا، أو اختار Make لو مش محتاج مرونة كبيرة في الـ transformations.
الخطوات التنفيذية
- من Google Cloud Console، فعّل Google Analytics Data API في المشروع اللي مربوط بـ GA4.
- اعمل service account جديد، ونزّل ملف الـ JSON key.
- من GA4 Admin → Property Access Management، ضيف email الـ service account بصلاحية Viewer.
- شغّل n8n عبر docker-compose (الكود تحت) ورفع الـ JSON key كـ credential من نوع Google Service Account.
- ابنِ workflow من 3 nodes: Schedule Trigger → HTTP Request (GA4) → Slack.
- اعمل test run، ثم فعّل الـ workflow.
docker-compose لـ n8n
version: "3.8"
services:
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=n8n.example.com
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://n8n.example.com
- GENERIC_TIMEZONE=Africa/Cairo
- N8N_ENCRYPTION_KEY=change-me-to-random-32-chars
volumes:
- ./n8n_data:/home/node/.n8n
طلب GA4 Data API
المثال ده بيرجع المقاييس الأساسية لآخر 7 أيام: مستخدمين نشطين، جلسات، مشاهدات صفحات، ومتوسط مدة الجلسة.
POST https://analyticsdata.googleapis.com/v1beta/properties/{PROPERTY_ID}:runReport
Authorization: Bearer {ACCESS_TOKEN}
{
"dateRanges": [{"startDate": "7daysAgo", "endDate": "yesterday"}],
"metrics": [
{"name": "activeUsers"},
{"name": "sessions"},
{"name": "screenPageViews"},
{"name": "averageSessionDuration"}
]
}
رسالة Slack بتنسيق Block Kit
{
"channel": "#growth",
"blocks": [
{"type": "header", "text": {"type": "plain_text", "text": "تقرير GA4 الأسبوعي"}},
{"type": "section", "fields": [
{"type": "mrkdwn", "text": "*المستخدمون النشطون*\n{{ $json.activeUsers }}"},
{"type": "mrkdwn", "text": "*الجلسات*\n{{ $json.sessions }}"},
{"type": "mrkdwn", "text": "*مشاهدات الصفحات*\n{{ $json.screenPageViews }}"},
{"type": "mrkdwn", "text": "*متوسط مدة الجلسة*\n{{ $json.avgDuration }} ث"}
]}
]
}
Trade-offs لازم تعرفها
GA4 Data API عنده quota بـ 25,000 tokens يوميًا لكل property في الـ free tier، وكل runReport بسيط بياخد 10 tokens تقريبًا. يعني الـ workflow ده استهلاكه أقل من 0.04% من الـ quota. مفيش قلق هنا. بالظبط المشكلة بتيجي لو بتضيف كذا dimension و pivot وبتشغّل كذا report في التنفيذ الواحد.
الـ trade-off الحقيقي: البيانات في GA4 Data API فيها sampling لو الـ property بتاعتك بتعمل أكثر من 10 مليون event شهريًا. لو موقعك بالحجم ده، استخدم BigQuery Export المجاني من GA4 بدل الـ Data API، والـ query بيبقى دقيق 100%.
متى لا تستخدم هذه الطريقة
لو الفريق أقل من 3 أشخاص والأرقام مش بتتحول لقرارات أسبوعية، الأتمتة هنا هتبقى overhead مش مكسب. كل workflow بتعمله هتضطر تصونه (تحديثات n8n، انتهاء Slack tokens، تغييرات GA4 Data API). كمان لو محتاج مقاييس متقدمة زي funnels أو cohort analysis أو attribution، n8n هيبقى محدود — استخدم Looker Studio مع scheduled email PDF، أو اربط GA4 مع BigQuery و ابني dashboard مخصص.
الخطوة التالية
افتح GA4 Admin دلوقتي، روح على Property Settings، وانسخ الـ Property ID (رقم من 9 أرقام). بعدين من Google Cloud Console اعمل service account جديد في المشروع. خلال 10 دقايق هتكون جاهز تبدأ بناء الـ workflow في n8n. لو واجهتك مشكلة صلاحيات، اتأكد إن email الـ service account مضاف على مستوى الـ Property في GA4، مش على مستوى الـ Account.
المصادر
- Google Analytics Data API v1 — Reference:
developers.google.com/analytics/devguides/reporting/data/v1 - GA4 Data API Quotas & Limits:
developers.google.com/analytics/devguides/reporting/data/v1/quotas - n8n Docker Installation Docs:
docs.n8n.io/hosting/installation/docker - Slack Block Kit Builder:
api.slack.com/block-kit - GA4 BigQuery Export Docs:
support.google.com/analytics/answer/9358801