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

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

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

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

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

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

सैंपल सेवा, पीओएसटी सूचना से जुड़े अनुरोधों को सुन सके, इसके लिए: क्विकस्टार्ट ट्यूटोरियल से 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 ताकि स्पूफ़ किए जाने वाले मैसेज से बचा जा सके. channelToken तय करें के X-Goog-Channel-Token एचटीटीपी हेडर में वेबहुक POST अनुरोध.

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

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

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 सेकंड से भी कम समय में जवाब दिया.

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

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

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

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

किसी वेबहुक सेवा के लिए, पोस्ट करने के अनुरोध में लंबे समय तक चलने वाला ऑपरेशन संसाधन शरीर में और एक 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 से मिली सूचना.