انتقل إلى المحتوى

إرسال إشعار (Notify)

POST https://api.pushwoosh.com/messaging/v2/notify

ينشئ ويجدول رسالة واحدة.

بنية الطلب

Anchor link to

جسم الطلب هو NotifyRequest مع نوع واحد بالضبط من نوعين:

  • segment: استهداف شريحة جمهور عن طريق رمز الشريحة، أو تعبير seglang، أو تعبير مرشح منظم.
  • transactional: الإرسال إلى قائمة صريحة من hwids، أو معرفات المستخدمين (user IDs)، أو رموز الإشعارات الفورية (push tokens)، أو أجهزة الاختبار.
الشكل
{
"segment": { ... } // أو
"transactional": { ... }
}

NotifySegment

Anchor link to

يستهدف المستخدمين الذين يطابقون شريحة جمهور أو تعبير مرشح.

الحقلالنوعالوصف
scheduleScheduleمتى وكيف يتم الإرسال. مطلوب.
applicationstringرمز التطبيق.
platformsarray of Platformالمنصات التي تستهدفها الرسالة.
codestringرمز الشريحة. متعارض مع expression و filter_expression.
expressionstringتعبير Seglang.
filter_expressionFilterExpressionتعبير مرشح منظم (متقدم).
payloadPayloadحمولة Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber. متعارض مع email_payload.
email_payloadEmailPayloadحمولة البريد الإلكتروني.
campaignstringرمز الحملة لنسب هذه الرسالة إليه.
frequency_cappingFrequencyCappingحدود التكرار لكل مستخدم.
send_rateSendRateتخفيف سرعة الإرسال.
message_typeMessageTypeMESSAGE_TYPE_MARKETING (الافتراضي) أو MESSAGE_TYPE_TRANSACTIONAL. يتحكم في تصفية المجموعة الضابطة.
dynamic_content_placeholdersmap<string, string>يستبدل العناصر النائبة في المحتوى.
meta_dataobjectبيانات وصفية حرة الشكل يتم تمريرها إلى التحليلات اللاحقة.

مثال: الإرسال إلى شريحة

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"segment": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"code": "active_users",
"payload": {
"content": {
"localized_content": {
"en": {
"ios": { "body": "Hello!" },
"android": { "body": "Hello!" }
}
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_MARKETING"
}
}'

NotifyTransactional

Anchor link to

يرسل إلى قائمة صريحة من المستلمين.

الحقلالنوعالوصف
scheduleScheduleمطلوب.
applicationstringرمز التطبيق.
platformsarray of Platformالمنصات التي تستهدفها الرسالة.
test_devicesboolإذا كانت true، يتم الإرسال إلى أجهزة الاختبار الخاصة بالتطبيق فقط.
hwids{ "list": [string, ...] }الإرسال إلى هذه hwids فقط.
users{ "list": [string, ...] }الإرسال إلى معرفات المستخدمين هذه فقط.
push_tokens{ "list": [string, ...] }الإرسال إلى رموز الإشعارات الفورية هذه فقط.
payloadPayloadحمولة Push / SMS / Telegram / Kakao / LINE / WhatsApp / Viber.
email_payloadEmailPayloadحمولة البريد الإلكتروني.
return_unknown_identifiersboolعندما تكون true، تعرض قائمة unknown_identifiers في الاستجابة المعرفات التي لم يتم العثور عليها.
use_latest_user_deviceboolينطبق فقط عند استهداف users. عندما تكون true، يتم تسليم الرسالة إلى أحدث جهاز نشط لكل مستخدم — الجهاز الذي لديه أحدث وقت لفتح التطبيق (Last Application Open) — بدلاً من جميع الأجهزة المرتبطة بمعرف المستخدم هذا. القيمة الافتراضية هي false (إرسال إلى كل جهاز).
campaign, frequency_capping, send_rate, message_type, dynamic_content_placeholders, meta_dataانظر NotifySegment أعلاه.

test_devices، hwids، users، و push_tokens متعارضة. يجب تعيين واحد منها فقط.

مثال: رسالة تعاملية حسب معرفات المستخدمين

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-123", "user-456"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"return_unknown_identifiers": true,
"use_latest_user_device": true
}
}'

الاستجابة

Anchor link to
{
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
}
الحقلالنوعالوصف
message_codestringرمز رسالة فريد. استخدمه مع /getMessageDetails ونقاط نهاية إحصائيات الرسائل.
unknown_identifiersarray of stringالمعرفات التي لم يتم العثور عليها في الحساب. يتم ملؤها فقط عند تعيين return_unknown_identifiers: true في النوع transactional.

الأنواع المشتركة

Anchor link to
{
"at": "2026-05-01T12:00:00Z",
"follow_user_timezone": true,
"past_timezones_behaviour": "PAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY"
}
الحقلالنوعالوصف
attimestampوقت الإرسال المطلق (RFC 3339). إذا كان في الماضي، يتم إرسال الرسالة فورًا. بحد أقصى 14 يومًا في المستقبل.
afterdurationبديل لـ at. أرسل بعد هذا الفاصل الزمني من “الآن” (على سبيل المثال، "3600s").
follow_user_timezoneboolعندما تكون true، يستقبل كل جهاز الرسالة في وقت at حسب منطقته الزمنية المحلية.
past_timezones_behaviourenumPAST_TIMEZONES_BEHAVIOUR_SEND_IMMEDIATELY (الافتراضي)، PAST_TIMEZONES_BEHAVIOUR_DO_NOT_SEND، أو PAST_TIMEZONES_BEHAVIOUR_NEXT_DAY. يكون ذا معنى فقط عندما تكون follow_user_timezone قيمتها true.

FrequencyCapping

Anchor link to

حدود التكرار لكل مستخدم للإرسالات التسويقية. لتعطيل الحد، احذف frequency_capping بالكامل، أو أرسل days: 0 مع count: 0.

{ "days": 7, "count": 3, "exclude": false, "avoid": true }
  • days (int, 1–30, أو 0 لتعطيل الحد): نافذة المراجعة. يجب إرسالها مع count — إذا كان أحدهما 0، فيجب أن يكون الآخر أيضًا 0؛ إرسال أحدهما كـ 0 بينما الآخر غير صفري يعيد 400.
  • count (int, 1 أو أعلى, أو 0 لتعطيل الحد): الحد الأقصى للرسائل المسموح بها خلال days. نفس قاعدة الاقتران مثل days أعلاه.
  • exclude (bool): استبعاد صارم للمستخدمين الذين وصلوا بالفعل إلى الحد الأقصى.
  • avoid (bool): تجنب ناعم للمستخدمين الذين وصلوا بالفعل إلى الحد الأقصى (لا يزالون يُحتسبون في التحليلات).
{ "value": 500, "bucket": "1s", "avoid": false }

يخفف سرعة الإرسال. value هي الرسائل لكل bucket؛ bucket النموذجي هو "1s".

تعداد Platform

Anchor link to

IOS, ANDROID, OSX, WINDOWS, AMAZON, SAFARI, CHROME, FIREFOX, IE, EMAIL, BAIDU_ANDROID, HUAWEI_ANDROID, SMS, WEB, KAKAO, TELEGRAM, LINE, WHATS_APP, VIBER.

تعداد MessageType

Anchor link to
  • MESSAGE_TYPE_UNSPECIFIED: مكافئ لـ MESSAGE_TYPE_MARKETING.
  • MESSAGE_TYPE_MARKETING: يخضع لتصفية المجموعة الضابطة وتحديد التكرار.
  • MESSAGE_TYPE_TRANSACTIONAL: يتخطى تصفية المجموعة الضابطة وتحديد التكرار. استخدمه لتأكيدات الطلبات، وكلمات المرور لمرة واحدة (OTPs)، والتدفقات الحرجة المماثلة.

مواضيع ذات صلة

Anchor link to