
সাবস্ক্রিপশন লিঙ্কিং-এর মাধ্যমে, একটি PPID এবং একজন পাঠকের গুগল অ্যাকাউন্টের মধ্যে নতুন সংযোগ তৈরি করার একমাত্র উপায় হলো ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট। একটি কনফিগার করা পৃষ্ঠায়, পাঠকের সামনে একটি ডায়ালগ বক্স আসে যেখানে তাদের সাবস্ক্রিপশন লিঙ্ক করতে বলা হয়। পাঠক "Continue with Google" বোতামে ক্লিক করার পর, লিঙ্ক করার জন্য একটি অ্যাকাউন্ট বেছে নিতে পারেন এবং প্রক্রিয়াটি সম্পন্ন হলে তাদের কনফিগার করা পৃষ্ঠায় ফেরত পাঠানো হয়।
সাবস্ক্রিপশন লিঙ্কিং-এর জন্য পাঠকের কোনো থার্ড-পার্টি কুকি বা সক্রিয় গুগল সেশনের প্রয়োজন হয় না। এর ফলে পাঠক যেকোনো সময়ে, শুধু কেনাকাটার পরেই নয়, লিঙ্কিং প্রক্রিয়াটি শুরু করতে পারেন। যদি কোনো পাঠক গুগল অ্যাকাউন্টে লগ ইন করা না থাকেন, তবে প্রক্রিয়া চলাকালীনই তাঁকে লগ ইন করার সুযোগ দেওয়া হয়।
কোডের উদাহরণ
এই ক্লায়েন্ট-সাইড কোড উদাহরণগুলো দেখায় কীভাবে একটি লিঙ্ক শুরু করতে হয়, একটি বৈধ প্রতিক্রিয়া দেখতে কেমন হয়, এবং (ঐচ্ছিকভাবে) কীভাবে swg.js eventManager ব্যবহার করে অ্যানালিটিক্স ইভেন্টগুলো শোনা যায় ও সে অনুযায়ী সেগুলোকে রাউট করা যায়।
একটি প্রকাশনা লিঙ্ক করুন
swg.js এর linkSubscription মেথড ব্যবহার করে একটিমাত্র প্রকাশনার জন্য পাঠকের অ্যাকাউন্টের সাথে PPID যুক্ত করা হয়। এর ব্যবহার পূর্ববর্তী অ্যাকাউন্ট লিঙ্কিং ফিচারের ( উদাহরণ ) মতোই, তবে প্রমিজ পাস করার পরিবর্তে, এই মেথডটি PPID সম্বলিত একটি অবজেক্ট গ্রহণ করে।
const result = await subscriptions.linkSubscription({publisherProvidedId:6789})
নমুনা প্রতিক্রিয়া ( ইন্টারফেস )
সফলভাবে লিঙ্ক করা অ্যাকাউন্টের বৈধ প্রতিক্রিয়াগুলিতে লিঙ্কের জন্য ব্যবহৃত PPID এবং একটি বুলিয়ান success স্থিতি উভয়ই থাকে।
{
publisherProvidedId: 6789,
success: true
}
একাধিক প্রকাশনা একসাথে করুন

linkSubscriptions ফাংশনে আর্গুমেন্ট হিসেবে একটি অবজেক্ট পাস করে আপনি সাবস্ক্রিপশন লিঙ্কিংয়ের জন্য একসাথে একাধিক প্রকাশনা বান্ডল করতে পারেন। linkTo প্রপার্টিটি হলো অবজেক্টের একটি অ্যারে, যেখানে প্রতিটি অবজেক্ট একটি নির্দিষ্ট publicationId এবং লিঙ্ক করার জন্য এর সংশ্লিষ্ট publisherProvidedId (PPID)-কে প্রতিনিধিত্ব করে।
const result = await subscriptions.linkSubscriptions({linkTo: [
{ publicationId: 'pubId1', publisherProvidedId: 'ppid1' },
{ publicationId: 'pubId2', publisherProvidedId: 'ppid2' },
…
]});
নমুনা প্রতিক্রিয়া ( ইন্টারফেস )
anyFailure (বুলিয়ান) এবং anySuccess (বুলিয়ান) ফিল্ডগুলো নির্দেশ করে যে বান্ডেল সাবস্ক্রিপশন লিঙ্কিং প্রচেষ্টায় কোনো ব্যর্থতা বা সাফল্য ছিল কিনা। ` links ফিল্ডটিতে প্রতিটি প্রকাশনার ফলাফলের বিস্তারিত বিবরণ থাকে।
সমস্ত প্রকাশনার সাথে সফল সংযোগ স্থাপন
{
"anyFailure": false,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": true
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
প্রকাশনাগুলোর কোনোটি লিঙ্ক করতে ব্যর্থতা
{
"anyFailure": true,
"anySuccess": true,
"links": [{
"publicationId": "CAowqfCKCw",
"publisherProvidedId": "370720",
"success": false
},
{
"publicationId": "CAow5rTUCw",
"publisherProvidedId": "171385",
"success": true
}]
}
linkSubscription জন্য সম্পূর্ণ ক্লায়েন্ট-সাইড উদাহরণ
<script
async
type="application/javascript"
subscriptions-control="manual"
src="https://news.google.com/swg/js/v1/swg.js">
</script>
<script>
function linkSubscription(ppid) {
self.SWG.push(async (subscriptions) => {
try {
const result = await subscriptions.linkSubscription({
publisherProvidedId: ppid,
})
console.log(result)
} catch(e) {
console.log(e)
}
})
}
document.addEventListener('DOMContentLoaded', function () {
(self.SWG = self.SWG || []).push(subscriptions => {
subscriptions.init("PUBLICATION_ID");
//Configure the event manager for analytics integration
subscriptions.getEventManager().then(manager => {
manager.registerEventListener((event) => {
// Add code here to send the event to your analytics
// sendToAnalytics(event);
console.log(event);
});
});
});
document
.querySelector("SELECTOR")
.addEventListener('click', function(){
linkSubscription(PPID)
})
});
</script>
একটি OAuth ক্লায়েন্ট আইডি তৈরি করুন
সাবস্ক্রিপশন লিঙ্কিং-এর জন্য OAuth ক্লায়েন্ট আবশ্যক না হলেও, আপনার প্রোজেক্টের জন্য অনুমোদিত ডোমেইনের তালিকা (allowlist) তৈরি করতে একটি OAuth ক্লায়েন্ট ব্যবহার করা যেতে পারে। অনুমোদিত ডোমেইন হলো সেইসব ডোমেইনের একটি তালিকা যেখান থেকে আপনার ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট কল করার অনুমতি পায়। আপনার পাবলিকেশনে সম্ভবত ইতিমধ্যেই পাবলিশার সেন্টারে swg.js সাথে ব্যবহারের জন্য একটি OAuth ক্লায়েন্ট আইডি কনফিগার করা আছে।
- যদি আপনার সাবস্ক্রিপশন লিঙ্কিং ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট কলগুলো পূর্বে যাচাইকৃত কোনো ডোমেইন নেম থেকে আসে, তাহলে কোনো পদক্ষেপের প্রয়োজন নেই।
- আপনার জাভাস্ক্রিপ্ট যদি একটি নতুন ডোমেইন নাম থেকে চলে, তাহলে SwG OAuth ক্লায়েন্ট আইডি কনফিগারেশন নির্দেশাবলী অনুসরণ করুন।
পরীক্ষা
সাবস্ক্রিপশন লিঙ্কিং-এর ক্লায়েন্ট-সাইড বাস্তবায়ন পরীক্ষা করার জন্য, কোডটি অবশ্যই একটি অনুমোদিত জাভাস্ক্রিপ্ট অরিজিনযুক্ত সার্ভার থেকে চালাতে হবে।
- প্রোডাকশন ব্যবহারের জন্য, অনুমোদিত উৎসগুলো কনফিগার করা OAuth ক্লায়েন্ট থেকে, অথবা পাবলিশার সেন্টারের পাবলিকেশন সেটিংসে থাকা যাচাইকৃত ডোমেইনের তালিকা থেকে নেওয়া যেতে পারে।
- ডেভেলপমেন্ট বা স্টেজিং ব্যবহারের ক্ষেত্রে, যাচাই-অযোগ্য ডোমেইনের (যেমন লোকালহোস্ট বা একটি নন-পাবলিক সার্ভার) জন্য, ডোমেইনটি অবশ্যই কনফিগার করা OAuth ক্লায়েন্টে তালিকাভুক্ত থাকতে হবে।
ত্রুটি সমাধান করুন
ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট পরীক্ষা করার সময় সবচেয়ে সাধারণ সমস্যা হলো জাভাস্ক্রিপ্টটি চালানোর চেষ্টা করার সময় একটি 403 - Not Authorized ত্রুটি পাওয়া। এটি সমাধান করতে, নিশ্চিত করুন যে আপনি পাবলিশার সেন্টারে একটি যাচাইকৃত ডোমেইন থেকে জাভাস্ক্রিপ্টটি চালাচ্ছেন, অথবা আপনি এমন একটি হোস্টে কোডটি চালাচ্ছেন যা লিঙ্ক করা OAuth ক্লায়েন্টের অনুমোদিত js অরিজিনের অন্তর্ভুক্ত।
পরবর্তী পদক্ষেপ
ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্ট ইন্টিগ্রেশন সম্পন্ন করার জন্য অভিনন্দন। এখন আপনি সার্ভার-সাইড ইন্টিগ্রেশনের দিকে এগোতে পারেন। আপনার পাঠকদের এনটাইটেলমেন্ট সিঙ্ক্রোনাইজ করার জন্য এটি একটি আবশ্যক পদক্ষেপ। যখন আপনি প্রয়োজনীয় সার্ভার-সাইড UpdateReaderEntitlements ফাংশনটি ইমপ্লিমেন্ট এবং ব্যবহার করবেন, তখন আপনি নিশ্চিত করবেন যে সঠিক সাবস্ক্রাইবারদের জন্য সঠিক আর্টিকেলগুলোই হাইলাইট করা হচ্ছে।