ऑडियंस की सूचियों के लिए, वेबहुक की सूचनाएं पाएं

इस गाइड में बताया गया है कि ऑडियंस को एक्सपोर्ट करने के अनुरोधों की स्थिति के लिए, एसिंक्रोनस सूचनाएं पाने के लिए वेबहुक का इस्तेमाल कैसे किया जाता है. यह सुविधा सिर्फ़ Data API के v1ऐल्फ़ा वर्शन में उपलब्ध है.

वेबहुक सूचनाएं, Google Analytics के Data एपीआई की बेहतर सुविधा हैं. ऑडियंस एक्सपोर्ट करने की सुविधा के बारे में जानने के लिए, ऑडियंस एक्सपोर्ट करना लेख पढ़ें.

वेबहुक के बिना, आपको समय-समय पर एपीआई का पोल करना होगा, ताकि यह तय किया जा सके कि अनुरोध कब पूरा होगा.

Cloud Run का इस्तेमाल करके वेबहुक का सैंपल बनाएं

ट्यूटोरियल क्विकस्टार्ट: Cloud Run में सैंपल सेवा डिप्लॉय करें में दिए गए ट्यूटोरियल की मदद से, Google Cloud का इस्तेमाल करके वेबहुक ऐप्लिकेशन का सैंपल बनाया जा सकता है.

सैंपल सेवा, 'वेबहुक पोस्ट करें' सूचना के अनुरोध सुन सके, इसके लिए क्विकस्टार्ट ट्यूटोरियल से 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}`);
  });

पोस्ट अनुरोध के तौर पर भेजी गई हर वेबहुक सूचना के लिए, यह कोड, वेबहुक सूचना JSON के मुख्य भाग और चैनल टोकन की वैल्यू को प्रिंट करता है. साथ ही, यह एचटीटीपी कोड 200 दिखाता है, ताकि यह पता चल सके कि कार्रवाई सही है या नहीं.

Cloud Run क्विकस्टार्ट ट्यूटोरियल के आखिर में पहुंचने और gcloud run deploy कमांड का इस्तेमाल करके वेबहुक ऐप्लिकेशन डिप्लॉय करने के बाद, वह यूआरएल सेव करें जहां आपकी सेवा डिप्लॉय की गई है.

कंसोल में सेवा का यूआरएल दिखाया जाता है. उदाहरण के लिए:

  Service URL: https://webhooks-test-abcdef-uc.a.run.app

यह सर्वर सूचना यूआरआई है, जहां आपका ऐप्लिकेशन Google Analytics से वेबहुक सूचनाएं सुनता है.

ऑडियंस की सूची बनाएं और वेबहुक सूचनाएं चालू करें

वेबहुक सूचनाओं का अनुरोध करने के लिए, webhookNotification ऑब्जेक्ट में ये वैल्यू डालें:

  • सर्वर सूचना यूआरआई: इसमें वेब पता वाला वह वेब पता होता है जिसे वेबहुक सूचनाएं मिलेंगी.

  • (ज़रूरी नहीं) स्पूफ़ किए जा रहे मैसेज से बचाने के लिए आर्बिट्रेरी स्ट्रिंग channelToken. वेबहुक पीओएसटी अनुरोध के X-Goog-Channel-Token एचटीटीपी हेडर में channelToken के बारे में बताएं.

यहां वेबहुक का इस्तेमाल करके किए गए अनुरोध का एक सैंपल दिया गया है:

एचटीटीपी अनुरोध

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 शामिल होता है, जिससे यह पुष्टि होती है कि चुने गए वेबहुक ने पांच सेकंड के अंदर सही जवाब दिया है.

यहां एक सैंपल जवाब दिया गया है:

एचटीटीपी रिस्पॉन्स

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

अगर कोई वेबहुक जवाब नहीं देता या सेवा का गलत यूआरएल दिया जाता है, तो आपको गड़बड़ी का मैसेज दिखेगा.

यहां उदाहरण के तौर पर एक गड़बड़ी दी गई है, जो आपको मिल सकती है:

{
  "error": {
    "code": 400,
    "message": "Expected response code of 200 from webhook URI but instead
    '404' was received.",
    "status": "INVALID_ARGUMENT"
  }
}

वेबहुक सूचनाएं प्रोसेस करें

किसी वेबहुक सेवा के पीओएसटी अनुरोध में, मुख्य भाग में लंबे समय से चल रही कार्रवाई वाले संसाधन का JSON वर्शन और sentTimestamp फ़ील्ड, दोनों शामिल होते हैं. भेजे गए टाइमस्टैंप से, अनुरोध भेजे गए माइक्रोसेकंड में Unix epoch समय के बारे में पता चलता है. इस टाइमस्टैंप का इस्तेमाल, फिर से चलाई जाने वाली सूचनाओं की पहचान करने के लिए किया जा सकता है.

ऑडियंस की सूची बनाने के दौरान, पोस्ट के लिए एक या दो अनुरोध वेबहुक को भेजे जाते हैं:

  1. पोस्ट करने का पहला अनुरोध तुरंत भेजा जाता है, जिसमें बनाई गई नई ऑडियंस सूची को उसकी CREATING स्थिति में दिखाया जाता है. अगर वेबहुक का पहला अनुरोध फ़ेल होता है, तो audienceLists.create कार्रवाई एक गड़बड़ी और वेबहुक के काम न करने की जानकारी दिखाती है.
  2. ऑडियंस की सूची बन जाने के बाद, पोस्ट करने का दूसरा अनुरोध भेजा जाता है. जब ऑडियंस की सूची 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 मुख्य हिस्सा देखें.