أتمتة تقارير 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 أيام: مستخدمين نشطين، جلسات، مشاهدات صفحات، ومتوسط مدة الجلسة.