অ্যাসিঙ্ক্রোনাস মেসেজ পরিসংখ্যান এক্সপোর্ট
exportMessagesStatistics সার্ভারে মেসেজ হিস্ট্রি এবং পরিসংখ্যান একটি CSV ফাইলে এক্সপোর্ট করে। এটি বড় বা সম্পূর্ণ অ্যাকাউন্টের ডেটা আনার জন্য ব্যবহার করুন যা messages:list হ্যান্ডেল করতে পারে না।
কখন messages:list এর পরিবর্তে এক্সপোর্ট ব্যবহার করবেন
Anchor link toএকটি নির্দিষ্ট সময়ের লাইভ, পেজিনেটেড লুকআপের জন্য messages:list ব্যবহার করুন। exportMessagesStatistics ব্যবহার করুন যখন ফলাফল messages:list-এর ডিপ-পেজিনেশন সীমা (page × per_page > 100000) অতিক্রম করবে, অথবা যখন লক্ষ্য পেজ করা JSON-এর পরিবর্তে একটি একক ডাউনলোডযোগ্য ফাইল হবে। এক্সপোর্টের date_range বা সারির সংখ্যার উপর কোনো সীমা নেই, কারণ এটি ফলাফলটি একটি প্রতিক্রিয়াতে ধরে রাখার পরিবর্তে ডিস্কের একটি ফাইলে স্ট্রিম করে।
এক্সপোর্ট ফ্লো কীভাবে কাজ করে
Anchor link tomessages:list-এর মতো একই ফিল্টার ব্যবহার করেexportকল করুন। ফাইল তৈরি হওয়ার আগেই প্রতিক্রিয়াটি অবিলম্বে একটিuidটাস্ক আইডেন্টিফায়ার ফেরত দেয়।- সেই
uidদিয়েstatusপোল করুন যতক্ষণ না এটিSTATUS_SUCCESS(বাSTATUS_FAILED) রিপোর্ট করে। - জেনারেট করা ফাইলের নাম পেতে একই
uidদিয়েresultকল করুন। - নাম দিয়ে ফাইলটি ডাউনলোড করুন।
একটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্কগুলি খুঁজতে lastTasks ব্যবহার করুন, এবং একটি টাস্ক বাতিল করতে বা তার ফাইলটি আগে সরিয়ে ফেলতে delete ব্যবহার করুন।
মেথড
Anchor link toএক্সপোর্ট লাইফসাইকেলে পাঁচটি মেথড রয়েছে, সাথে একটি সাধারণ ডাউনলোড এন্ডপয়েন্ট:
| মেথড | বিবরণ |
|---|---|
exportMessagesStatistics/export | একটি এক্সপোর্ট কিউতে যোগ করে এবং একটি টাস্ক uid ফেরত দেয়। |
exportMessagesStatistics/status | টাস্কের অগ্রগতি পরীক্ষা করে। |
exportMessagesStatistics/result | টাস্ক শেষ হয়ে গেলে জেনারেট করা ফাইলের নাম ফেরত দেয়। |
exportMessagesStatistics/lastTasks | একটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্ক তালিকাভুক্ত করে। |
exportMessagesStatistics/delete | রিটেনশন উইন্ডো শেষ হওয়ার আগে একটি টাস্ক বাতিল করে বা তার ফাইল সরিয়ে দেয়। |
| ডাউনলোড | নাম দিয়ে জেনারেট করা CSV ফাইল ডাউনলোড করে। |
export
Anchor link toএকটি মেসেজ হিস্ট্রি এক্সপোর্ট কিউতে যোগ করে এবং সাথে সাথে একটি টাস্ক আইডেন্টিফায়ার ফেরত দেয়।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export
হেডার
Anchor link toরিকোয়েস্টের জন্য একটি সার্ভার API টোকেন প্রয়োজন:
| নাম | প্রয়োজনীয় | বিবরণ |
|---|---|---|
Authorization | হ্যাঁ | সার্ভার API টোকেন। অবশ্যই নিম্নলিখিত ফরম্যাটে প্রদান করতে হবে: Authorization: Api <Server Key>। |
রিকোয়েস্ট বডি প্যারামিটার
Anchor link toরিকোয়েস্ট বডি নিম্নলিখিত ফিল্ডগুলি গ্রহণ করে:
| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
|---|---|---|---|
type | হ্যাঁ | স্ট্রিং | অবশ্যই “TASK_TYPE_EXPORT হতে হবে। |
export_messages | হ্যাঁ | অবজেক্ট | এক্সপোর্ট প্যারামিটার, নিচে বর্ণিত। |
export_messages | নোট দেখুন | স্ট্রিং | Pushwoosh অ্যাপ্লিকেশন কোড। app_group_code সেট করা না থাকলে এটি প্রয়োজনীয়। |
export_messages | নোট দেখুন | স্ট্রিং | অ্যাপ্লিকেশন গ্রুপ কোড, গ্রুপের প্রতিটি অ্যাপ জুড়ে এক্সপোর্ট করে। application_code সেট করা না থাকলে এটি প্রয়োজনীয়। |
export_messages | না | স্ট্রিং | মেসেজের শিরোনাম এবং বিষয়বস্তুর উপর ফ্রি-টেক্সট সার্চ। |
export_messages | না | অবজেক্ট | মেসেজ ফিল্টার, নিচে বর্ণিত। সম্পূর্ণ অ্যাকাউন্ট হিস্ট্রি এক্সপোর্ট করতে এটি বাদ দিন। |
export_messages | না | অ্যারে | CSV-তে অন্তর্ভুক্ত করার জন্য কলাম, নিচে বর্ণিত। |
export_messages_v2.filters গ্রহণ করে:
| নাম | টাইপ | বিবরণ |
|---|---|---|
statuses | অ্যারে | অন্তর্ভুক্ত করার জন্য মেসেজের স্ট্যাটাস। সম্ভাব্য মান
|
platforms | অ্যারে | প্ল্যাটফর্ম কোড (সংখ্যাসূচক, যেমন iOS-এর জন্য 1), messages:list দ্বারা ব্যবহৃত প্ল্যাটফর্মের নামের স্ট্রিং নয়। |
sent_date | অবজেক্ট | প্রেরণের তারিখের উপর ভিত্তি করে রিপোর্টিং সময়কাল ফিল্টার করা হয়েছে: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}। |
created_date | অবজেক্ট | মেসেজ তৈরির তারিখের উপর ভিত্তি করে রিপোর্টিং সময়কাল ফিল্টার করা হয়েছে, sent_date-এর মতো একই ফরম্যাট। |
created_via | অ্যারে | মেসেজের উৎস। সম্ভাব্য মান
|
segments | অ্যারে | মেসেজটি যে ফিল্টার কোড-এ পাঠানো হয়েছিল। |
campaigns | অ্যারে | ক্যাম্পেইন কোড। messages:list-এর মতো নয়, এটি একটি তালিকা নেয়, একটি একক কোড নয়। |
message_id | স্ট্রিং (uint64) | একটি একক সংখ্যাসূচক মেসেজ আইডি, কোট করা। messages:list-এর মতো নয়, এক্সপোর্ট একটি আইডি নেয়, একটি অ্যারে নয়। |
message_code | স্ট্রিং | একটি একক মেসেজ কোড। |
export_messages_v2.properties নির্বাচন করে যে CSV-তে কোন কলামগুলি থাকবে।
সম্ভাব্য মান
"EXPORT_MESSAGE_PROPERTY_ID""EXPORT_MESSAGE_PROPERTY_TIMESTAMP""EXPORT_MESSAGE_PROPERTY_CONTENT""EXPORT_MESSAGE_PROPERTY_TITLE""EXPORT_MESSAGE_PROPERTY_APPLICATIONS""EXPORT_MESSAGE_PROPERTY_STATUS""EXPORT_MESSAGE_PROPERTY_PLATFORMS""EXPORT_MESSAGE_PROPERTY_SOURCE""EXPORT_MESSAGE_PROPERTY_FILTER""EXPORT_MESSAGE_PROPERTY_SUBSCRIPTION_SEGMENTS""EXPORT_MESSAGE_PROPERTY_SENT""EXPORT_MESSAGE_PROPERTY_OPENED""EXPORT_MESSAGE_PROPERTY_ERRORS""EXPORT_MESSAGE_PROPERTY_RECIPIENTS""EXPORT_MESSAGE_PROPERTY_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_DELIVERED""EXPORT_MESSAGE_PROPERTY_TOTAL_OPENED""EXPORT_MESSAGE_PROPERTY_TOTAL_CLICKS""EXPORT_MESSAGE_PROPERTY_CLICKS""EXPORT_MESSAGE_PROPERTY_UNSUBSCRIBED"
উদাহরণ রিকোয়েস্ট
Anchor link to{ "type": "TASK_TYPE_EXPORT_MESSAGES_V2", "export_messages_v2": { "application_code": "XXXXX-XXXXX", "filters": { "created_date": { "date_from": "2026-01-01", "date_to": "2026-06-30" }, "statuses": ["MESSAGE_STATUS_DONE"], "platforms": [1, 3] }, "properties": [ "EXPORT_MESSAGE_PROPERTY_ID", "EXPORT_MESSAGE_PROPERTY_TIMESTAMP", "EXPORT_MESSAGE_PROPERTY_STATUS", "EXPORT_MESSAGE_PROPERTY_PLATFORMS", "EXPORT_MESSAGE_PROPERTY_SENT", "EXPORT_MESSAGE_PROPERTY_OPENED" ] }}{ "uid": "177458"}{ "error": "account not found"}status
Anchor link toএকটি এক্সপোর্ট টাস্কের অগ্রগতি ফেরত দেয়।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status
রিকোয়েস্ট বডি প্যারামিটার
Anchor link toexport দ্বারা ফেরত দেওয়া টাস্ক আইডেন্টিফায়ারটি পাস করুন:
| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
|---|---|---|---|
uid | হ্যাঁ | স্ট্রিং (int64) | export প্রতিক্রিয়া থেকে প্রাপ্ত টাস্ক আইডেন্টিফায়ার, যেমন "177458"। |
উদাহরণ রিকোয়েস্ট
Anchor link to{ "uid": "177458"}{ "status": "STATUS_SUCCESS", "progress": 1}status হল "STATUS_PENDING", "STATUS_SUCCESS", বা "STATUS_FAILED"-এর মধ্যে একটি। progress হল 0 এবং 1-এর মধ্যে একটি ভগ্নাংশ; result কল করার আগে status পোল করুন যতক্ষণ না এটি "STATUS_SUCCESS"-এ পৌঁছায়।
result
Anchor link toটাস্ক সম্পন্ন হয়ে গেলে জেনারেট করা ফাইলের নাম ফেরত দেয়।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result
রিকোয়েস্ট বডি প্যারামিটার
Anchor link toexport দ্বারা ফেরত দেওয়া একই টাস্ক আইডেন্টিফায়ারটি পাস করুন:
| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
|---|---|---|---|
uid | হ্যাঁ | স্ট্রিং (int64) | export প্রতিক্রিয়া থেকে প্রাপ্ত টাস্ক আইডেন্টিফায়ার, যেমন "177458"। |
উদাহরণ রিকোয়েস্ট
Anchor link to{ "uid": "177458"}{ "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" }}status "STATUS_SUCCESS" রিপোর্ট করার আগে result কল করলে একটি খালি ফলাফল ফেরত আসে। file মানটি যেমন আছে তেমনই ডাউনলোড এন্ডপয়েন্টে পাস করুন।
lastTasks
Anchor link toএকটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্ক তালিকাভুক্ত করে, সবচেয়ে সাম্প্রতিকটি প্রথমে।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks
রিকোয়েস্ট বডি প্যারামিটার
Anchor link toপ্রতিটি প্যারামিটার একটি ঐচ্ছিক ফিল্টার; টোকেনের অ্যাক্সেস আছে এমন প্রতিটি টাস্ক তালিকাভুক্ত করতে সেগুলি সব বাদ দিন:
| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
|---|---|---|---|
application | না | স্ট্রিং | Pushwoosh অ্যাপ্লিকেশন কোড। টোকেনের অ্যাক্সেস আছে এমন সমস্ত অ্যাপ্লিকেশন জুড়ে টাস্ক তালিকাভুক্ত করতে এটি বাদ দিন। |
types | না | অ্যারে | নির্দিষ্ট টাস্ক টাইপের মধ্যে সীমাবদ্ধ করুন। শুধুমাত্র মেসেজ এক্সপোর্ট দেখতে [“TASK_TYPE_EXPORT ব্যবহার করুন। |
campaign | না | স্ট্রিং | ক্যাম্পেইন কোড দ্বারা ফিল্টার করুন। |
message_id | না | স্ট্রিং (uint64) | একটি একক সংখ্যাসূচক মেসেজ আইডি দ্বারা ফিল্টার করুন, কোট করা। |
message_code | না | স্ট্রিং | একটি একক মেসেজ কোড দ্বারা ফিল্টার করুন। |
limit | না | ইন্টিজার | ফেরত দেওয়ার জন্য সর্বোচ্চ টাস্কের সংখ্যা। |
timestamp_from | না | স্ট্রিং | শুধুমাত্র এই টাইমস্ট্যাম্পের (RFC 3339) পরে তৈরি করা টাস্কগুলি ফেরত দিন। |
উদাহরণ রিকোয়েস্ট
Anchor link to{ "application": "XXXXX-XXXXX", "types": ["TASK_TYPE_EXPORT_MESSAGES_V2"], "limit": 10}{ "tasks": [ { "id": "177458", "timestamp": "2026-08-13T12:00:00Z", "status": "STATUS_SUCCESS", "requested_by_user": "user@example.com", "export_messages_v2": { "application_code": "XXXXX-XXXXX" }, "export_messages_v2_result": { "file": "Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" } } ]}delete
Anchor link to7-দিনের রিটেনশন উইন্ডো শেষ হওয়ার আগে একটি টাস্ক এবং তার ফাইল মুছে ফেলে।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete
রিকোয়েস্ট বডি প্যারামিটার
Anchor link toexport দ্বারা ফেরত দেওয়া টাস্ক আইডেন্টিফায়ারটি পাস করুন:
| নাম | প্রয়োজনীয় | টাইপ | বিবরণ |
|---|---|---|---|
uid | হ্যাঁ | স্ট্রিং (int64) | export প্রতিক্রিয়া থেকে প্রাপ্ত টাস্ক আইডেন্টিফায়ার, যেমন "177458"। |
উদাহরণ রিকোয়েস্ট
Anchor link to{ "uid": "177458"}{}ডাউনলোড
Anchor link toresult দ্বারা জেনারেট করা CSV ফাইলটি নাম দিয়ে ডাউনলোড করে।
GET https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/<file>
হেডার
Anchor link toঅন্যান্য মেথডগুলির মতো একই উপায়ে প্রমাণীকরণ করুন, অথবা একটি সক্রিয় কন্ট্রোল প্যানেল সেশনের উপর নির্ভর করুন:
| নাম | প্রয়োজনীয় | বিবরণ |
|---|---|---|
Authorization | হ্যাঁ | সার্ভার API টোকেন, অন্যান্য exportMessagesStatistics মেথডগুলির মতো একই ফরম্যাটে: Authorization: Api <Server Key> (Api স্কিমটি কেস-ইনসেনসিটিভ)। Authorization হেডার ছাড়া এবং কোনো লগ-ইন করা কন্ট্রোল প্যানেল সেশন ছাড়া একটি রিকোয়েস্ট 401 Unauthorized পায়। |
<file>-কে result প্রতিক্রিয়া থেকে প্রাপ্ত সঠিক file মান দিয়ে প্রতিস্থাপন করুন, উদাহরণস্বরূপ:
https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csvফাইলটি একটি CSV যা properties-এ নির্বাচিত কলামগুলি ধারণ করে। এক্সপোর্ট শেষ হওয়ার পর এটি 7 দিনের জন্য উপলব্ধ থাকে, তারপর ক্লিনআপ জব এটি সরিয়ে দেয় এবং URLটি আর কাজ করে না।