דלג לתוכן הראשי

אירועים מותאמים

אירועים מייצגים פעולות שמשתמשים מבצעים באפליקציה שלכם. עקבו אחרי אירועים מותאמים כדי לבנות סגמנטים, להפעיל קמפיינים ולנתח התנהגות משתמשים.

מה הם אירועים?​

אירועים הם רשומות עם חותמת זמן של פעולות משתמש:

{
"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/api/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 /users/track - `events` accepts one object or an array (max 500)
POST /users/track
{
"events": [
{
"externalId": "user_123",
"name": "Product Viewed",
"properties": { "productId": "123" }
},
{
"externalId": "user_123",
"name": "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

מגבלות אירועים וביצועים​

מגבלות קצב​

חבילהאירועים/שנייהאירועים יומיים
Free10/שנייה100,000
Starter50/שנייה500,000
Pro100/שנייה2,000,000
Enterpriseמותאםללא הגבלה

שיטות עבודה מומלצות לביצועים​

  1. אירועים נשלחים אוטומטית באצוות על ידי ה־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
  2. אל תעקבו בתדירות גבוהה מדי:

    // Bad: Tracking every scroll
    window.addEventListener('scroll', () => {
    joryio.track('Page Scrolled');
    });

    // Good: Track scroll depth milestones
    joryio.track('Page Scrolled', {
    depth: 75 // %
    });
  3. שמרו על מאפיינים בהיקף סביר:

    • מקסימום 50 מאפיינים לאירוע
    • מקסימום 10KB לגודל אירוע כולל
    • הימנעו ממחרוזות ארוכות במיוחד

דיבוג אירועים​

הפעלת מצב Debug​

const joryio = new JoryioSDK({
sdkKey: 'jry_sdk_web_...',
enableDebug: true // See all events in console
});

אימות אירועים בלוח הבקרה​

  1. עברו אל Users → חפשו משתמש
  2. עברו ללשונית Activity
  3. ראו את כל האירועים שנאספו

תקלות נפוצות​

אירועים לא מופיעים:

  • בדקו שה־SDK מאותחל
  • ודאו שהמשתמש מזוהה (או שקיים מזהה אנונימי)
  • הפעילו מצב debug
  • בדקו שגיאות בקונסול הדפדפן

מאפיינים לא מופיעים:

  • ודאו ששמות המאפיינים נכונים
  • בדקו סוגי נתונים
  • הימנעו משמות מאפיינים שמורים (תחילית $)

צעדים הבאים​