আপনার দর্শক তালিকার জন্য ওয়েবহুক বিজ্ঞপ্তি পান

আপনার শ্রোতা রপ্তানি অনুরোধের স্থিতির জন্য অ্যাসিঙ্ক্রোনাস বিজ্ঞপ্তিগুলি পেতে ওয়েবহুকগুলি কীভাবে ব্যবহার করবেন তা এই নির্দেশিকাটি ব্যাখ্যা করে৷ এই বৈশিষ্ট্যটি শুধুমাত্র ডেটা API-এর v1alpha সংস্করণে উপলব্ধ।

ওয়েবহুক বিজ্ঞপ্তিগুলি হল Google Analytics ডেটা API- এর একটি উন্নত বৈশিষ্ট্য৷ দর্শক রপ্তানি বৈশিষ্ট্যের একটি ভূমিকার জন্য, একটি দর্শক রপ্তানি তৈরি করুন দেখুন।

ওয়েবহুক ব্যতীত, একটি অনুরোধ কখন সম্পূর্ণ হবে তা নির্ধারণ করতে আপনাকে পর্যায়ক্রমে API পোল করতে হবে।

ক্লাউড রান ব্যবহার করে একটি নমুনা ওয়েবহুক অ্যাপ্লিকেশন তৈরি করুন

আপনি টিউটোরিয়াল Quickstart অনুসরণ করে Google ক্লাউড ব্যবহার করে একটি নমুনা ওয়েবহুক অ্যাপ্লিকেশন তৈরি করতে পারেন: ক্লাউড রানে একটি নমুনা পরিষেবা স্থাপন করুন।

নমুনা পরিষেবার জন্য POST ওয়েবহুক বিজ্ঞপ্তির অনুরোধগুলি শোনার জন্য, নিম্নলিখিত কোড দিয়ে Quickstart টিউটোরিয়াল থেকে 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 ফেরত দেয়।

একবার আপনি ক্লাউড রান কুইকস্টার্ট টিউটোরিয়ালের শেষে পৌঁছে গেলে এবং 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-Token HTTP শিরোনামে 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 রয়েছে, যা নিশ্চিত করে যে নির্দিষ্ট ওয়েবহুক সফলভাবে 5 সেকেন্ডের মধ্যে প্রতিক্রিয়া জানিয়েছে৷

এখানে একটি নমুনা প্রতিক্রিয়া:

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"
  }
}

ওয়েবহুক বিজ্ঞপ্তিগুলি প্রক্রিয়া করুন

একটি ওয়েবহুক পরিষেবার পোস্ট অনুরোধে শরীরে দীর্ঘক্ষণ চলমান অপারেশন রিসোর্সের একটি JSON সংস্করণ এবং একটি sentTimestamp ক্ষেত্র উভয়ই রয়েছে৷ পাঠানো টাইমস্ট্যাম্প মাইক্রোসেকেন্ডে ইউনিক্স যুগের সময় নির্দিষ্ট করে যে অনুরোধটি পাঠানো হয়েছিল। আপনি রিপ্লে করা বিজ্ঞপ্তিগুলি সনাক্ত করতে এই টাইমস্ট্যাম্প ব্যবহার করতে পারেন।

একটি শ্রোতা তালিকা তৈরির সময় ওয়েবহুকে এক বা দুটি POST অনুরোধ পাঠানো হয়:

  1. প্রথম POST অনুরোধটি অবিলম্বে পাঠানো হয়, সদ্য নির্মিত দর্শক তালিকাকে তার CREATING অবস্থায় দেখানো হয়। ওয়েবহুকের প্রথম অনুরোধ ব্যর্থ হলে, audienceLists.create অপারেশন একটি ত্রুটি এবং ওয়েবহুকের ব্যর্থতার বিবরণ প্রদান করে।
  2. শ্রোতা তালিকা তৈরি সম্পূর্ণ করার পরে দ্বিতীয় 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 পদ্ধতিতে কল করার পরে ওয়েবহুক পরীক্ষা করতে, আপনি আপনার নমুনা ক্লাউড রান ওয়েবহুক অ্যাপ্লিকেশনের লগগুলি পরিদর্শন করতে পারেন এবং Google Analytics দ্বারা পাঠানো প্রতিটি বিজ্ঞপ্তির JSON বডি দেখতে পারেন৷