বিষয়বস্তুতে যান

অ্যাসিঙ্ক্রোনাস মেসেজ পরিসংখ্যান এক্সপোর্ট

exportMessagesStatistics সার্ভারে একটি CSV ফাইলে মেসেজের ইতিহাস এবং পরিসংখ্যান এক্সপোর্ট করে। এটি বড় বা সম্পূর্ণ-অ্যাকাউন্ট পুলের জন্য ব্যবহার করুন যা messages:list পরিচালনা করতে পারে না।

messages:list এর পরিবর্তে কখন এক্সপোর্ট ব্যবহার করবেন

Anchor link to

একটি নির্দিষ্ট সময়ের লাইভ, পেজিনেটেড অনুসন্ধানের জন্য messages:list ব্যবহার করুন। যখন ফলাফল messages:list-এর ডিপ-পেজিনেশন সীমা (page × per_page > 100000) অতিক্রম করবে, অথবা যখন লক্ষ্য পেজ করা JSON-এর পরিবর্তে একটি একক ডাউনলোডযোগ্য ফাইল হবে, তখন exportMessagesStatistics ব্যবহার করুন। এক্সপোর্টের date_range বা সারির সংখ্যার উপর কোনো সীমা নেই, কারণ এটি ফলাফলটি একটি প্রতিক্রিয়ায় ধরে রাখার পরিবর্তে ডিস্কের একটি ফাইলে স্ট্রিম করে।

এক্সপোর্ট ফ্লো কীভাবে কাজ করে

Anchor link to
  1. messages:list-এর মতো একই ফিল্টার ব্যবহার করে export কল করুন। ফাইল তৈরি হওয়ার আগেই প্রতিক্রিয়াটি অবিলম্বে একটি uid টাস্ক আইডেন্টিফায়ার ফেরত দেয়।
  2. সেই uid দিয়ে status পোল করুন যতক্ষণ না এটি STATUS_SUCCESS (বা STATUS_FAILED) রিপোর্ট করে।
  3. জেনারেট করা file এবং একটি ব্যবহারের জন্য প্রস্তুত file_url পেতে একই uid দিয়ে result কল করুন।
  4. ফাইলটি ডাউনলোড করুন। file_url যেমন আছে ব্যবহার করুন, অথবা যদি এটি খালি ফিরে আসে তবে file থেকে URL তৈরি করার জন্য result দেখুন।

একটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্কগুলি খুঁজতে lastTasks ব্যবহার করুন, এবং একটি টাস্ক বাতিল করতে বা তার ফাইল আগে থেকে মুছে ফেলতে delete ব্যবহার করুন।

পদ্ধতি

Anchor link to

এক্সপোর্ট লাইফসাইকেলে পাঁচটি পদ্ধতি রয়েছে, সাথে একটি সাধারণ ডাউনলোড এন্ডপয়েন্ট:

পদ্ধতিবিবরণ
exportMessagesStatistics/exportএকটি এক্সপোর্ট কিউতে যোগ করে এবং একটি টাস্ক uid ফেরত দেয়।
exportMessagesStatistics/statusটাস্কের অগ্রগতি পরীক্ষা করে।
exportMessagesStatistics/resultটাস্ক শেষ হয়ে গেলে জেনারেট করা ফাইলের নাম ফেরত দেয়।
exportMessagesStatistics/lastTasksএকটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্কগুলির তালিকা দেখায়।
exportMessagesStatistics/deleteরিটেনশন উইন্ডো শেষ হওয়ার আগে একটি টাস্ক বাতিল করে বা তার ফাইল মুছে ফেলে।
ডাউনলোডনাম অনুসারে জেনারেট করা CSV ফাইল ডাউনলোড করে।

মেসেজের ইতিহাস এক্সপোর্ট কিউতে যোগ করে এবং অবিলম্বে একটি টাস্ক আইডেন্টিফায়ার ফেরত দেয়।

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_MESSAGES_V2” হতে হবে।
export_messages_v2হ্যাঁঅবজেক্টএক্সপোর্ট প্যারামিটার, নিচে বর্ণিত।
export_messages_v2.application_codeনোট দেখুনস্ট্রিংPushwoosh অ্যাপ্লিকেশন কোড। app_group_code সেট করা না থাকলে এটি প্রয়োজনীয়।
export_messages_v2.app_group_codeনোট দেখুনস্ট্রিংঅ্যাপ্লিকেশন গ্রুপ কোড, গ্রুপের প্রতিটি অ্যাপ জুড়ে এক্সপোর্ট করে। application_code সেট করা না থাকলে এটি প্রয়োজনীয়।
export_messages_v2.searchনাস্ট্রিংমেসেজের শিরোনাম এবং বিষয়বস্তুর উপর ফ্রি-টেক্সট অনুসন্ধান।
export_messages_v2.filtersনাঅবজেক্টমেসেজ ফিল্টার, নিচে বর্ণিত। সম্পূর্ণ অ্যাকাউন্টের ইতিহাস এক্সপোর্ট করতে এটি বাদ দিন।
export_messages_v2.propertiesনাঅ্যারেCSV-তে অন্তর্ভুক্ত করার জন্য কলাম, নিচে বর্ণিত।

export_messages_v2.filters গ্রহণ করে:

নাম
ধরণবিবরণ
statusesঅ্যারেঅন্তর্ভুক্ত করার জন্য মেসেজের স্ট্যাটাস।
সম্ভাব্য মান
  • ”MESSAGE_STATUS_CANCELED"
  • "MESSAGE_STATUS_CREATING"
  • "MESSAGE_STATUS_DONE"
  • "MESSAGE_STATUS_FAIL"
  • "MESSAGE_STATUS_PENDING"
  • "MESSAGE_STATUS_PROCESSING"
  • "MESSAGE_STATUS_WAITING”
platformsঅ্যারেপ্ল্যাটফর্ম কোড (সংখ্যাসূচক, যেমন iOS-এর জন্য 1), messages:list দ্বারা ব্যবহৃত প্ল্যাটফর্মের নামের স্ট্রিং নয়।
sent_dateঅবজেক্টপাঠানোর তারিখের উপর ফিল্টার করা রিপোর্টিং সময়কাল: {"date_from": "YYYY-MM-DD", "date_to": "YYYY-MM-DD"}।
created_dateঅবজেক্টমেসেজ তৈরির তারিখের উপর ফিল্টার করা রিপোর্টিং সময়কাল, sent_date-এর মতো একই ফর্ম্যাট।
created_viaঅ্যারেমেসেজের উৎস।
সম্ভাব্য মান
  • ”AB_TEST"
  • "API"
  • "AUTO_PUSH"
  • "CP"
  • "CSV"
  • "CUSTOMER_JOURNEY"
  • "EMAIL_API"
  • "EMAIL_CP"
  • "GEO_ZONE"
  • "PUSH_ON_EVENT"
  • "RSS"
  • "SYSTEM”
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"
}

একটি এক্সপোর্ট টাস্কের অগ্রগতি ফেরত দেয়।

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/status

রিকোয়েস্ট বডি প্যারামিটার
Anchor link to

export দ্বারা ফেরত দেওয়া টাস্ক আইডেন্টিফায়ারটি পাস করুন:

নামপ্রয়োজনীয়ধরণবিবরণ
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"-এ পৌঁছায়।

টাস্ক সম্পন্ন হয়ে গেলে জেনারেট করা ফাইলের নাম ফেরত দেয়।

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/result

রিকোয়েস্ট বডি প্যারামিটার
Anchor link to

export দ্বারা ফেরত দেওয়া একই টাস্ক আইডেন্টিফায়ারটি পাস করুন:

নামপ্রয়োজনীয়ধরণবিবরণ
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 থেকে সঠিক হোস্ট বের করার কোনো উপায় নেই।

একটি অ্যাপ্লিকেশনের জন্য সাম্প্রতিক এক্সপোর্ট টাস্কগুলির তালিকা দেখায়, সবচেয়ে সাম্প্রতিকটি প্রথমে।

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/lastTasks

রিকোয়েস্ট বডি প্যারামিটার
Anchor link to

প্রতিটি প্যারামিটার একটি ঐচ্ছিক ফিল্টার; টোকেনের অ্যাক্সেস থাকা প্রতিটি টাস্কের তালিকা দেখতে সেগুলি সব বাদ দিন:

নামপ্রয়োজনীয়ধরণবিবরণ
applicationনাস্ট্রিংPushwoosh অ্যাপ্লিকেশন কোড। টোকেনের অ্যাক্সেস থাকা সমস্ত অ্যাপ্লিকেশন জুড়ে টাস্কের তালিকা দেখতে এটি বাদ দিন।
typesনাঅ্যারেনির্দিষ্ট টাস্কের প্রকারে সীমাবদ্ধ করুন। শুধুমাত্র মেসেজ এক্সপোর্ট দেখতে [“TASK_TYPE_EXPORT_MESSAGES_V2”] ব্যবহার করুন।
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"
}
}
]
}

7-দিনের রিটেনশন উইন্ডো শেষ হওয়ার আগে একটি টাস্ক এবং তার ফাইল মুছে ফেলে।

POST https://api.pushwoosh.com/api/v2/statistics/exportMessagesStatistics/delete

রিকোয়েস্ট বডি প্যারামিটার
Anchor link to

export দ্বারা ফেরত দেওয়া টাস্ক আইডেন্টিফায়ারটি পাস করুন:

নামপ্রয়োজনীয়ধরণবিবরণ
uidহ্যাঁস্ট্রিং (int64)export প্রতিক্রিয়া থেকে প্রাপ্ত টাস্ক আইডেন্টিফায়ার, যেমন "177458"।
উদাহরণ অনুরোধ
Anchor link to
{
"uid": "177458"
}
{}

ডাউনলোড

Anchor link to

result দ্বারা জেনারেট করা 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।