এই নির্দেশিকা থেকে জানতে পারবেন যে আপনার অডিয়েন্স এক্সপোর্ট সংক্রান্ত অনুরোধের স্ট্যাটাসের জন্য অ্যাসিঙ্ক্রোনাস বিজ্ঞপ্তি পেতে কীভাবে ওয়েবহুক ব্যবহার করবেন। এই ফিচারটি শুধুমাত্র Data API-এর v1alpha ভার্সনে উপলভ্য।
ওয়েবহুক বিজ্ঞপ্তি হল Google Analytics Data 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 epoch সময় নির্দিষ্ট করে। রিপ্লে করা বিজ্ঞপ্তি শনাক্ত করতে আপনি এই
টাইমস্ট্যাম্প ব্যবহার করতে পারবেন।
অডিয়েন্স তালিকা তৈরি করার সময় ওয়েবহুকে এক বা দুটি 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 বডি দেখতে পারবেন।