Reports: Query

अहम जानकारी: इस तरीके को ऐक्सेस करने के लिए एपीआई अनुरोधों को अब https://www.googleapis.com/auth/youtube.readonly के दायरे की ज़रूरत होगी.

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

  • मेट्रिक, उपयोगकर्ता की गतिविधि का अलग-अलग मेज़रमेंट होती हैं. जैसे, वीडियो व्यू या रेटिंग (पसंद और नापसंद).
  • डाइमेंशन सामान्य मानदंड होते हैं, जिनका इस्तेमाल डेटा इकट्ठा करने के लिए किया जाता है, जैसे कि किस तारीख को उपयोगकर्ता गतिविधि हुई या वह देश जहां उपयोगकर्ता मौजूद थे. रिपोर्ट में, डेटा की हर लाइन में डाइमेंशन वैल्यू का यूनीक कॉम्बिनेशन होता है.
  • फ़िल्टर, डाइमेंशन की ऐसी वैल्यू होते हैं जिनसे वापस मिलने वाले डेटा के बारे में पता चलता है. उदाहरण के लिए, किसी खास देश, किसी खास वीडियो या वीडियो ग्रुप के लिए डेटा वापस लाया जा सकता है.

ध्यान दें: कॉन्टेंट के मालिक की रिपोर्ट को सिर्फ़ वही YouTube कॉन्टेंट पार्टनर ऐक्सेस कर सकता है जो YouTube पार्टनर कार्यक्रम में हिस्सा लेते हैं.

इस्तेमाल के सामान्य उदाहरण

अनुरोध करें

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

GET https://youtubeanalytics.googleapis.com/v2/reports

YouTube Analytics API से आने वाले सभी अनुरोध स्वीकार किए जाने चाहिए. अनुमति देने वाली गाइड में OAuth 2.0 प्रोटोकॉल को इस्तेमाल करने का तरीका बताया गया है. इससे, आपको पुष्टि करने वाले टोकन वापस पाने में मदद मिलेगी.

YouTube Analytics API अनुरोधों को अनुमति देने के लिए, यहां दिए गए तरीकों का इस्तेमाल करें:

बंदूक पर लगने वाली दूरबीन
https://www.googleapis.com/auth/yt-analytics.readonly अपनी YouTube सामग्री के लिए YouTube Analytics रिपोर्ट देखें. इस दायरे से उपयोगकर्ता की गतिविधि मेट्रिक का ऐक्सेस मिलता है, जैसे कि देखे जाने की संख्या और रेटिंग की संख्या.
https://www.googleapis.com/auth/yt-analytics-monetary.readonly अपनी YouTube सामग्री के लिए YouTube Analytics मौद्रिक रिपोर्ट देखें. इस दायरे से, उपयोगकर्ता गतिविधि की मेट्रिक का ऐक्सेस मिलता है. साथ ही, आय और विज्ञापन की परफ़ॉर्मेंस की अनुमानित मेट्रिक का ऐक्सेस भी मिलता है.
https://www.googleapis.com/auth/youtube अपना YouTube खाता मैनेज करें. YouTube Analytics API में, चैनल के मालिक इस दायरे का इस्तेमाल करके, YouTube Analytics के ग्रुप और ग्रुप आइटम को मैनेज करते हैं.
https://www.googleapis.com/auth/youtubepartner YouTube पर YouTube एसेट और इनसे जुड़े कॉन्टेंट को देखें और मैनेज करें. YouTube Analytics API में, कॉन्टेंट के मालिक इस दायरे का इस्तेमाल करके, YouTube Analytics के ग्रुप और ग्रुप आइटम को मैनेज करते हैं.

पैरामीटर

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

पैरामीटर
ज़रूरी पैरामीटर
endDate string
YouTube Analytics का डेटा फ़ेच करने की आखिरी तारीख. वैल्यू, YYYY-MM-DD फ़ॉर्मैट में होनी चाहिए.

एपीआई रिस्पॉन्स में आखिरी दिन तक का वह डेटा शामिल होता है जिसके लिए क्वेरी के समय, क्वेरी में सभी मेट्रिक उपलब्ध होती हैं. उदाहरण के लिए, अगर अनुरोध 5 जुलाई, 2017 को खत्म होने की तारीख और अनुरोध की सभी मेट्रिक के लिए सिर्फ़ 3 जुलाई, 2017 तक उपलब्ध हैं, तो जवाब में डेटा शामिल करने की आखिरी तारीख यही होगी. (यह तब भी सही होगा, जब अनुरोध की गई कुछ मेट्रिक का डेटा 4 जुलाई, 2017 के लिए उपलब्ध होगा.)
ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम end-date रखा गया था.
ids string
उस YouTube चैनल या कॉन्टेंट के मालिक की पहचान करता है जिसके लिए आप YouTube Analytics का डेटा हासिल कर रहे हैं.

  • किसी YouTube चैनल के डेटा का अनुरोध करने के लिए, ids पैरामीटर की वैल्यू को channel==MINE या channel==CHANNEL_ID पर सेट करें. इस वैल्यू से CHANNEL_ID, मौजूदा उपयोगकर्ता के YouTube चैनल की पहचान करता है.
  • YouTube के किसी कॉन्टेंट के मालिक से जुड़ा डेटा पाने का अनुरोध करने के लिए, ids पैरामीटर की वैल्यू को contentOwner==OWNER_NAME पर सेट करें. यहां OWNER_NAME, उपयोगकर्ता के लिए content owner ID है.

metrics string
कॉमा या अलग की गई YouTube Analytics मेट्रिक की सूची, जैसे कि views या likes,dislikes. आपको जो रिपोर्ट मिल सकती हैं उनकी सूची और हर रिपोर्ट में मौजूद मेट्रिक देखने के लिए, चैनल की रिपोर्ट या कॉन्टेंट के मालिक की रिपोर्ट से जुड़े दस्तावेज़ देखें. (मेट्रिक दस्तावेज़ में सभी मेट्रिक की परिभाषाएं होती हैं.)
startDate string
YouTube Analytics का डेटा फ़ेच करने की शुरू होने की तारीख. वैल्यू, YYYY-MM-DD फ़ॉर्मैट में होनी चाहिए.
ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम start-date रखा गया था.
वैकल्पिक पैरामीटर
currency string
मुद्रा का इस्तेमाल करके एपीआई, अनुमानित आय की ये मेट्रिक तय करेगा: estimatedRevenue, estimatedAdRevenue, estimatedRedPartnerRevenue, grossRevenue, cpm, playbackBasedCpm. उन मेट्रिक के लिए एपीआई जो वैल्यू देता है उनका अनुमान लगाने के लिए उन एक्सचेंज रेट का इस्तेमाल किया जाता है जो हर दिन बदलते हैं. अगर इनमें से किसी भी मेट्रिक का अनुरोध नहीं किया जाता है, तो पैरामीटर को अनदेखा कर दिया जाता है.

पैरामीटर वैल्यू, नीचे दी गई मुद्राओं की सूची से तीन-अक्षर वाला ISO 4217 मुद्रा कोड है. अगर किसी ऐसी मुद्रा का इस्तेमाल किया जाता है जो उपलब्ध नहीं है, तो एपीआई में गड़बड़ी दिखती है. डिफ़ॉल्ट वैल्यू USD है.

dimensions string
video या ageGroup,gender जैसे YouTube Analytics डाइमेंशन की कॉमा-सेपरेटेड लिस्ट. आप चैनल रिपोर्ट या कॉन्टेंट के मालिक की रिपोर्ट से जुड़े दस्तावेज़ देख सकते हैं. यहां आपको ऐसी रिपोर्ट की जानकारी मिलेगी जिन्हें आप फिर से पा सकते हैं और उनका इस्तेमाल भी कर सकते हैं. (डाइमेंशन दस्तावेज़ में सभी डाइमेंशन की परिभाषाएं होती हैं.)
filters string
फ़िल्टर की सूची. इन्हें YouTube Analytics डेटा वापस पाने के लिए इस्तेमाल करना चाहिए. चैनल रिपोर्ट और कॉन्टेंट के मालिक की रिपोर्ट के लिए, दस्तावेज़ में उन डाइमेंशन की पहचान की जाती है जिनका इस्तेमाल हर रिपोर्ट को फ़िल्टर करने के लिए किया जा सकता है. साथ ही, डाइमेंशन दस्तावेज़ उन डाइमेंशन के बारे में बताता है.

अगर अनुरोध कई फ़िल्टर का इस्तेमाल करता है, तो सेमीकोलन (;) से उन दोनों को मिलाएं और नतीजों में दिखने वाला टेबल, दोनों फ़िल्टर से मेल खाएगा. उदाहरण के लिए, video==dMH0bHeiRNg;country==IT की filters पैरामीटर वैल्यू से नतीजों पर पाबंदी लगाई जाती है, ताकि इटली में दिए गए वीडियो का डेटा शामिल किया जा सके.

फ़िल्टर के लिए एक से ज़्यादा वैल्यू तय करना

एपीआई, video, playlist, और channel फ़िल्टर के लिए एक से ज़्यादा वैल्यू तय कर सकता है. ऐसा करने के लिए, वीडियो, प्लेलिस्ट या चैनल आईडी की अलग से सूची बनाएं, जिसके लिए एपीआई रिस्पॉन्स को फ़िल्टर किया जाना चाहिए. उदाहरण के लिए, video==pd1FJh59zxQ,Zhawgd0REhA;country==IT की filters पैरामीटर वैल्यू से नतीजों पर पाबंदी लगाई जाती है, ताकि इटली में दिए गए वीडियो का डेटा शामिल किया जा सके. पैरामीटर वैल्यू में 500 आईडी तक डाले जा सकते हैं.

एक ही फ़िल्टर के लिए कई वैल्यू तय करते समय, उस फ़िल्टर को अनुरोध की खास डाइमेंशन की सूची में भी जोड़ा जा सकता है. अगर किसी रिपोर्ट के लिए, फ़िल्टर को काम करने वाले डाइमेंशन के तौर पर सूची में शामिल नहीं किया गया है, तब भी ऐसा होगा. अगर डाइमेंशन की सूची में फ़िल्टर जोड़ा जाता है, तो एपीआई, नतीजों को ग्रुप करने के लिए भी फ़िल्टर वैल्यू का इस्तेमाल करता है.

उदाहरण के लिए, मान लीजिए कि आपको किसी चैनल की ट्रैफ़िक सोर्स रिपोर्ट मिली है, जिसमें देखने के आंकड़े इस आधार पर एग्रीगेट किए गए हैं कि दर्शक किस तरह चैनल के वीडियो कॉन्टेंट पर पहुंचे. यह भी मान लें कि आपके अनुरोध के filters पैरामीटर के अनुरोध से उन 10 वीडियो की सूची मिल जाती है जिनके लिए डेटा दिखाया जाना चाहिए.
  • अगर dimensions पैरामीटर की वैल्यू में video को जोड़ा जाता है, तो एपीआई रिस्पॉन्स 10 वीडियो में से हर एक के लिए, ट्रैफ़िक सोर्स के अलग-अलग आंकड़े उपलब्ध कराएगा.
  • अगर dimensions पैरामीटर की वैल्यू में video नहीं जोड़ा जाता है, तो एपीआई रिस्पॉन्स सभी 10 वीडियो के लिए ट्रैफ़िक सोर्स के आंकड़े इकट्ठा करेगा.
includeHistoricalChannelData boolean
ध्यान दें: यह पैरामीटर सिर्फ़ कॉन्टेंट के मालिक की रिपोर्ट पर लागू होता है.

इससे पता चलता है कि एपीआई के जवाब में, चैनलों को देखने के कुल समय और उस समय का डेटा शामिल होना चाहिए या नहीं जब चैनल को कॉन्टेंट के मालिक से जोड़ा गया था. डिफ़ॉल्ट पैरामीटर वैल्यू false है. इसका मतलब है कि एपीआई रिस्पॉन्स में सिर्फ़ उन तारीखों का वीडियो देखने का कुल समय और व्यू शामिल होता है जब चैनल, कॉन्टेंट के मालिक के साथ लिंक किए गए थे.

इस बात का ध्यान रखना ज़रूरी है कि अलग-अलग चैनलों को, अलग-अलग तारीख पर कॉन्टेंट के मालिक के साथ जोड़ा जा सकता है. अगर एपीआई अनुरोध के तहत एक से ज़्यादा चैनलों का डेटा लोड हो रहा है और पैरामीटर वैल्यू false है, तो एपीआई के रिस्पॉन्स में, हर चैनल के लिए लिंक होने की तारीख के आधार पर डेटा शामिल होगा. अगर पैरामीटर वैल्यू true है, तो एपीआई रिस्पॉन्स में, एपीआई अनुरोध में बताई गई तारीखों से मेल खाने वाला डेटा शामिल होता है.
ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम include-historical-channel-data रखा गया था.
maxResults integer
रिस्पॉन्स में शामिल की जाने वाली पंक्तियों की ज़्यादा से ज़्यादा संख्या.
ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम max-results रखा गया था.
sort string
कॉमा या अलग किए गए डाइमेंशन या मेट्रिक की सूची, जो YouTube Analytics डेटा के क्रम को तय करती है. डिफ़ॉल्ट रूप से, चीज़ों को क्रम से लगाने का क्रम बढ़ता है. - प्रीफ़िक्स, घटते क्रम में लगाता है.
startIndex integer
फिर से पाने के लिए, पहली इकाई का 1-आधारित इंडेक्स. (डिफ़ॉल्ट वैल्यू 1 है.) इस पैरामीटर का इस्तेमाल, max-results पैरामीटर के साथ, पेजों का क्रम तय करने के तरीके के तौर पर करें.
ध्यान दें: एपीआई के वर्शन 1 में, इस पैरामीटर का नाम start-index रखा गया था.
स्टैंडर्ड पैरामीटर
access_token मौजूदा उपयोगकर्ता के लिए OAuth 2.0 टोकन.
alt यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता. यह सिर्फ़ JSON रिस्पॉन्स के साथ काम करता है.एपीआई रिस्पॉन्स के लिए डेटा फ़ॉर्मैट.
  • मान्य वैल्यू: json, csv
  • डिफ़ॉल्ट वैल्यू: json
callback कॉलबैक फ़ंक्शन.
  • JavaScript के कॉलबैक फ़ंक्शन का नाम, जो रिस्पॉन्स को हैंडल करता है.
  • JavaScript के JSON-P अनुरोधों में इस्तेमाल किया गया.
prettyPrint

इंडेंट और लाइन ब्रेक के साथ रिस्पॉन्स दिखाता है.

  • रिस्पॉन्स को ऐसे फ़ॉर्मैट में लौटाता है जिसे इंसान पढ़ सकें, अगर true.
  • डिफ़ॉल्ट वैल्यू: true.
  • अगर false है, तो रिस्पॉन्स पेलोड का साइज़ कम हो सकता है. इससे, कुछ जगहों पर परफ़ॉर्मेंस बेहतर हो सकती है.
quotaUser यह पैरामीटर, एपीआई के वर्शन 1 में काम करता था. हालांकि, अब इसका इस्तेमाल नहीं किया जाता. यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता.
userIp यह पैरामीटर, एपीआई के वर्शन 1 में काम करता था. हालांकि, अब इसका इस्तेमाल नहीं किया जाता. यह पैरामीटर, एपीआई के वर्शन 2 में काम नहीं करता.

अनुरोध का मुख्य भाग

इस तरीके को कॉल करते समय, अनुरोध का मुख्य हिस्सा न भेजें.

जवाब

alt पैरामीटर में बताया गया है कि एपीआई, JSON या CSV फ़ॉर्मैट में जवाब दे सकता है. हर टाइप के जवाब के बारे में जानकारी नीचे दी गई है:

JSON
{
  "kind": "youtubeAnalytics#resultTable",
  "columnHeaders": [
    {
      "name": string,
      "dataType": string,
      "columnType": string
    },
    ... more headers ...
  ],
  "rows": [
    [
      {value}, {value}, ...
    ]
  ]
}
प्रॉपर्टी
kind string
इस वैल्यू से पता चलता है कि एपीआई रिस्पॉन्स में किस तरह का डेटा शामिल है. query तरीके के लिए, kind प्रॉपर्टी की वैल्यू youtubeAnalytics#resultTable होगी. हालांकि, अगर एपीआई अन्य तरीकों के लिए सहायता जोड़ता है, तो उन तरीकों के लिए एपीआई रिस्पॉन्स, kind प्रॉपर्टी की दूसरी वैल्यू दे सकते हैं.
columnHeaders[] list
यह वैल्यू rows फ़ील्ड में लौटाए गए डेटा की जानकारी देती है. columnHeaders सूची का हर आइटम, rows वैल्यू में दिए गए फ़ील्ड की पहचान करता है, जिसमें कॉमा-डीलिमिटेड डेटा की सूची होती है.

columnHeaders सूची, एपीआई अनुरोध में दिए गए डाइमेंशन से शुरू होती है. इसके बाद, एपीआई अनुरोध में दी गई मेट्रिक होती है. डाइमेंशन और मेट्रिक, दोनों का क्रम, एपीआई अनुरोध में दिए गए ऑर्डर से मेल खाता है.

उदाहरण के लिए, अगर एपीआई अनुरोध में dimensions=ageGroup,gender&metrics=viewerPercentage पैरामीटर शामिल हैं, तो एपीआई से मिले रिस्पॉन्स में कॉलम इस क्रम में दिखते हैं: ageGroup,gender,viewerPercentage.
columnHeaders[].name string
डाइमेंशन या मेट्रिक का नाम.
columnHeaders[].columnType string
कॉलम का टाइप (DIMENSION या METRIC).
columnHeaders[].dataType string
कॉलम में मौजूद डेटा का टाइप (STRING, INTEGER, FLOAT वगैरह).
rows[] list
सूची में नतीजों की टेबल की सभी लाइनें होती हैं. सूची में मौजूद हर आइटम एक कलेक्शन होता है. इसमें, डेटा की एक पंक्ति से जुड़ा डेटा होता है, जिसे कॉमा लगाकर अलग किया गया है. कॉमा से अलग किए गए डेटा फ़ील्ड का क्रम, columnHeaders फ़ील्ड में दिए गए कॉलम के क्रम से मेल खाएगा.

अगर दी गई क्वेरी के लिए कोई डेटा उपलब्ध नहीं है, तो जवाब में rows एलिमेंट को शामिल नहीं किया जाएगा.

क्वेरी के लिए day डाइमेंशन वाली क्वेरी में, सबसे हाल के दिनों के लिए लाइनें शामिल नहीं होंगी.

CSV
day, views, likes, ...
"2012-01-01", 12.0, 3, ...
"2012-01-02", 16.0, 2, ...
"2012-01-03", 18.0, 8, ...
...

उदाहरण

ध्यान दें: हो सकता है कि कोड के ये नमूने, कार्यक्रम की सभी भाषाओं में काम न करते हों. इस्तेमाल की जा सकने वाली भाषाओं की सूची के लिए, क्लाइंट लाइब्रेरी के दस्तावेज़ देखें.

JavaScript

इस उदाहरण में YouTube Analytics API को कॉल किया गया है, ताकि 2017 के कैलेंडर साल के लिए, उपयोगकर्ता के चैनल के लिए देखे जाने की रोज़ की संख्या और दूसरी मेट्रिक को फिर से हासिल किया जा सके. इस सैंपल में Google API की JavaScript क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.

पहली बार इस नमूने को स्थानीय तौर पर चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
  1. Google API (एपीआई) कंसोल में कोई प्रोजेक्ट बनाएं या चुनें.
  2. अपने प्रोजेक्ट के लिए, YouTube Analytics एपीआई चालू करें.
  3. क्रेडेंशियल पेज पर सबसे ऊपर, OAuth की सहमति वाली स्क्रीन टैब चुनें. कोई ईमेल पता चुनें, अगर पहले से सेट नहीं किया गया है तो किसी प्रॉडक्ट का नाम डालें और 'सेव करें' बटन पर क्लिक करें.
  4. क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें और OAuth क्लाइंट आईडी चुनें.
  5. ऐप्लिकेशन टाइप वेब ऐप्लिकेशन चुनें.
  6. अनुमति वाले JavaScript ऑरिजिन फ़ील्ड में, वह यूआरएल डालें जिससे आपको कोड सैंपल दिखेगा. उदाहरण के लिए, http://localhost:8000 या http://yourserver.example.com जैसा कुछ इस्तेमाल किया जा सकता है. आप अधिकृत रीडायरेक्ट यूआरआई फ़ील्ड को खाली छोड़ सकते हैं.
  7. अपने क्रेडेंशियल बनाने के लिए, बनाएं बटन पर क्लिक करें.
  8. डायलॉग बॉक्स बंद करने से पहले, क्लाइंट आईडी कॉपी करें, जिसे आपको कोड सैंपल में डालना होगा.

इसके बाद, नमूने को किसी लोकल फ़ाइल में सेव करें. सैंपल में, नीचे दी गई लाइन ढूंढें और YOUR_CLIENT_ID को उस क्लाइंट आईडी से बदलें जो आपको ऑथराइज़ेशन क्रेडेंशियल सेट अप करते समय मिला था.

gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});

अब, आप वास्तव में नमूने का परीक्षण करने के लिए तैयार हैं:

  1. किसी वेब ब्राउज़र से लोकल फ़ाइल खोलें और ब्राउज़र में डीबग करने वाले कंसोल को खोलें. आपको दो बटन दिखाने वाला एक पेज दिखेगा.
  2. उपयोगकर्ता को अनुमति देने का तरीका लॉन्च करने के लिए, अनुमति दें और लोड करें बटन पर क्लिक करें. अगर आपने ऐप्लिकेशन को चैनल का डेटा पाने की अनुमति दी है, तो ब्राउज़र में कंसोल पर ये लाइनें प्रिंट होंगी:
    Sign-in successful
    GAPI client loaded for API
  3. अगर आपको ऊपर दी गई लाइनों के बजाय, गड़बड़ी का मैसेज दिखता है, तो पुष्टि करें कि आपने अनुमति वाले रीडायरेक्ट यूआरआई से स्क्रिप्ट लोड की है, जिसे आपने अपने प्रोजेक्ट के लिए सेट अप किया है. साथ ही, यह भी देखें कि आपने अपना क्लाइंट आईडी ऊपर बताए गए कोड में डाला है.
  4. एपीआई को कॉल करने के लिए, लागू करें बटन पर क्लिक करें. आपको ब्राउज़र में, कंसोल के लिए response ऑब्जेक्ट प्रिंट दिखेगा. उस ऑब्जेक्ट में, result प्रॉपर्टी एपीआई डेटा वाले ऑब्जेक्ट को मैप करती है.
<script src="https://apis.google.com/js/api.js"></script>
<script>
  function authenticate() {
    return gapi.auth2.getAuthInstance()
        .signIn({scope: "https://www.googleapis.com/auth/yt-analytics.readonly"})
        .then(function() { console.log("Sign-in successful"); },
              function(err) { console.error("Error signing in", err); });
  }
  function loadClient() {
    return gapi.client.load("https://youtubeanalytics.googleapis.com/$discovery/rest?version=v2")
        .then(function() { console.log("GAPI client loaded for API"); },
              function(err) { console.error("Error loading GAPI client for API", err); });
  }
  // Make sure the client is loaded and sign-in is complete before calling this method.
  function execute() {
    return gapi.client.youtubeAnalytics.reports.query({
      "ids": "channel==MINE",
      "startDate": "2017-01-01",
      "endDate": "2017-12-31",
      "metrics": "views,estimatedMinutesWatched,averageViewDuration,averageViewPercentage,subscribersGained",
      "dimensions": "day",
      "sort": "day"
    })
        .then(function(response) {
                // Handle the results here (response.result has the parsed body).
                console.log("Response", response);
              },
              function(err) { console.error("Execute error", err); });
  }
  gapi.load("client:auth2", function() {
    gapi.auth2.init({client_id: 'YOUR_CLIENT_ID'});
  });
</script>
<button onclick="authenticate().then(loadClient)">authorize and load</button>
<button onclick="execute()">execute</button>

Python

इस उदाहरण में YouTube Analytics API को कॉल किया गया है, ताकि 2017 के कैलेंडर साल के लिए, उपयोगकर्ता के चैनल के लिए देखे जाने की रोज़ की संख्या और दूसरी मेट्रिक को फिर से हासिल किया जा सके. इस सैंपल में Google API Python क्लाइंट लाइब्रेरी का इस्तेमाल किया गया है.

पहली बार इस नमूने को स्थानीय तौर पर चलाने से पहले, आपको अपने प्रोजेक्ट के लिए अनुमति देने वाले क्रेडेंशियल सेट अप करने होंगे:
  1. Google API (एपीआई) कंसोल में कोई प्रोजेक्ट बनाएं या चुनें.
  2. अपने प्रोजेक्ट के लिए, YouTube Analytics एपीआई चालू करें.
  3. क्रेडेंशियल पेज पर सबसे ऊपर, OAuth की सहमति वाली स्क्रीन टैब चुनें. कोई ईमेल पता चुनें, अगर पहले से सेट नहीं किया गया है तो किसी प्रॉडक्ट का नाम डालें और 'सेव करें' बटन पर क्लिक करें.
  4. क्रेडेंशियल पेज पर, क्रेडेंशियल बनाएं बटन पर क्लिक करें और OAuth क्लाइंट आईडी चुनें.
  5. ऐप्लिकेशन टाइप अन्य चुनें और "YouTube Analytics API क्विकस्टार्ट" नाम डालें. इसके बाद, 'बनाएं' बटन पर क्लिक करें.
  6. मिलने वाले डायलॉग को खारिज करने के लिए, ठीक है पर क्लिक करें.
  7. क्लाइंट आईडी के दाईं ओर मौजूद, (JSON डाउनलोड करें) बटन पर क्लिक करें.
  8. डाउनलोड की गई फ़ाइल को अपनी वर्किंग डायरेक्ट्री में ले जाएं.

आपको Python और कुछ अन्य लाइब्रेरी के लिए, Google API क्लाइंट लाइब्रेरी भी इंस्टॉल करनी होगी:

pip install --upgrade google-api-python-client
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2

अब, आप वास्तव में नमूने का परीक्षण करने के लिए तैयार हैं:

  1. कोड का नमूना नीचे अपनी वर्किंग डायरेक्ट्री में कॉपी करें.
  2. नमूने में, CLIENT_SECRETS_FILE वैरिएबल की वैल्यू अपडेट करें, ताकि वह उस फ़ाइल की जगह से मैच कर सके जिसे आपने अनुमति देने के क्रेडेंशियल सेट अप करने के बाद डाउनलोड किया था.
  3. सैंपल कोड को टर्मिनल विंडो में चलाएं:
    python yt_analytics_v2.py
  4. अनुमति देने के तरीके को अपनाएं. पुष्टि करने की प्रोसेस, आपके ब्राउज़र में अपने-आप लोड हो सकती है या आपको ब्राउज़र विंडो में, पुष्टि करने वाला यूआरएल कॉपी करना पड़ सकता है. अनुमति देने के फ़्लो के आखिर में, ज़रूरी होने पर ब्राउज़र में दिख रहे ऑथराइज़ेशन कोड को अपनी टर्मिनल विंडो में चिपकाएं और [return] पर क्लिक करें.
  5. एपीआई क्वेरी एक्ज़ीक्यूट होती है और JSON रिस्पॉन्स टर्मिनल विंडो पर आउटपुट होता है.
# -*- coding: utf-8 -*-

import os
import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from google_auth_oauthlib.flow import InstalledAppFlow

SCOPES = ['https://www.googleapis.com/auth/yt-analytics.readonly']

API_SERVICE_NAME = 'youtubeAnalytics'
API_VERSION = 'v2'
CLIENT_SECRETS_FILE = 'YOUR_CLIENT_SECRET_FILE.json'
def get_service():
  flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
  credentials = flow.run_console()
  return build(API_SERVICE_NAME, API_VERSION, credentials = credentials)

def execute_api_request(client_library_function, **kwargs):
  response = client_library_function(
    **kwargs
  ).execute()

  print(response)

if __name__ == '__main__':
  # Disable OAuthlib's HTTPs verification when running locally.
  # *DO NOT* leave this option enabled when running in production.
  os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

  youtubeAnalytics = get_service()
  execute_api_request(
      youtubeAnalytics.reports().query,
      ids='channel==MINE',
      startDate='2017-01-01',
      endDate='2017-12-31',
      metrics='estimatedMinutesWatched,views,likes,subscribersGained'
      dimensions='day',
      sort='day'
  )

इसे आज़माएं!

इस एपीआई को कॉल करने और एपीआई का अनुरोध और जवाब देखने के लिए, APIs Explorer का इस्तेमाल करें.