অ্যাসিঙ্ক্রোনাস মেসেজ পরিসংখ্যান এক্সপোর্ট
exportMessagesStatistics সার্ভারে একটি CSV ফাইলে মেসেজের ইতিহাস এবং পরিসংখ্যান এক্সপোর্ট করে। এটি বড় বা সম্পূর্ণ-অ্যাকাউন্ট পুলের জন্য ব্যবহার করুন যা messages:list পরিচালনা করতে পারে না।
messages:list এর পরিবর্তে কখন এক্সপোর্ট ব্যবহার করবেন
Anchor link toএকটি নির্দিষ্ট সময়ের লাইভ, পেজিনেটেড অনুসন্ধানের জন্য messages:list ব্যবহার করুন। যখন ফলাফল messages:list-এর ডিপ-পেজিনেশন সীমা (page × per_page > 100000) অতিক্রম করবে, অথবা যখন লক্ষ্য পেজ করা JSON-এর পরিবর্তে একটি একক ডাউনলোডযোগ্য ফাইল হবে, তখন exportMessagesStatistics ব্যবহার করুন। এক্সপোর্টের date_range বা সারির সংখ্যার উপর কোনো সীমা নেই, কারণ এটি ফলাফলটি একটি প্রতিক্রিয়ায় ধরে রাখার পরিবর্তে ডিস্কের একটি ফাইলে স্ট্রিম করে।
এক্সপোর্ট ফ্লো কীভাবে কাজ করে
Anchor link tomessages:list-এর মতো একই ফিল্টার ব্যবহার করেexportকল করুন। ফাইল তৈরি হওয়ার আগেই প্রতিক্রিয়াটি অবিলম্বে একটিuidটাস্ক আইডেন্টিফায়ার ফেরত দেয়।- সেই
uidদিয়েstatusপোল করুন যতক্ষণ না এটিSTATUS_SUCCESS(বাSTATUS_FAILED) রিপোর্ট করে। - জেনারেট করা
fileএবং একটি ব্যবহারের জন্য প্রস্তুতfile_urlপেতে একইuidদিয়েresultকল করুন। - ফাইলটি ডাউনলোড করুন।
file_urlযেমন আছে ব্যবহার করুন, অথবা যদি এটি খালি ফিরে আসে তবেfileথেকে URL তৈরি করার জন্য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) | একটি একক সংখ্যাসূচক মেসেজ ID, কোট করা। messages:list-এর মতো নয়, এক্সপোর্ট একটি ID নেয়, একটি অ্যারে নয়। |
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_CAMPAIGN_NAME""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", "file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csv" }}status "STATUS_SUCCESS" রিপোর্ট করার আগে result কল করলে একটি খালি ফলাফল ফেরত আসে। file_url হল অ্যাকাউন্টের জন্য সঠিক ডেটা সেন্টারে ডাউনলোড এন্ডপয়েন্ট-এর একটি ব্যবহারের জন্য প্রস্তুত লিঙ্ক — file থেকে নিজে URL তৈরি করার পরিবর্তে এটি যেমন আছে ব্যবহার করুন। যদি অ্যাকাউন্টের ডেটা সেন্টারে কোনো বেস URL কনফিগার করা না থাকে তবে file_url খালি থাকে। সেক্ষেত্রে, আপনি শুধুমাত্র file থেকে URL তৈরি করার উপর নির্ভর করতে পারেন যদি অ্যাকাউন্টটি ডিফল্ট app.pushwoosh.com ডেটা সেন্টারে থাকে — অন্য ডেটা সেন্টারে বা একটি হোয়াইটলেবেল ডোমেনে থাকা একটি অ্যাকাউন্টের জন্য শুধুমাত্র 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) | একটি একক সংখ্যাসূচক মেসেজ ID দ্বারা ফিল্টার করুন, কোট করা। |
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", "file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/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://app.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://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Export_Messages_v2_12345_20260813120000-a1b2c3d4.csvফাইলটি একটি CSV যা properties-এ নির্বাচিত কলামগুলি ধারণ করে। এক্সপোর্ট শেষ হওয়ার পর এটি 7 দিনের জন্য উপলব্ধ থাকে, তারপর ক্লিনআপ জব এটি সরিয়ে দেয় এবং URLটি সমাধান করা বন্ধ করে দেয়।
বার্তা প্রাপক এক্সপোর্ট
Anchor link toএকই export, status, result, lastTasks, delete এবং download পদ্ধতিগুলি একটি বার্তার পৃথক প্রাপকদেরও এক্সপোর্ট করে। export_messages_v2-এর পরিবর্তে "type": "TASK_TYPE_EXPORT_MESSAGE_RECIPIENTS" এবং একটি export_message_recipients অবজেক্ট ব্যবহার করুন।
POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/export
export_message_recipients রিকোয়েস্ট ক্ষেত্র
Anchor link to| নাম | প্রয়োজনীয় | ধরণ | বিবরণ |
|---|---|---|---|
message_id | নোট দেখুন | স্ট্রিং (uint64) | একটি একক সংখ্যাসূচক বার্তা আইডি। campaign সেট করা না থাকলে এটি প্রয়োজনীয়। |
campaign | নোট দেখুন | স্ট্রিং | একটি একক ক্যাম্পেইন কোড। message_id সেট করা না থাকলে এটি প্রয়োজনীয়। দুটিই সেট করলে ফলাফল সেই ক্যাম্পেইনের মধ্যে বার্তাটির সারিগুলিতে সীমাবদ্ধ হয়। |
application | হ্যাঁ | স্ট্রিং | বার্তাটি যে অ্যাপ্লিকেশন কোডের অন্তর্ভুক্ত। |
type | হ্যাঁ | স্ট্রিং | কোন প্রাপকদের এক্সপোর্ট করতে হবে। "sends", "deliveries", "opens", "holdout"-এর একটি (নিচে দেখুন)। |
date_from / date_to | না | স্ট্রিং (date-time) | সারিগুলি এই সময়সীমার মধ্যে সীমাবদ্ধ করুন। বার্তাটির সম্পূর্ণ ইতিহাসের জন্য দুটিই বাদ দিন। |
message_id ও campaign দুটিই বাদ দিলে, অথবা application বাদ দিলে, অনুপস্থিত ক্ষেত্রের নাম উল্লেখ করা একটি ত্রুটি দিয়ে ব্যর্থ হয়। অন্য অ্যাকাউন্টের message_id এক্সপোর্ট চলার আগেই যাচাইয়ে NotFound: message not found দিয়ে ব্যর্থ হয়। একই অ্যাকাউন্টের অন্য অ্যাপ্লিকেশনের message_id বা campaign প্রত্যাখ্যান করা হয় না। এটি কোনো সারির সাথে মেলে না, এবং CSV শুধু হেডারসহ ডাউনলোড হয়।
type প্রাপক সেট নির্বাচন করে:
| মান | ফেরত আসা সারি |
|---|---|
"sends" | বার্তাটি যে প্রতিটি প্রাপকের জন্য গৃহীত হয়েছে। |
"deliveries" | sends থেকে সেই প্রাপকরা যাদের ডেলিভারি প্রোভাইডার নিশ্চিত করেছে। |
"opens" | sends থেকে সেই প্রাপকরা যারা বার্তাটি খুলেছেন। |
"holdout" | এই বার্তা যে প্রাপকদের বাদ দিয়েছে, অন্য কোনো বার্তা নয়। তাদের কাছে কিছুই পাঠানো হয়নি। অ্যাকাউন্ট-ব্যাপী কন্ট্রোল গ্রুপ বা বার্তার নিজস্ব holdout_percentage (Messaging API v2 দেখুন) দুটিই এই সারি তৈরি করতে পারে। |
উদাহরণ অনুরোধ
Anchor link to{ "type": "TASK_TYPE_EXPORT_MESSAGE_RECIPIENTS", "export_message_recipients": { "message_id": "22875465358", "application": "6D382-5ADFE", "type": "holdout", "date_from": "2026-08-01T00:00:00Z", "date_to": "2026-09-30T00:00:00Z" }}{ "uid": "29820"}একটি বার্তা-ইতিহাস এক্সপোর্টের মতোই status পোল করুন এবং result কল করুন। result export_messages_v2_result-এর পরিবর্তে export_message_recipients_result ফেরত দেয়:
{ "export_message_recipients_result": { "file": "Message_22875465358_Holdout_29820-fe5d8ba468df25b7.csv", "file_url": "https://app.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/download/Message_22875465358_Holdout_29820-fe5d8ba468df25b7.csv" }}sends, deliveries এবং opens একই কলাম সেট ভাগ করে: hwid, user_id, platform, send_timestamp, delivery_timestamp, open_timestamp, send_error, pae, send_status। প্ল্যাটফর্ম পাঠানো গ্রহণ করেছে কিন্তু তার জন্য কোনো দৃশ্যমান অ্যালার্ট দেখায়নি এমন ক্ষেত্রে pae হল false; অ্যাগ্রিগেট পরিসংখ্যানে unshowable_sends একই ক্ষেত্র গণনা করে। holdout-এর নিজস্ব, ছোট সেট আছে: hwid, user_id, platform, holdout_timestamp।