MonetizationLimitsCheck নীতি

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

এক নজরে

MonetizationLimitsCheck নীতি আপনাকে অ্যাপ ডেভেলপারদের করা API কলের উপর মনিটাইজেশন সংক্রান্ত বিধিনিষেধ আরোপ করতে দেয়।

নীতি ট্রিগার হওয়ার কিছু উদাহরণ:

  • কোনও অ্যাপ ডেভেলপার যদি মনিটাইজ করা API অ্যাক্সেস করে থাকেন এবং তিনি যদি সম্পর্কিত API প্রোডাক্টের সাবস্ক্রিপশন না কিনে থাকেন
  • ডেভেলপারের অ্যাকাউন্টে পর্যাপ্ত ব্যালেন্স নেই।
  • ডেভেলপার ট্রানজ্যাকশনের ভলিউম সংক্রান্ত সীমা অতিক্রম করেছেন।

আপনার API প্রক্সিতে কীভাবে নীতি অ্যাটাচ করবেন সেই সম্পর্কে তথ্য পেতে, API প্রক্সিতে মনিটাইজেশন সংক্রান্ত সীমা প্রয়োগ করুন দেখুন।

<MonetizationLimitsCheck> এলিমেন্ট

MonetizationLimitsCheck নীতি নির্দিষ্ট করে।

ডিফল্ট ভ্যালু প্রযোজ্য নয়
প্রয়োজনীয়? প্রয়োজনীয়
টাইপ করুন জটিল ধরন
পেরেন্ট এলিমেন্ট প্রযোজ্য নয়
চাইল্ড এলিমেন্ট <DisplayName>
<FaultResponse>
<IgnoreUnresolvedVariables>
<Variables>

নিচের সারণীতে <MonetizationLimitsCheck>-এর চাইল্ড এলিমেন্ট সম্পর্কে একটি উচ্চ-স্তরের বিবরণ দেওয়া হয়েছে:

চাইল্ড এলিমেন্ট প্রয়োজনীয়? বিবরণ
<DisplayName> ঐচ্ছিক নীতির জন্য কাস্টম নাম।
<FaultResponse> ঐচ্ছিক সমস্যা হলে অনুরোধকারী ক্লায়েন্টকে যে উত্তর মেসেজ পাঠানো হয় তা এখানে উল্লেখ করা হয়।
<IgnoreUnresolvedVariables> ঐচ্ছিক কোনও সমাধান না হওয়া ভেরিয়েবল পাওয়া গেলে প্রসেসিং বন্ধ হয়ে যাবে কিনা তা নির্ধারণ করে।
<Variables> ঐচ্ছিক মনিটাইজেশন সংক্রান্ত বিধিনিষেধ চেক করার জন্য ফ্লো ভেরিয়েবল নির্দিষ্ট করে।

<MonetizationLimitsCheck> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<?xml version="1.0" encoding="UTF-8"?>
<MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME">
    <DisplayName>DISPLAY_NAME</DisplayName>
    <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
    <Variables>
        <Product>VARIABLE_NAME</Product>
    </Variables>
    <FaultResponse>
        <Set>
            <Payload contentType="text/xml">
                <error>
                    <messages>
                        <message>MESSAGE_TEXT</message>
                        <message>MESSAGE_TEXT</message>
                    </messages>
                </error>
            </Payload>
            <StatusCode>HTTP_STATUS</StatusCode>
            <ReasonPhrase>REASON_TEXT</ReasonPhrase>
        </Set>
    </FaultResponse>
</MonetizationLimitsCheck>

উদাহরণ

নিম্নলিখিত উদাহরণে MonetizationLimitsCheck নীতির সংজ্ঞা দেখানো হয়েছে:

<?xml version="1.0" encoding="UTF-8"?>
<MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check">
    <DisplayName>Monetization Limits Check</DisplayName>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <Variables>
        <Product>myproductvar.name</Product>
    </Variables>
	<FaultResponse>
	        <Set>
	            <Payload contentType="text/xml">
	                <error>
	                    <messages>
	                        <message>Developer has reached usage quota</message>
	                        <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message>
	                    </messages>
	                </error>
	            </Payload>
	            <StatusCode>403</StatusCode>
	            <ReasonPhrase>Forbidden</ReasonPhrase>
	        </Set>
	</FaultResponse>
 </MonetizationLimitsCheck>

এই উপাদানটির নিম্নলিখিত বৈশিষ্ট্যগুলি রয়েছে যা সমস্ত নীতিতে সাধারণ:

বৈশিষ্ট্য ডিফল্ট প্রয়োজন? বর্ণনা
name N/A প্রয়োজন

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

continueOnError মিথ্যা ঐচ্ছিক একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে "false" এ সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ। একটি নীতি ব্যর্থ হওয়ার পরেও প্রবাহ সম্পাদন অব্যাহত রাখতে "সত্য" তে সেট করুন৷
enabled সত্য ঐচ্ছিক নীতি প্রয়োগ করতে "সত্য" এ সেট করুন। নীতিটি "বন্ধ" করতে "মিথ্যা" এ সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।
async মিথ্যা অবচয় এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

চাইল্ড এলিমেন্ট রেফারেন্স

এই বিভাগে <MonetizationLimitsCheck>-এর চাইল্ড এলিমেন্ট সম্পর্কে বর্ণনা করা হয়েছে।

<DisplayName>

ম্যানেজমেন্ট UI প্রক্সি এডিটরে অন্য, আরও স্বাভাবিক-শোনা নাম দিয়ে নীতি লেবেল করতে name অ্যাট্রিবিউট ছাড়াও ব্যবহার করুন।

<DisplayName> এলিমেন্ট সব নীতির ক্ষেত্রে প্রযোজ্য।

ডিফল্ট ভ্যালু প্রযোজ্য নয়
আবশ্যক? ঐচ্ছিক। আপনি <DisplayName> বাদ দিলে, নীতির name অ্যাট্রিবিউটের ভ্যালু ব্যবহার করা হয়
Type স্ট্রিং
পেরেন্ট এলিমেন্ট <PolicyElement>
চাইল্ড এলিমেন্ট কোনওটিই নয়

<DisplayName> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

উদাহরণ

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

<DisplayName> এলিমেন্টে কোনও অ্যাট্রিবিউট বা চাইল্ড এলিমেন্ট নেই।

<IgnoreUnresolvedVariables>

Apigee কোনও সমাধান না হওয়া ভেরিয়েবেল দেখতে পেলে নীতি প্রসেস করা বন্ধ করা উচিত কিনা তা নির্ধারণ করে।

ডিফল্ট ভ্যালু True
প্রয়োজনীয়? ঐচ্ছিক
টাইপ করুন বুলিয়ান
পেরেন্ট এলিমেন্ট <MonetizationLimitsCheck>
চাইল্ড এলিমেন্ট কোনওটিই নয়

সমাধান না হওয়া ভেরিয়েবল উপেক্ষা করে প্রসেসিং চালিয়ে যেতে, ভ্যালু true হিসেবে সেট করুন; অন্যথায় false হিসেবে সেট করুন। ডিফল্ট ভ্যালু হল true।

<IgnoreUnresolvedVariables>-কে true হিসেবে সেট করা, <MonetizationLimitsCheck> এলিমেন্টের continueOnError-কে true হিসেবে সেট করার থেকে আলাদা। আপনি continueOnError-কে true হিসেবে সেট করলে, Apigee শুধুমাত্র ভেরিয়েবল সংক্রান্ত সমস্যা নয়, সব সমস্যাই উপেক্ষা করে।

<IgnoreUnresolvedVariables> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>

উদাহরণ

নিচের উদাহরণে <IgnoreUnresolvedVariables>-কে false হিসেবে সেট করা হয়েছে:

<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>

<Variables>

নীতি প্রয়োগ করার সময় আপনি যে ফ্লো ভেরিয়েবল থেকে এন্টিটি বা রিসোর্সের নাম ফেচ করতে চান তা নির্দিষ্ট করে।

আপনি <Variables> এলিমেন্টের মধ্যে শুধুমাত্র <Product> এলিমেন্ট নির্দিষ্ট করতে পারবেন। Apigee, <Product> এলিমেন্টে উল্লেখ করা ফ্লো ভেরিয়েবল থেকে API প্রোডাক্টের নাম পায়। আপনি <Variables> এলিমেন্ট নির্দিষ্ট না করলে, Apigee ডিফল্ট হিসেবে apiproduct.name কনটেক্সট ভেরিয়েবল থেকে API প্রোডাক্টের নাম নেয়। API প্রোডাক্টের নাম ব্যবহার করে, Apigee প্রোডাক্টের জন্য সংশ্লিষ্ট রেট প্ল্যান পায় এবং মনিটাইজেশন সংক্রান্ত সীমা চেক করে।

থেকে ডেভেলপারের বিবরণ সংগ্রহ করে।
ডিফল্ট ভ্যালু প্রযোজ্য নয়
প্রয়োজনীয়? ঐচ্ছিক
টাইপ করুন জটিল ধরন
পেরেন্ট এলিমেন্ট <MonetizationLimitsCheck>
চাইল্ড এলিমেন্ট <Product>

<Variables> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<Variables>
    <Product>VARIABLE_NAME</Product>
</Variables>

উদাহরণ

নিচে দেওয়া উদাহরণটি আপনার API প্রক্সি ফ্লোতে উপস্থিত myproductvar.name কাস্টম ফ্লো ভেরিয়েবল থেকে API প্রোডাক্টের নাম পায়।

<Variables>
    <Product>myproductvar.name</Product>
</Variables>

AssignMessage বা JavaScript-এর মতো নীতি ব্যবহার করে আপনি কাস্টম ফ্লো ভেরিয়েবল সেট করতে পারবেন।

<Product>

API প্রোডাক্টের নাম থাকা ভেরিয়েবল নির্দিষ্ট করে।

ডিফল্ট ভ্যালু প্রযোজ্য নয়
প্রয়োজনীয়? ঐচ্ছিক
টাইপ করুন স্ট্রিং
পেরেন্ট এলিমেন্ট <Variables>
চাইল্ড এলিমেন্ট কোনওটিই নয়

<Product> এলিমেন্ট নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিন্ট্যাক্স

<Product>VARIABLE_NAME</Product>

উদাহরণ

নিচে দেওয়া উদাহরণটি আপনার API প্রক্সি ফ্লোতে থাকা myproductvar.name কাস্টম ফ্লো ভেরিয়েবল থেকে API প্রোডাক্টের নাম পায়।

<Product>myproductvar.name</Product>

AssignMessage বা JavaScript-এর মতো নীতি ব্যবহার করে আপনি কাস্টম ফ্লো ভেরিয়েবল সেট করতে পারবেন।

<FaultResponse>

কোনও সমস্যা হলে, অনুরোধকারী ক্লায়েন্টকে যে উত্তর মেসেজ পাঠানো হয় তা নির্ধারণ করে। আপনার প্রয়োজন অনুযায়ী আপনি উত্তর মেসেজ কাস্টমাইজ করতে পারবেন। এলিমেন্ট ও এর সব চাইল্ড এলিমেন্ট সম্পর্কে আরও জানতে, FaultResponse দেখুন।

ফ্লো ভেরিয়েবল

আপনি <MonetizationLimitsCheck> এলিমেন্টের ContinueOnError অ্যাট্রিবিউট true হিসেবে সেট করলে, কোনও সমস্যা হয় না। এই ক্ষেত্রে, ফ্লো ভেরিয়েবল, mint.limitsViolated, mint.isDeveloperSuspended এবং mint.limitsPolicyError অটোমেটিক সেট হয়ে যায়। প্রয়োজন হলে, এইসব ভেরিয়েবল ব্যবহার করে আরও ব্যতিক্রম ম্যানেজ করা যায়।