# تكامل بث الأحداث

<Aside type="caution" icon="setting" title="مطلوب مساعدة من فريق التطوير">
 ستحتاج إلى مساعدة من فريق التطوير الخاص بك لإعداد التكامل. يرجى مشاركة هذا الدليل معهم.
</Aside>

## نظرة عامة على التكامل

### نوع التكامل

**المصدر:** يتم إرسال البيانات من Pushwoosh إلى نظامك عبر HTTP أو gRPC بناءً على مشغلات الأحداث التي تم تكوينها.

### كيف يعمل التكامل؟

يقوم Pushwoosh بنقل بيانات أحداث الاتصال (مثل نشاط الدفع/البريد الإلكتروني) إلى نقطة نهاية يحددها العميل. يتم إرسال البيانات في تدفقات دفعات على فترات مجدولة أو عند الوصول إلى الحد الأدنى لحجم الدفعة.

يتم إرسال البيانات فقط إذا كانت تطابق الأحداث والمنصات والفلاتر الاختيارية المحددة (رموز الحملة/الرسالة، النشاط المباشر). يجب أن تكون نقطة نهاية العميل جاهزة للاستلام والرد اختياريًا بحالة.

### مسرد المصطلحات

**Endpoint URL**: نقطة نهاية من جانب الخادم تسمح باستقبال الطلبات. يمكن للعميل تحديد منفذ إذا لزم الأمر.

أمثلة:

* `https://clientdomainname.com/webhook_endpoint`  
* `https://clientdomainname.com:8081/webhook_endpoint`

### قائمة الكيانات المتزامنة

* أحداث إحصائيات الاتصال (مثل، إرسال إشعار، تسليم بريد إلكتروني)

### حالات الاستخدام

* **تتبع التفاعل في الوقت الفعلي**

مراقبة تفاعلات المستخدم مثل إرسال الإشعارات أو فتح البريد الإلكتروني أو تسليم الرسائل فور حدوثها، مما يتيح رؤية فورية لأداء الحملة.

* **تكامل التحليلات الخارجية**

بث الأحداث إلى منصات التحليلات التابعة لجهات خارجية لإعداد التقارير والتحليل المركزي.

* **سير عمل المستخدم الآلي**

تشغيل الإجراءات في الأنظمة الخارجية (مثل أنظمة إدارة علاقات العملاء أو أدوات أتمتة التسويق) بناءً على سلوكيات المستخدم، على سبيل المثال، إرسال رسالة متابعة عندما يفتح المستخدم بريدًا إلكترونيًا.

## إعداد التكامل

لإعداد التكامل:

1. في حساب Pushwoosh الخاص بك، انتقل إلى **الإعدادات > تكاملات الطرف الثالث**، وابحث عن **تكامل بث الأحداث**، وانقر على **تكوين**.

![تكوين تكامل بث الأحداث](/integrations-event-streaming-integration-1.webp)

2. في النافذة التي تفتح، املأ الحقول اللازمة.

![املأ الحقول اللازمة](/integrations-event-streaming-integration-2.webp)

#### أدخل عنوان URL لنقطة النهاية

 في حقل **Endpoint URL**، أدخل عنوان URL الكامل الذي سيتم إرسال الأحداث إليه، بما في ذلك البروتوكول والمنفذ إن أمكن. 
 
 **مثال**

* `https://clientdomainname.com/webhook_endpoint`   
* `https://clientdomainname.com:8081/webhook\_endpoint` 


#### حدد الأحداث

   
من القائمة المنسدلة **الأحداث**، حدد حدثًا واحدًا على الأقل. إذا لم يتم تحديد أي شيء، فسيفشل التحقق. تتم إدارة قائمة الأحداث بواسطة الواجهة الخلفية وقد تتغير بمرور الوقت.

#### توفير بيانات اعتماد التفويض

إذا كان الخادم الخاص بك يتطلب ذلك، فأدخل القيمة الكاملة لترويسة `Authorization` في حقل **التفويض**.

أمثلة:

* `Bearer your_token_here`  
    
* `Basic base64encoded_credentials`

<Aside>يتم إدراج القيمة **كما هي** في ترويسة `Authorization` (HTTP) أو بيانات gRPC الوصفية. تأكد من وجود مسافة بين نظام المصادقة والرمز المميز.</Aside>

#### اختر نوع النقل

من القائمة المنسدلة **نوع النقل**، اختر بروتوكول التسليم لنقل الأحداث: **HTTP** أو **gRPC**. لكل منهما سلوك وتكوين محدد.

##### HTTP

مع نوع النقل **HTTP**، يرسل Pushwoosh البيانات على دفعات بناءً على أحد الشروط التالية:

* جاهزية 100 حدث على الأقل للإرسال، أو

* مرور ساعة واحدة منذ آخر إرسال.

بعد إرسال البيانات، يتم إغلاق الاتصال بمجرد استلام استجابة ناجحة.

إذا استجاب الخادم بخطأ **5xx**، فسيقوم Pushwoosh بإعادة محاولة الطلب وفقًا لسياسة إعادة المحاولة المحددة.

**آلية إعادة المحاولة**

| المحاولة | التأخير |
| :---- | :---- |
| الأولى | ثانية واحدة |
| الثانية | 3 ثوانٍ بعد المحاولة الأولى |
| الثالثة | 8 ثوانٍ بعد المحاولة الثانية |

إذا فشلت جميع محاولات إعادة المحاولة، يتم تجاهل الطلب.

**المهلة**

المهلة الافتراضية للطلب هي **30 ثانية**. يمكن تخصيص هذا عند الطلب عبر الدعم.

<LinkCard  
  title="عرض مثال" 
  href="/webhook_request_batch.json" 
  target="_blank"
  rel="noopener noreferrer"
/>

##### gRPC

يستخدم نوع النقل gRPC **البث ثنائي الاتجاه** لنقل البيانات. تعرف على المزيد في [وثائق gRPC](https://grpc.io/docs/what-is-grpc/core-concepts/#bidirectional-streaming-rpc).

يتم فتح بث عند استيفاء أحد الشرطين التاليين:
* جاهزية 1000 حدث على الأقل للتسليم
* مرور ساعة واحدة منذ آخر بث تم فتحه

يتم إغلاق البث بعد إرسال الأحداث. هذا يضمن عدم فتح بث جديد لكل حدث فردي في وقت قصير.

<LinkCard  
  title="انظر مواصفات protobuf" 
  href="/webhook.proto" 
/>

**آلية إعادة المحاولة**  
يتضمن كل حدث `uuid` فريدًا. إذا فشل حدث ما:

1. يجب أن تتضمن الاستجابة `status` **لا يساوي** `"Success"`  
2. يجب تضمين `uuid` الأصلي من الطلب

سيقوم Pushwoosh بإعادة محاولة التسليم بناءً على هذه الاستجابة.

**إعدادات الاتصال** 

يتم تكوين الخيارات المتقدمة مثل **TLS** أو **keep-alive** أو **سياسات إعادة المحاولة** يدويًا عبر الدعم وقد تتطلب مشاركة فريق التطوير.

### حدد المنصات

في قسم **المنصات**، حدد منصة واحدة على الأقل لتفعيل بث الأحداث.

![حدد منصة واحدة على الأقل](/integrations-event-streaming-integration-3.webp)

تشمل المنصات المدعومة:

* iOS, Android, macOS, Windows, Amazon, Safari  
* Chrome, Firefox, Internet Explorer, Baidu, Huawei  
* Email, SMS, Line, Xiaomi, WhatsApp

### تكوين الفلاتر المتقدمة

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

* **أحداث النشاط المباشر:** قم بالتمكين لاستلام أحداث النشاط المباشر. تحتوي هذه الأحداث فقط على بيانات وصفية بما في ذلك `live_activity_id`.  
    
* **فلاتر الحملة:** قم بالتصفية حسب رمز الحملة. سيتم تسليم الأحداث المرتبطة بهذه الحملات فقط.  
    
* **فلاتر الرسائل:** قم بالتصفية حسب رمز الرسالة. سيتم تسليم الأحداث المرتبطة بهذه الرسائل فقط.

![تعيين الفلاتر المتقدمة](/integrations-event-streaming-integration-4.webp)

بعد إكمال جميع الحقول المطلوبة، انقر فوق زر **تطبيق** لحفظ وتفعيل التكامل الخاص بك.
<Aside>ستدخل تغييرات التكوين حيز التنفيذ **في غضون 15 دقيقة** بعد الإرسال.</Aside>


<Aside type="tip">
للحصول على إعدادات متقدمة مثل المهلات المخصصة أو تكوينات gRPC، يرجى [الاتصال بالدعم](https://help.pushwoosh.com/hc/en-us/requests/new).
</Aside>


## تفاصيل الطلب ومثال

|            |                                                   |
|-----------------------|----------------------------------------------------------|
| **نقطة النهاية**          | `https://exampleclientendpoint.com/webhook_endpoint`     |
| **طلب HTTP**      | `POST`                                                   |
| **المصادقة**    | لا                                                       |
| **نوع الطلب**      | المصدر                                                   |
| **معنى الطلب**   | إرسال الطلبات إلى نقطة نهاية الويب هوك                    |
| **الترويسات**           | `Content-Type: application/json`                         |

**مثال على نص الطلب**

```
{ 
  "event_name": "Email Opened",
  "message_code": "E682-E6D92B9A-53E24868",
  "campaign_id": 961048,
  "platform": "Email",
  "payload": "Welcome to Headway! 👋",
  "application_code": "XXXXX-XXXXX",
  "hwid": "user@example.com",
  "user_id": "USER_ID",
  "timestamp": 1723799271,
  "journey_title": "",
  "journey_point_title": "5_Welcome_ID_new"
}
```

**الاستجابة**  
في الوقت الحالي، يتم تجاهل رمز الاستجابة ونصها.

## كيف تعرف أن التكامل يعمل؟

ستبدأ في تلقي طلبات من Pushwoosh على نقطة النهاية التي قمت بتكوينها.