আপনার অডিয়েন্স এক্সপোর্ট অনুরোধের স্ট্যাটাস সম্পর্কে অ্যাসিঙ্ক্রোনাস বিজ্ঞপ্তি পাওয়ার জন্য কীভাবে ওয়েব হুক ব্যবহার করতে হয় তা এই নির্দেশিকা থেকে জানতে পারবেন। এই ফিচার শুধুমাত্র ডেটা API-এর v1alpha ভার্সনে উপলভ্য।
ওয়েবহুক বিজ্ঞপ্তি হল Google Analytics ডেটা API-এর একটি উন্নত ফিচার। অডিয়েন্স এক্সপোর্ট ফিচার সম্পর্কে জানতে, অডিয়েন্স এক্সপোর্ট তৈরি করুন দেখুন।
ওয়েবহুক না থাকলে, কোনও অনুরোধ কখন সম্পূর্ণ হয়েছে তা নির্ধারণ করতে আপনাকে API-কে নির্দিষ্ট সময় অন্তর পোল করতে হবে।
Cloud Run ব্যবহার করে একটি নমুনা ওয়েবহুক অ্যাপ্লিকেশন তৈরি করা
আপনি Google Cloud ব্যবহার করে একটি নমুনা ওয়েবহুক অ্যাপ্লিকেশন তৈরি করতে পারেন, এর জন্য দ্রুত শুরু: Cloud Run-এ একটি নমুনা পরিষেবা ডিপ্লয় করুন টিউটোরিয়াল অনুসরণ করুন।
POST ওয়েব হুক বিজ্ঞপ্তি অনুরোধ শোনার জন্য স্যাম্পেল পরিষেবার জন্য,
কুইকস্টার্ট টিউটোরিয়াল থেকে index.js ফাইলটি নিম্নলিখিত
কোড দিয়ে পরিবর্তন করুন:
import express from 'express';
const app = express();
app.use(express.json());
app.post('/', (req, res) => {
const channelToken = req.get('X-Goog-Channel-Token');
const bodyJson = JSON.stringify(req.body);
console.log(`channel token: ${channelToken}`);
console.log(`notification body: ${bodyJson}`);
res.sendStatus(200);
});
const port = parseInt(process.env.PORT) || 8080;
app.listen(port, () => {
console.log(`helloworld: listening on port ${port}`);
});
POST অনুরোধ হিসেবে পাঠানো প্রতিটি ইনকামিং ওয়েবহুক বিজ্ঞপ্তির জন্য, এই কোডটি ওয়েবহুক বিজ্ঞপ্তি JSON বডি এবং একটি চ্যানেল টোকেন ভ্যালু প্রিন্ট করে
এবং সফল অপারেশন বোঝাতে HTTP কোড 200 রিটার্ন করে।
Cloud Run ক্যুইকস্টার্ট টিউটোরিয়ালের শেষ ধাপে পৌঁছে এবং gcloud run deploy কমান্ড ব্যবহার করে
ওয়েবহুক অ্যাপ্লিকেশন ডিপ্লয় করার পরে, আপনার পরিষেবা যেখানে ডিপ্লয় করা হয়েছে
সেই URL সেভ করুন।
কনসোলে পরিষেবা URL দেখানো হয়, যেমন:
Service URL: https://webhooks-test-abcdef-uc.a.run.app
এটি হল সার্ভার বিজ্ঞপ্তি URI যেখানে আপনার অ্যাপ্লিকেশন Google Analytics থেকে ওয়েব হুক বিজ্ঞপ্তি শোনে।
একটি দর্শক তালিকা তৈরি করুন এবং ওয়েব হুক বিজ্ঞপ্তি চালু করুন
ওয়েব হুক বিজ্ঞপ্তির অনুরোধ করতে, webhookNotification
অবজেক্টে নিম্নলিখিত ভ্যালু উল্লেখ করুন:
সার্ভার বিজ্ঞপ্তি URI যে ওয়েব ঠিকানায় ওয়েব হুক বিজ্ঞপ্তি পাঠানো হবে সেটি থাকে।
(ঐচ্ছিক) মেসেজ স্পুফ করা থেকে রক্ষা করার জন্য একটি নির্বিচারে স্ট্রিং
channelToken। ওয়েব হুক POST অনুরোধেরX-Goog-Channel-TokenHTTP হেডারেchannelTokenউল্লেখ করুন।
ওয়েবহুক ব্যবহার করে অনুরোধের নমুনা এখানে দেওয়া হল:
HTTP অনুরোধ
POST https://analyticsdata.googleapis.com/v1alpha/properties/1234567/audienceLists
{
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
},
"audience": "properties/1234567/audiences/12345",
"dimensions": [
{
"dimensionName": "deviceId"
}
]
}
audienceLists.create পদ্ধতি থেকে পাওয়া উত্তরে
webhookNotification আছে, যা কনফার্ম করে যে নির্দিষ্ট ওয়েবহুক ৫ সেকেন্ডের মধ্যে
সফলভাবে উত্তর দিয়েছে।
এখানে উত্তরের একটি নমুনা দেওয়া হল:
HTTP রেসপন্স
{
"response": {
"@type": "type.googleapis.com/google.analytics.data.v1alpha.AudienceList",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName": "Purchasers",
"dimensions": [
{
"dimensionName": "deviceId"
}
],
"state": "ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged": 51,
"rowCount": 13956,
"percentageCompleted": 100,
"webhookNotification": {
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken": "123456"
}
}
}
কোনও ওয়েবহুক উত্তর দিতে না পারলে অথবা আপনি ভুল পরিষেবা URL দিলে, তার পরিবর্তে একটি সমস্যার মেসেজ দেখানো হয়।
আপনি পেতে পারেন এমন একটি সমস্যার উদাহরণ এখানে দেওয়া হল:
{
"error": {
"code": 400,
"message": "Expected response code of 200 from webhook URI but instead
'404' was received.",
"status": "INVALID_ARGUMENT"
}
}
ওয়েবহুক বিজ্ঞপ্তি প্রসেস করা
ওয়েবহুক পরিষেবায় POST অনুরোধে বডিতে
দীর্ঘ সময় ধরে চলা অপারেশন রিসোর্সের
JSON ভার্সন ও একটি sentTimestamp ফিল্ড থাকে। পাঠানো টাইমস্ট্যাম্পে
অনুরোধ পাঠানোর মাইক্রোসেকেন্ডে Unix সময় উল্লেখ করা থাকে। রিপ্লে করা বিজ্ঞপ্তি শনাক্ত করতে আপনি এই
টাইমস্ট্যাম্প ব্যবহার করতে পারবেন।
দর্শকের তালিকা তৈরি করার সময় ওয়েবহুকে একটি বা দুটি POST অনুরোধ পাঠানো হয়:
- প্রথম POST অনুরোধটি সঙ্গে সঙ্গে পাঠানো হয়, এতে নতুন তৈরি করা
দর্শকের তালিকাটি
CREATINGঅবস্থায় দেখানো হয়। ওয়েব হুকে প্রথম অনুরোধ সফল না হলে,audienceLists.createঅপারেশন একটি সমস্যা ও ওয়েব হুক ব্যর্থতার বিবরণ দেখায়। - দর্শকদের তালিকা তৈরি হয়ে যাওয়ার পরে দ্বিতীয় POST অনুরোধ পাঠানো হয়
। দর্শক তালিকা
ACTIVEবাFAILEDঅবস্থায় পৌঁছালে তৈরি করা সম্পূর্ণ হয়।
এখানে
CREATING স্টেটে অডিয়েন্স লিস্টের জন্য প্রথম বিজ্ঞপ্তির একটি উদাহরণ দেওয়া হল:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"CREATING",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":0,
"rowCount":0,
"percentageCompleted":0,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
এখানে অডিয়েন্স তালিকার দ্বিতীয় বিজ্ঞপ্তির একটি উদাহরণ দেওয়া হল, যা
ACTIVE অবস্থায় আছে:
{
"sentTimestamp":"1718261355692983",
"name": "properties/1234567/audienceLists/123",
"audience": "properties/1234567/audiences/12345",
"audienceDisplayName":"Purchasers",
"dimensions":[{"dimensionName":"deviceId"}],
"state":"ACTIVE",
"beginCreatingTime": "2024-06-10T04:50:09.119726379Z",
"creationQuotaTokensCharged":68,
"rowCount":13956,
"percentageCompleted":100,
"webhookNotification":
{
"uri": "https://webhooks-test-abcdef-uc.a.run.app",
"channelToken":"123456"
}
}
দ্বিতীয় বিজ্ঞপ্তিটি নিশ্চিত করে যে দর্শকদের তালিকা তৈরি করা হয়েছে এবং audienceLists.query
পদ্ধতি ব্যবহার করে কোয়েরি করার জন্য
প্রস্তুত।
audienceLists.create মেথড কল করার পরে ওয়েবহুক পরীক্ষা করতে, আপনার স্যাম্পেল Cloud Run ওয়েবহুক অ্যাপ্লিকেশনের
লগ চেক করতে পারেন
এবং Google Analytics-এর পাঠানো প্রতিটি
বিজ্ঞপ্তির JSON বডি দেখতে পারেন।