কন্ট্রোল গ্রুপস API
একটি কন্ট্রোল গ্রুপ হল একটি অ্যাপ্লিকেশনের ব্যবহারকারীদের একটি হোল্ড-আউট অংশ যারা কখনও মার্কেটিং বার্তা পায় না, যাতে মেসেজিংয়ের প্রভাব এর বিরুদ্ধে পরিমাপ করা যায়। এই API কন্ট্রোল গ্রুপ পরিচালনা করে এবং প্রতি-ব্যবহারকারী সদস্যপদের উত্তর দেয়। এটি আপনার নিজের সিস্টেম থেকে কন্ট্রোল প্যানেলের সেটিংস > কন্ট্রোল গ্রুপ অ্যাকশনগুলি অনুকরণ করতে ব্যবহার করুন, অথবা পাঠানোর বা ইম্পোর্ট করার আগে নির্দিষ্ট ইউজার আইডিগুলি হোল্ড আউট করা হয়েছে কিনা তা পরীক্ষা করতে ব্যবহার করুন।
বেস URL
Anchor link tohttps://rpc-api.svc-nue.pushwoosh.comসমস্ত এন্ডপয়েন্ট HTTPS এর মাধ্যমে পরিবেশন করা হয়। অনুরোধ এবং প্রতিক্রিয়া application/json ব্যবহার করে, যদি না অন্যভাবে উল্লেখ করা থাকে।
প্রমাণীকরণ
Anchor link toপ্রতিটি অনুরোধে আপনার সার্ভার API টোকেন সহ একটি Authorization হেডার অন্তর্ভুক্ত করতে হবে:
Authorization: Api YOUR_API_TOKENকনভেনশন
Anchor link to- ফিল্ডের নামকরণ: অনুরোধের বডি এবং কোয়েরি/পাথ প্যারামিটার
lowerCamelCaseগ্রহণ করে (উদাহরণস্বরূপ,controlGroupCode,userIds), এবং সার্ভার উভয় কেসিং আনমার্শাল করে। প্রতিক্রিয়াগুলি সর্বদা প্রোটো ফিল্ডের নাম ব্যবহার করেsnake_case-এ মার্শালিং করা হয় (application_id,in_control_group, ইত্যাদি)। নীচের প্রতিক্রিয়ার উদাহরণ এবং কন্ট্রোল গ্রুপ অবজেক্ট রেফারেন্স সেই কেসিং ব্যবহার করে। code: প্রতিটি কন্ট্রোল গ্রুপ প্রতিক্রিয়া তার নিজস্ব কোড বহন করে, যাCreate-এ তৈরি হয়। এই কোডটিcontrolGroupCodeহিসাবেGet,UpdatePercentage,UpdateCountries,Rename,Disable,Reshuffle,ForceUpdateCalculation,GetCalculationStatus,GetAnalytics, এবংCheckControlGroupMembership-এ পাস করুন।- একাধিক গ্রুপ: একটি অ্যাপ্লিকেশনের একাধিক কন্ট্রোল গ্রুপ থাকতে পারে। প্রতিটি সক্রিয় গ্রুপ অন্য গ্রুপগুলির থেকে স্বাধীনভাবে, নিজস্ব দেশ ও ট্যাগের মধ্যে প্রতিটি মার্কেটিং সেন্ড থেকে ব্যবহারকারীদের হোল্ড আউট করে, এবং গ্রুপগুলি একে অপরের সাথে ওভারল্যাপ করতে পারে। একটি সেন্ড কোনো গ্রুপ নির্বাচন করে না। খালি
nameসহ গ্রুপটি হল অ্যাপ্লিকেশনের আসল গ্রুপ এবং একই ভাবে কাজ করে।
ত্রুটি প্রতিক্রিয়া
Anchor link to| HTTP স্ট্যাটাস | অর্থ |
|---|---|
400 Bad Request | অবৈধ আর্গুমেন্ট, যেমন percentage ১-২০ এর বাইরে, userIds খালি বা ১,০০০ এর বেশি এন্ট্রি, একটি অস্বীকৃত দেশের কোড, scopeTag ছাড়া scopeValues সেট করা, scopeTag এমন একটি ট্যাগের নাম দেওয়া যা অ্যাকাউন্টে নেই, অথবা scopeValues-এর এমন একটি এন্ট্রি যা UpdateSettings প্রত্যাখ্যান করে (নীচে দেখুন)। নীচের সতর্কতা অনুযায়ী, একটি ক্যাম্পেইনের নিজস্ব হোল্ড-আউটের অন্তর্গত একটি কন্ট্রোল গ্রুপে UpdatePercentage, UpdateCountries, UpdateSettings, Disable, Reshuffle, এবং Delete দ্বারাও এটি ফেরত দেওয়া হয় (তারের উপর একটি FailedPrecondition হিসাবে)। শুধুমাত্র Reshuffle একটি নিষ্ক্রিয় (percentage ০) গ্রুপে এই ভাবে প্রত্যাখ্যান করে। |
401 Unauthorized | অনুপস্থিত বা অবৈধ Authorization হেডার। |
403 Forbidden | অ্যাপ্লিকেশন বা কন্ট্রোল গ্রুপটি কলারের অ্যাকাউন্টের অন্তর্গত নয়। |
404 Not Found | কন্ট্রোল গ্রুপ বা অ্যাপ্লিকেশন পাওয়া যায়নি। |
409 Conflict | Create একটি name ব্যবহার করেছে যা অ্যাপ্লিকেশনটিতে ইতিমধ্যে বিদ্যমান। |
500 Internal Server Error | অপ্রত্যাশিত সার্ভার-সাইড ব্যর্থতা। |
এন্ডপয়েন্টস
Anchor link to| পদ্ধতি | পাথ | বর্ণনা |
|---|---|---|
GET | /api/applications/{code}/control_groups | একটি অ্যাপ্লিকেশনের কন্ট্রোল গ্রুপগুলির তালিকা করুন |
POST | /api/applications/{code}/control_groups | একটি কন্ট্রোল গ্রুপ তৈরি করুন |
GET | /api/applications/{code}/control_groups/{control_group_code} | একটি একক কন্ট্রোল গ্রুপ পান |
POST | /api/applications/{code}/control_groups/{control_group_code} | একটি কন্ট্রোল গ্রুপের আকার পরিবর্তন করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/countries | একটি কন্ট্রোল গ্রুপকে দেশগুলির একটি সেটে পুনরায় স্কোপ করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/settings | আকার, দেশ ও ট্যাগ স্কোপ এবং লাইফটাইম মোড একটি কলে প্রয়োগ করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/display_name | একটি কন্ট্রোল গ্রুপের নাম পরিবর্তন করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/disable | একটি কন্ট্রোল গ্রুপ নিষ্ক্রিয় করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/reshuffle | একটি কন্ট্রোল গ্রুপ রিশাফল করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/recalculate | একটি কন্ট্রোল গ্রুপের আকার জোর করে পুনরায় গণনা করুন |
GET | /api/applications/{code}/control_groups/{control_group_code}/calculation_status | একটি চলমান আকার গণনার পোল করুন |
GET | /api/applications/{code}/control_groups/{control_group_code}/analytics | কন্ট্রোল-বনাম-ট্রিটমেন্ট বিশ্লেষণ পান |
GET | /api/applications/{code}/control_groups/{control_group_code}/cycles | গ্রুপের সমাপ্ত সাইকেলগুলির তালিকা করুন |
POST | /api/applications/{code}/control_groups/{control_group_code}/membership | ব্যবহারকারী আইডিগুলির একটি ব্যাচের জন্য সদস্যপদ পরীক্ষা করুন |
DELETE | /api/applications/{code}/control_groups/{control_group_code} | একটি কন্ট্রোল গ্রুপ মুছুন |
তালিকা
Anchor link toএকটি অ্যাপ্লিকেশনের জন্য কনফিগার করা প্রতিটি কন্ট্রোল গ্রুপের তালিকা করে, নামহীন আসল গ্রুপটি প্রথমে।
GET /api/applications/{code}/control_groups
পাথ প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | বর্ণনা |
|---|---|---|
code | string | যে অ্যাপ্লিকেশন কোড এর জন্য কন্ট্রোল গ্রুপ তালিকাভুক্ত করতে হবে। |
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
control_groups | কন্ট্রোল গ্রুপ অবজেক্ট এর অ্যারে | অ্যাপ্লিকেশনের জন্য কনফিগার করা প্রতিটি কন্ট্রোল গ্রুপ। |
তৈরি করুন
Anchor link toএকটি অ্যাপ্লিকেশনের জন্য একটি নামযুক্ত কন্ট্রোল গ্রুপ তৈরি করে এবং তার জেনারেটেড কোড সহ এটি ফেরত দেয়। নতুন গ্রুপটি অ্যাপ্লিকেশনের অন্যান্য সক্রিয় গ্রুপের পাশাপাশি নিজস্ব দেশ ও ট্যাগের মধ্যে প্রতিটি মার্কেটিং সেন্ড থেকে ব্যবহারকারীদের হোল্ড আউট করে।
POST /api/applications/{code}/control_groups
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
code | string | হ্যাঁ | যে অ্যাপ্লিকেশন কোডে গ্রুপটি তৈরি করতে হবে। |
name | string | হ্যাঁ | গ্রুপের নাম, ৬৪ অক্ষর পর্যন্ত এবং কোলন ছাড়া। অ্যাপ্লিকেশনের মধ্যে অবশ্যই অনন্য হতে হবে। সদস্যপদ কী-এর অংশ, তাই এটি কখনও পরিবর্তিত হয় না। |
percentage | integer | হ্যাঁ | হোল্ড-আউট আকার শতাংশ হিসাবে, ১-২০। |
segment | string | না | গ্রুপটি পরিমাপ করার জন্য Seglang এক্সপ্রেশন। পুরো বেসের উপর পরিমাপ করতে বাদ দিন। |
countries | strings এর অ্যারে | না | হোল্ড-আউট স্কোপ করার জন্য ছোট হাতের ISO-3166-1 alpha-2 দেশের কোড। সমস্ত দেশের জন্য বাদ দিন। ইনপুটে কোডগুলি কেস-ইনসেনসিটিভ। |
scopeTag | string | না | হোল্ড-আউট স্কোপ করার জন্য একটি string বা boolean ট্যাগ, countries-এর সাথে AND করা। ট্যাগ স্কোপ না চাইলে বাদ দিন। নীচে ট্যাগ স্কোপ দেখুন। |
scopeValues | strings এর অ্যারে | নোট দেখুন | scopeTag-এর যেসব মান একজন ব্যবহারকারীকে স্কোপে রাখে। scopeTag সেট করা থাকলে এটি প্রয়োজনীয়, অন্যথায় অবশ্যই খালি হতে হবে। |
displayName | string | না | কন্ট্রোল প্যানেলে যে নাম দেখানো হয়, ৬৪ অক্ষর পর্যন্ত। name দেখাতে বাদ দিন। |
অনুরোধের উদাহরণ
Anchor link to{ "code": "XXXXX-XXXXX", "name": "Q3 holdout", "percentage": 10}প্রতিক্রিয়া
Anchor link to{ "group": { ... } } ফেরত দেয়, নতুন কন্ট্রোল গ্রুপ অবজেক্ট।
একটি কন্ট্রোল গ্রুপ তার কোড দ্বারা ফেরত দেয়, তার হোল্ড-আউট আকার, জেনারেশন এবং এর পেছনের ব্যবহারকারী গণনা সহ।
GET /api/applications/{code}/control_groups/{control_group_code}
পাথ প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | বর্ণনা |
|---|---|---|
code | string | যে অ্যাপ্লিকেশন কোডের গ্রুপটি অন্তর্গত। |
control_group_code | string | কন্ট্রোল গ্রুপের কোড। |
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
group | কন্ট্রোল গ্রুপ অবজেক্ট | অনুরোধ করা কন্ট্রোল গ্রুপ। |
total_users | integer | অ্যাপ্লিকেশনের সমস্ত ব্যবহারকারী। |
control_group_users | integer | বর্তমানে হোল্ড আউট করা ব্যবহারকারী। |
calculation_status | string | TASK_STATUS_NOT_STARTED, TASK_STATUS_IN_PROGRESS, বা TASK_STATUS_COMPLETED। |
has_data | boolean | ক্যাশ করা আকারের সংখ্যা এখনও উপলব্ধ কিনা। |
UpdatePercentage
Anchor link toএকটি কন্ট্রোল গ্রুপের হোল্ড-আউট শতাংশ (১-২০) সেট করে। আকার পরিবর্তন করা প্রতিটি বিদ্যমান সদস্যকে রাখে: হোল্ড-আউটটি পুনরায় আঁকার পরিবর্তে তাদের চারপাশে বৃদ্ধি বা সঙ্কুচিত হয়। UpdateSettings দ্বারা প্রতিস্থাপিত, যা আকার, স্কোপ ও লাইফটাইম মোড একটি কলে প্রয়োগ করে, তবে এটি এখনও সমর্থিত।
POST /api/applications/{code}/control_groups/{control_group_code}
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
percentage | integer | হ্যাঁ | নতুন হোল্ড-আউট আকার শতাংশ হিসাবে, ১-২০। |
প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
UpdateCountries
Anchor link toএকটি কন্ট্রোল গ্রুপ যে দেশগুলিতে স্কোপ করা হয়েছে তা সেট করে। স্কোপ পরিবর্তন করা আপলিফ্ট পরিমাপ পুনরায় শুরু করে, কারণ যে জনসংখ্যার তুলনা করা হচ্ছে তা পরিবর্তিত হয়। হোল্ড-আউটটি নিজে পুনরায় আঁকা হয় না। UpdateSettings দ্বারা প্রতিস্থাপিত, যা একটি ট্যাগ স্কোপ-ও সেট করে, তবে এটি এখনও সমর্থিত।
POST /api/applications/{code}/control_groups/{control_group_code}/countries
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
countries | strings এর অ্যারে | হ্যাঁ | ছোট হাতের ISO-3166-1 alpha-2 দেশের কোড। একটি খালি তালিকা গ্রুপটিকে আবার সমস্ত দেশে প্রশস্ত করে। ইনপুটে কোডগুলি কেস-ইনসেনসিটিভ। |
অনুরোধের উদাহরণ
Anchor link to{ "countries": ["us", "ca", "gb"]}প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
UpdateSettings
Anchor link toএকটি কন্ট্রোল গ্রুপের আকার, দেশ ও ট্যাগ স্কোপ এবং লাইফটাইম মোড একটি কলে প্রয়োগ করে। যে পরিবর্তন কে হোল্ড আউট হবে বা কতদিনের জন্য তা বদলায় (আকার, স্কোপ, মোড, রিফ্রেশ পিরিয়ড বা শেষের তারিখ), তা চলমান সাইকেল বন্ধ করে নতুন একটি শুরু করে। বর্তমান মানগুলি পাঠালে কিছুই বদলায় না। একটি ক্যাম্পেইনের নিজস্ব হোল্ড-আউটের অন্তর্গত কন্ট্রোল গ্রুপ প্রত্যাখ্যান করে, UpdatePercentage-এর মতোই।
POST /api/applications/{code}/control_groups/{control_group_code}/settings
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
percentage | integer | হ্যাঁ | হোল্ড-আউট আকার শতাংশ হিসাবে, ১-২০। |
countries | strings এর অ্যারে | না | ছোট হাতের ISO-3166-1 alpha-2 দেশের কোড। খালি তালিকা গ্রুপটিকে আবার সমস্ত দেশে প্রসারিত করে। |
scopeTag | string | না | হোল্ড-আউট স্কোপ করার জন্য একটি string বা boolean ট্যাগ, countries-এর সাথে AND করা। খালি হলে ট্যাগ স্কোপ সরে যায়। নীচে ট্যাগ স্কোপ দেখুন। |
scopeValues | strings এর অ্যারে | নোট দেখুন | scopeTag-এর যেসব মান একজন ব্যবহারকারীকে স্কোপে রাখে। scopeTag সেট করা থাকলে এটি প্রয়োজনীয়, অন্যথায় অবশ্যই খালি হতে হবে। |
mode | string | না | সদস্যপদের লাইফটাইম: CONTROL_GROUP_MODE_PERMANENT (ডিফল্ট), CONTROL_GROUP_MODE_AUTO_REFRESH, অথবা CONTROL_GROUP_MODE_EXPERIMENT। |
refreshPeriodDays | integer | নোট দেখুন | পুনরায় আঁকার মধ্যবর্তী দিন, ৭-৩৬৫। CONTROL_GROUP_MODE_AUTO_REFRESH-এর সাথে প্রয়োজনীয়, অন্যথায় অবশ্যই বাদ দিতে হবে। |
endsAt | string (RFC 3339) | নোট দেখুন | কখন একটি এক্সপেরিমেন্ট বন্ধ হবে, কমপক্ষে ৩০ দিন আগে। CONTROL_GROUP_MODE_EXPERIMENT-এর সাথে প্রয়োজনীয়, অন্যথায় অবশ্যই বাদ দিতে হবে। |
প্রতিটি ফিল্ড যেমন পাঠানো হয় তেমনই প্রয়োগ করা হয়, UpdateCountries-এর মতো: খালি countries গ্রুপটিকে আবার সমস্ত দেশে প্রসারিত করে, এবং খালি scopeTag ট্যাগ স্কোপ সরিয়ে দেয়।
প্রতিক্রিয়া
Anchor link to{ "group": { ... } } ফেরত দেয়, অর্থাৎ আপডেট করা কন্ট্রোল গ্রুপ অবজেক্ট।
ট্যাগ স্কোপ
Anchor link toএকটি কন্ট্রোল গ্রুপ শুধু সেই ব্যবহারকারীদের হোল্ড আউট করতে পারে যাদের একটি string বা boolean ট্যাগের মান আপনার বেছে নেওয়া সেটের মধ্যে আছে, দুটিই সেট করা থাকলে countries-এর সাথে AND করা। এটি তৈরি করুন বা UpdateSettings দিয়ে সেট করুন।
scopeTagট্যাগের নাম দেয়; খালি মানে ট্যাগ স্কোপ নেই। এটিCountryহতে পারে না: দেশ অনুযায়ী স্কোপcountriesদিয়ে হয়, ট্যাগ দিয়ে নয়।scopeValuesতালিকাভুক্ত করেscopeTag-এর কোন মানগুলি স্কোপে আছে।scopeTagসেট করা থাকলে কমপক্ষে একটি প্রয়োজনীয়, এবং কোনোটি পুনরাবৃত্তি করা যাবে না। একটি string ট্যাগের মান খালি স্ট্রিং হতে পারে না। একটি boolean ট্যাগের প্রতিটি মান অবশ্যই"true"বা"false"হতে হবে।scopeTag-এর কোনো মান নেই এমন একটি ডিভাইস স্কোপের বাইরে, যেমনCountryট্যাগ নেই এমন ডিভাইস।- সদস্যপদ নিজে বদলায় না: ব্যবহারকারীদের নির্ধারণকারী সূত্র স্কোপ দ্বারা অপরিবর্তিত থাকে। ট্যাগ ও দেশ স্কোপ দুটিই এর উপরে প্রতি-ডিভাইস যাচাই, যা নির্বাচিত ব্যবহারকারীর কোন ডিভাইসগুলি আসলে বাদ যাবে তা সংকীর্ণ করে, সূত্র কাদের নির্বাচন করে তা নয়।
- একটি ব্যবহারকারী-স্তরের ট্যাগ সেট করার সময় সেই ব্যবহারকারীর প্রতিটি ডিভাইসে কপি হয়, তাই উপরের ডিভাইস-স্তরের যাচাই ব্যবহারকারী-স্তরের ট্যাগও কভার করে, শুধু ডিভাইস-স্তরের নয়।
scopeTagপরিবর্তন করলে, বাscopeValuesসেট হিসাবে পরিবর্তন করলে (শুধু ক্রম বদলালে গণ্য হয় না),countriesপরিবর্তনের মতোই চলমান সাইকেলCONTROL_GROUP_CYCLE_CLOSE_REASON_RESCOPEDদিয়ে বন্ধ হয়। একটি গ্রুপ নিষ্ক্রিয় করলে তার ট্যাগ স্কোপ থেকে যায়, যেমনcountriesথেকে যায়।
নাম পরিবর্তন
Anchor link toএকটি কন্ট্রোল গ্রুপের জন্য কন্ট্রোল প্যানেলে যে নাম দেখানো হয় তা সেট করে। name সদস্যপদ কী-এর অংশ এবং পরিবর্তিত হয় না, তাই গ্রুপটি একই ব্যবহারকারী এবং তার চলমান সাইকেল রাখে।
POST /api/applications/{code}/control_groups/{control_group_code}/display_name
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
code | string | হ্যাঁ | যে অ্যাপ্লিকেশন কোডের অন্তর্গত গ্রুপটি। |
controlGroupCode | string | হ্যাঁ | কন্ট্রোল গ্রুপের কোড। |
displayName | string | না | নতুন নাম, ৬৪ অক্ষর পর্যন্ত এবং অ্যাপ্লিকেশনের মধ্যে অনন্য। আবার name দেখাতে একটি খালি স্ট্রিং পাঠান। |
প্রতিক্রিয়া
Anchor link to{ "group": { ... } } ফেরত দেয়, অর্থাৎ নাম পরিবর্তন করা কন্ট্রোল গ্রুপ অবজেক্ট।
নিষ্ক্রিয় করুন
Anchor link toএকটি কন্ট্রোল গ্রুপ বন্ধ করে দেয়, এটি এবং তার জেনারেশন রেখে দেয় যাতে এটি আবার চালু করলে একটি নতুন আঁকার পরিবর্তে একই হোল্ড-আউট পুনরুদ্ধার হয়।
POST /api/applications/{code}/control_groups/{control_group_code}/disable
প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
রিশাফল
Anchor link toএকটি কন্ট্রোল গ্রুপের হোল্ড-আউট তার জেনারেশন বৃদ্ধি করে পুনরায় আঁকে। এটি একটি ভিন্ন নমুনা পাওয়ার একমাত্র উপায়: সদস্যপদ নির্ধারণমূলক, তাই নিষ্ক্রিয় এবং পুনরায় সক্ষম করা ঠিক একইটি পুনরুৎপাদন করে।
POST /api/applications/{code}/control_groups/{control_group_code}/reshuffle
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
generation | integer | রিশাফলের পরে গ্রুপের জেনারেশন। |
ForceUpdateCalculation
Anchor link toএকটি কন্ট্রোল গ্রুপের আকারের একটি নতুন গণনা শুরু করে। পূর্বে ক্যাশ করা সংখ্যাগুলি নতুন গণনা শেষ না হওয়া পর্যন্ত পরিবেশন করা হতে থাকে। অগ্রগতির জন্য GetCalculationStatus পোল করুন।
POST /api/applications/{code}/control_groups/{control_group_code}/recalculate
প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
GetCalculationStatus
Anchor link toএকটি আকার গণনা চলার সময় একটি কন্ট্রোল গ্রুপের শুধুমাত্র পরিবর্তনশীল ব্যবহারকারী গণনা পোল করে।
GET /api/applications/{code}/control_groups/{control_group_code}/calculation_status
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
total_users | integer | অ্যাপ্লিকেশনের সমস্ত ব্যবহারকারী। |
control_group_users | integer | হোল্ড আউট করা ব্যবহারকারী, অ্যাপ্লিকেশন জুড়ে গণনা করা হয়। |
calculation_status | string | TASK_STATUS_NOT_STARTED, TASK_STATUS_IN_PROGRESS, বা TASK_STATUS_COMPLETED। |
has_data | boolean | ক্যাশ করা আকারের সংখ্যা উপলব্ধ কিনা। |
GetAnalytics
Anchor link toএকটি কন্ট্রোল গ্রুপের জন্য পূর্ব-গণনা করা কন্ট্রোল-বনাম-ট্রিটমেন্ট বিশ্লেষণ ফেরত দেয়।
GET /api/applications/{code}/control_groups/{control_group_code}/analytics
কোয়েরি প্যারামিটার
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
windowDays | string | না | লুকব্যাক উইন্ডো প্রিসেট: WINDOW_DAYS_3, WINDOW_DAYS_7, বা WINDOW_DAYS_30। |
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
events | অবজেক্টের অ্যারে | প্রতিটি ট্র্যাক করা ইভেন্টের জন্য একটি এন্ট্রি, প্রতিটিতে event, treatment এবং control (users, conversions, conversion_rate, events_per_user), uplift_pct, incremental_events, percent_of_treatment, z_score, p_value, confidence_pct, এবং significance (SIGNIFICANCE_NOT_ENOUGH_DATA, SIGNIFICANCE_NOT_SIGNIFICANT, বা SIGNIFICANCE_SIGNIFICANT) থাকে। |
ListControlGroupCycles
Anchor link toএকটি কন্ট্রোল গ্রুপের সমাপ্ত সাইকেলগুলির তালিকা করে, নতুনটি প্রথমে। প্রতিটি সাইকেল হল দুটি সেটিংস পরিবর্তনের মধ্যে গ্রুপ যে সদস্যপদ নিয়ে চলেছিল, সাথে যে সেটিংস থেকে এটি আঁকা হয়েছিল। চলমান (বর্তমান) সাইকেল এই তালিকায় নেই। এর সেটিংস কন্ট্রোল গ্রুপ অবজেক্ট-এই আছে।
GET /api/applications/{code}/control_groups/{control_group_code}/cycles
প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
cycles | কন্ট্রোল গ্রুপ সাইকেল অবজেক্ট এর অ্যারে | নতুনটি প্রথমে। |
কন্ট্রোল গ্রুপ সাইকেল অবজেক্ট
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
cycle_number | integer | গ্রুপের মধ্যে ক্রমিক; গ্রুপের নিজস্ব cycle_number হল এখানে সর্বশেষ বন্ধ হওয়াটির পরেরটি। |
mode | string | এই সাইকেলে গ্রুপ যে লাইফটাইম মোডে চলেছিল: CONTROL_GROUP_MODE_PERMANENT, CONTROL_GROUP_MODE_AUTO_REFRESH, অথবা CONTROL_GROUP_MODE_EXPERIMENT। |
generation | integer | এই সাইকেলের সময় গ্রুপের জেনারেশন। |
percentage | integer | এই সাইকেলের সময় হোল্ড-আউট আকার। |
countries | strings এর অ্যারে | এই সাইকেলের সময় দেশ স্কোপ; খালি হল সমস্ত দেশ। |
started_at / ended_at | string (RFC 3339) | এই সাইকেল কখন চলেছিল। |
close_reason | string | সাইকেল কেন শেষ হয়েছিল: CONTROL_GROUP_CYCLE_CLOSE_REASON_ROLLOVER, _EXPIRED, _RESHUFFLED, _RESIZED, _RESCOPED, _MODE_CHANGED, অথবা _DISABLED। |
scope_tag | string | যে ট্যাগে সাইকেলের হোল্ড-আউট স্কোপ করা ছিল, countries-এর সাথে AND করা। ট্যাগ স্কোপ না থাকলে এবং ট্যাগ স্কোপ চালুর আগে বন্ধ হওয়া প্রতিটি সাইকেলের জন্য খালি, এমনকি গ্রুপের পরে একটি থাকলেও। |
scope_values | strings এর অ্যারে | এই সাইকেলের সময় scope_tag-এর যেসব মান একজন ব্যবহারকারীকে স্কোপে রাখে; শুধু scope_tag-এর সাথে সেট করা হয়। |
CheckControlGroupMembership
Anchor link toপ্রতিটি ব্যবহারকারী আইডির জন্য রিপোর্ট করে যে এটি এখন একটি কন্ট্রোল গ্রুপ দ্বারা হোল্ড আউট করা হয়েছে কিনা। সদস্যপদ শুধুমাত্র আইডি থেকে গণনা করা হয়। কোনো ব্যবহারকারী রেকর্ড পড়া হয় না, তাই একটি আইডি যা অ্যাপ্লিকেশনটি কখনও দেখেনি তারও উত্তর দেওয়া হয়, এবং একটি নিষ্ক্রিয় গ্রুপ প্রতিটি আইডির জন্য একটি ত্রুটির পরিবর্তে false উত্তর দেয়। দেশ বা ট্যাগ স্কোপ সহ একটি গ্রুপ একজন ব্যবহারকারীকে শুধু তখনই হোল্ড আউট করে যদি তাদের কোনো ডিভাইস সেই স্কোপে থাকে, তাই একটি অদেখা আইডি (কোনো ডিভাইসই নেই) সেখানে false ফেরত আসে, যদিও একই আইডি স্কোপহীন গ্রুপে true আসত। একটি নির্দিষ্ট সেন্ড বা ইম্পোর্টের ব্যবহারকারীদের পরীক্ষা করার জন্য পুরো গ্রুপটি এক্সপোর্ট করার পরিবর্তে এটি ব্যবহার করুন।
POST /api/applications/{code}/control_groups/{control_group_code}/membership
অনুরোধের বডি
Anchor link to| প্যারামিটার | টাইপ | প্রয়োজনীয় | বর্ণনা |
|---|---|---|---|
userIds | strings এর অ্যারে | হ্যাঁ | পরীক্ষা করার জন্য ব্যবহারকারী আইডি, প্রতি কলে সর্বাধিক ১,০০০। |
অনুরোধের উদাহরণ
Anchor link to{ "userIds": ["user-1", "user-2", "user-3"]}প্রতিক্রিয়া
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
users | অবজেক্টের অ্যারে | অনুরোধ করা প্রতিটি আইডির জন্য একটি এন্ট্রি, যে ক্রমে সেগুলি দেওয়া হয়েছিল (ডুপ্লিকেট সহ)। প্রতিটিতে user_id (string) এবং in_control_group (boolean) থাকে। |
প্রতিক্রিয়ার উদাহরণ
Anchor link to{ "users": [ { "user_id": "user-1", "in_control_group": false }, { "user_id": "user-2", "in_control_group": true }, { "user_id": "user-3", "in_control_group": false } ]}মুছুন
Anchor link toএকটি কন্ট্রোল গ্রুপ সম্পূর্ণরূপে সরিয়ে দেয়। এটি ব্যবহারকারীদের হোল্ড আউট করা বন্ধ করে, এবং এর পরিসংখ্যান আর খোলা যায় না। অ্যাপ্লিকেশনের অন্য গ্রুপগুলি কাজ করতে থাকে।
DELETE /api/applications/{code}/control_groups/{control_group_code}
প্রতিক্রিয়া
Anchor link toসফল হলে একটি খালি অবজেক্ট: {}।
কন্ট্রোল গ্রুপ অবজেক্ট
Anchor link to| ফিল্ড | টাইপ | বর্ণনা |
|---|---|---|
code | string | কন্ট্রোল গ্রুপ কোড (ফরম্যাট XXXXX-XXXXX), গ্রুপের জীবনকালের জন্য স্থিতিশীল। |
name | string | গ্রুপের নাম, সদস্যপদ কী-এর অংশ। খালি হল অ্যাপ্লিকেশনের আসল, নামহীন গ্রুপ। |
display_name | string | কন্ট্রোল প্যানেলে যে নাম দেখানো হয়। খালি হলে name দেখায়, এবং নামহীন গ্রুপকে Global হিসাবে। |
segment | string | Seglang এক্সপ্রেশন যার উপর গ্রুপটি পরিমাপ করা হয়; খালি হল পুরো বেস। |
percentage | integer | হোল্ড-আউট আকার শতাংশ হিসাবে, ১-২০। শূন্য মানে গ্রুপটি বন্ধ। |
enabled | boolean | গ্রুপটি বর্তমানে ব্যবহারকারীদের হোল্ড আউট করছে কিনা। |
generation | integer | প্রতিটি রিশাফলে বৃদ্ধি পায়; 0 মানে কখনও রিশাফল করা হয়নি। |
last_modified_at | string (RFC 3339) | যখন গ্রুপের সেটিংস শেষবার পরিবর্তন করা হয়েছিল। |
last_modified_by | string | যে ব্যবহারকারী শেষবার গ্রুপটি পরিবর্তন করেছিলেন তার ইমেল। |
application_id | integer | অ্যাপ্লিকেশনের সংখ্যাসূচক আইডি, সদস্যপদ কী <application_id>:<generation>:<name>:<user_id> এর প্রথম অংশ যা CheckControlGroupMembership হ্যাশ করে সিদ্ধান্ত নেয় যে একজন ব্যবহারকারী হোল্ড আউট করা হয়েছে কিনা। |
countries | strings এর অ্যারে | ছোট হাতের ISO-3166-1 alpha-2 দেশের কোড যেখানে হোল্ড-আউট স্কোপ করা হয়েছে। খালি হল সমস্ত দেশ। |
scope_tag | string | যে ট্যাগে হোল্ড-আউট স্কোপ করা আছে, countries-এর সাথে AND করা; খালি হলে ট্যাগ স্কোপ নেই। ট্যাগ স্কোপ দেখুন। |
scope_values | strings এর অ্যারে | scope_tag-এর যেসব মান একজন ব্যবহারকারীকে স্কোপে রাখে; একটি boolean ট্যাগ "true" ও "false" ব্যবহার করে। |