אירועים מותאמים
אירועים מייצגים פעולות שמשתמשים מבצעים באפליקציה שלכם. עקבו אחרי אירועים מותאמים כדי לבנות סגמנטים, להפעיל קמפיינים ולנתח התנהגות משתמשים.
מה הם אירועים?
אירועים הם רשומות עם חותמת זמן של פעולות משתמש:
{
"userId": "user_123",
"eventName": "Order Completed",
"timestamp": "2024-01-20T14:30:00Z",
"properties": {
"orderId": "order_456",
"total": 99.99,
"currency": "USD",
"items": 3,
"paymentMethod": "credit_card"
}
}
מעקב אירועים
דרך SDK (צד הלקוח)
import JoryioSDK from '@joryio/web-sdk';
const joryio = new JoryioSDK({ sdkKey: 'jry_sdk_web_...' });
// Simple event
joryio.track('Button Clicked');
// Event with properties
joryio.track('Order Completed', {
orderId: 'order_456',
total: 99.99,
currency: 'USD',
items: 3
});
// Page view
joryio.track('Page Viewed', {
page: '/pricing',
category: 'Marketing',
title: 'Pricing Page'
});
דרך API (צד השרת)
fetch('https://api-eu1.joryio.com/track', {
method: 'POST',
headers: {
'Authorization': 'Bearer jry_live_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
userId: 'user_123',
eventName: 'Order Completed',
properties: {
orderId: 'order_456',
total: 99.99,
currency: 'USD'
}
})
});
מעקב באצווה
ה־SDK מאגד אירועים אוטומטית לשיפור ביצועים. אירועים נכנסים לתור ונשלחים בקבוצות:
// SDK automatically batches these events
joryio.track('Product Viewed', { productId: '123' });
joryio.track('Added To Cart', { productId: '123', price: 49.99 });
joryio.track('Cart Viewed', { itemCount: 1 });
// Events are sent together after 10 seconds or 20 events (configurable)
// To send immediately:
joryio.flush();
// API: POST /track with a bare array body (max 500)
POST /track
[
{
"userId": "user_123",
"eventName": "Product Viewed",
"properties": { "productId": "123" }
},
{
"userId": "user_123",
"eventName": "Added To Cart",
"properties": { "productId": "123", "price": 49.99 }
}
]
שמות אירועים
שיטות עבודה מומלצות
השתמשו בשמות ברורים ועקביים:
טוב (אובייקט + פעולה):
joryio.track('Product Viewed');
joryio.track('Cart Abandoned');
joryio.track('Order Completed');
joryio.track('Trial Started');
לא טוב:
joryio.track('view_product'); // Inconsistent case
joryio.track('clicked'); // Too generic
joryio.track('user_action_123'); // Not descriptive
מוסכמת שמות
מומלץ: Object + Past Tense Verb
Product Viewed
Order Completed
Account Created
Feature Enabled
Video Watched
Form Submitted
מאפייני אירועים
המאפיינים מספקים הקשר על האירוע:
אירועי מסחר אלקטרוני
// Product Viewed
joryio.track('Product Viewed', {
productId: 'prod_123',
productName: 'Premium Plan',
category: 'Subscription',
price: 99.99,
currency: 'USD',
inStock: true
});
// Order Completed
joryio.track('Order Completed', {
orderId: 'order_456',
total: 249.99,
currency: 'USD',
itemCount: 3,
discount: 25.00,
shippingCost: 10.00,
paymentMethod: 'credit_card',
products: [
{ id: 'prod_1', name: 'Item 1', price: 99.99 },
{ id: 'prod_2', name: 'Item 2', price: 149.99 }
]
});
// Cart Abandoned
joryio.track('Cart Abandoned', {
cartValue: 149.99,
itemCount: 2,
cartAge: '2h 30m'
});
אירועי SaaS
// Trial Started
joryio.track('Trial Started', {
plan: 'premium',
trialDays: 14,
source: 'pricing_page'
});
// Feature Used
joryio.track('Feature Used', {
featureName: 'export',
exportFormat: 'csv',
recordCount: 1500,
duration: 3.5 // seconds
});
// Subscription Upgraded
joryio.track('Subscription Upgraded', {
fromPlan: 'starter',
toPlan: 'professional',
billingCycle: 'monthly',
mrr: 199,
effectiveDate: '2024-02-01'
});
אירועי תוכן/מדיה
// Video Watched
joryio.track('Video Watched', {
videoId: 'vid_123',
videoTitle: 'Product Demo',
duration: 120, // seconds
percentWatched: 85,
quality: '1080p',
platform: 'web'
});
// Article Read
joryio.track('Article Read', {
articleId: 'article_456',
title: '10 Tips for Better Marketing',
category: 'Marketing',
author: 'John Doe',
readTime: 5, // minutes
scrollDepth: 90
});
דוגמאות נפוצות לאירועים
מחזור חיי משתמש
// Signup flow
joryio.track('Signup Started');
joryio.track('Signup Completed', {
method: 'email',
source: 'homepage_cta'
});
joryio.track('Email Verified');
joryio.track('Onboarding Completed', {
stepsCompleted: 5,
timeSpent: '8m 30s'
});
// Engagement
joryio.track('Session Started');
joryio.track('Feature Discovered', {
featureName: 'advanced_filters'
});
joryio.track('Help Article Viewed', {
articleId: 'help_123',
query: 'how to export data'
});
joryio.track('Session Ended', {
duration: '15m 20s',
pagesViewed: 8
});
משפך מסחר אלקטרוני
// Browse
joryio.track('Product Searched', {
query: 'wireless headphones',
results: 45
});
joryio.track('Product Viewed', {
productId: 'prod_123',
price: 199.99
});
joryio.track('Product Compared', {
productIds: ['prod_123', 'prod_456']
});
// Cart
joryio.track('Added To Cart', {
productId: 'prod_123',
quantity: 1,
price: 199.99
});
joryio.track('Cart Viewed');
joryio.track('Coupon Applied', {
code: 'SAVE20',
discount: 39.99
});
// Checkout
joryio.track('Checkout Started', {
value: 159.99
});
joryio.track('Payment Info Entered');
joryio.track('Order Completed', {
orderId: 'order_789',
revenue: 159.99
});
מדדי SaaS
// Activation
joryio.track('Trial Started');
joryio.track('Integration Connected', {
integration: 'salesforce'
});
joryio.track('First Report Created');
joryio.track('Team Member Invited');
// Engagement
joryio.track('Daily Active', {
loginCount: 45
});
joryio.track('API Call Made', {
endpoint: '/users',
method: 'GET'
});
// Revenue
joryio.track('Subscription Created', {
plan: 'professional',
mrr: 199
});
joryio.track('Subscription Renewed', {
plan: 'professional'
});
joryio.track('Subscription Cancelled', {
reason: 'too_expensive'
});
סוגי נתונים למאפיינים
סוגים נתמכים
joryio.track('Event Name', {
// String
name: "John Doe",
plan: "premium",
// Number
age: 30,
price: 99.99,
quantity: 5,
// Boolean
isActive: true,
emailVerified: false,
// Date (ISO 8601 string)
createdAt: "2024-01-20T10:30:00Z",
expiresAt: "2024-02-20T23:59:59Z",
// Array
tags: ["vip", "early-access"],
categories: ["electronics", "accessories"],
// Object
address: {
city: "San Francisco",
state: "CA",
zip: "94102"
},
metadata: {
source: "web",
campaign: "summer_sale"
}
});
שמות מאפיינים שמורים
מאפיינים שמתחילים ב־$ שמורים:
$app_id- מזהה אפליקציה$app_name- שם אפליקציה$platform- פלטפורמה (web, ios, android)$session_id- מזהה סשן$anonymous_id- מזהה משתמש אנונימי$is_identified- האם המשתמש מזוהה
אל תשתמשו בשמות האלה למאפיינים מותאמים.
שימוש באירועים לסגמנטציה
צרו סגמנטים לפי התנהגות אירועים:
אירוע בוצע
Segment: Active users
Filter: Performed "Session Started" within last 7 days
אירוע לא בוצע
Segment: Users who haven't upgraded
Filter: Has NOT performed "Subscription Upgraded"
ספירת אירועים
Segment: Power users
Filter: Performed "Feature Used" >= 50 times within last 30 days
מאפייני אירוע
Segment: High-value customers
Filter: Performed "Order Completed"
WHERE properties.total >= 500
within last 90 days
סגמנטים התנהגותיים מורכבים
Segment: At-risk users
Filter Group 1 (AND):
- Performed "Login" within last 90 days
- Has NOT performed "Login" within last 14 days
- Performed "Order Completed" at least 1 time
Use for: Re-engagement campaign
קמפיינים שמופעלים לפי אירועים
הפעילו קמפיינים על בסיס אירועים:
דוגמה 1: נטישת עגלה
Trigger: "Cart Abandoned" event
Wait: 1 hour
Condition: Has NOT performed "Order Completed"
Action: Send recovery email with discount
דוגמה 2: תהליך הצטרפות
Trigger: "Signup Completed" event
Flow:
→ Welcome email (immediate)
→ Wait 2 days
→ Getting started guide
→ Wait 5 days
→ Check: Performed "First Report Created"?
- Yes: Advanced tips email
- No: Help offer email
מגבלות אירועים וביצועים
מגבלות קצב
| חבילה | אירועים/שנייה | אירועים יומיים |
|---|---|---|
| Free | 10/שנייה | 100,000 |
| Starter | 50/שנייה | 500,000 |
| Pro | 100/שנייה | 2,000,000 |
| Enterprise | מותאם | ללא הגבלה |
שיטות עבודה מומלצות לביצועים
-
אירועים נשלחים אוטומטית באצוות על ידי ה־SDK:
// SDK automatically batches these for you
joryio.track(event1);
joryio.track(event2);
joryio.track(event3);
// All three sent together after batchFlushInterval (default 5s) or batchSize (default 50) reached
// For critical events that need immediate sending:
joryio.track('Order Completed', {...});
joryio.flush(); // Send immediately -
אל תעקבו בתדירות גבוהה מדי:
// Bad: Tracking every scroll
window.addEventListener('scroll', () => {
joryio.track('Page Scrolled');
});
// Good: Track scroll depth milestones
joryio.track('Page Scrolled', {
depth: 75 // %
}); -
שמרו על מאפיינים בהיקף סביר:
- מקסימום 50 מאפיינים לאירוע
- מקסימום 10KB לגודל אירוע כולל
- הימנעו ממחרוזות ארוכות במיוחד
דיבוג אירועים
הפעלת מצב Debug
const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_...',
enableDebug: true // See all events in console
});
אימות אירועים בלוח הבקרה
- עברו אל Users → חפשו משתמש
- עברו ללשונית Activity
- ראו את כל האירועים שנאספו
תקלות נפוצות
אירועים לא מופיעים:
- בדקו שה־SDK מאותחל
- ודאו שהמשתמש מזוהה (או שקיים מזהה אנונימי)
- הפעילו מצב debug
- בדקו שגיאות בקונסול הדפדפן
מאפיינים לא מופיעים:
- ודאו ששמות המאפיינים נכונים
- בדקו סוגי נתונים
- הימנעו משמות מאפיינים שמורים (תחילית $)