Google Analytics एडमिन एपीआई v1 पर माइग्रेट करें

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

इस दस्तावेज़ में, मौजूदा कोड को Google Analytics Management API v3 से Google Analytics एडमिन एपीआई v1 में माइग्रेट करने का तरीका बताया गया है. साथ ही, दोनों एपीआई के बीच के मुख्य अंतरों के बारे में खास जानकारी दी गई है.

मुझे प्रॉपर्टी को माइग्रेट क्यों करना होगा?

अगर आपके ऐप्लिकेशन को Google Analytics 4 प्रॉपर्टी बनाने या कॉन्फ़िगर करने की ज़रूरत है, तो एडमिन एपीआई v1 का इस्तेमाल करें. मैनेजमेंट एपीआई v3 सिर्फ़ Universal Analytics प्रॉपर्टी के साथ काम करता है. Admin API v1 सिर्फ़ Google Analytics 4 प्रॉपर्टी के साथ काम करता है.

ज़रूरी शर्तें

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

शुरू करें

शुरू करने के लिए, आपको एक Google Analytics 4 प्रॉपर्टी बनानी होगी और Admin एपीआई v1 को चालू करना होगा. इसके बाद, अपने प्लैटफ़ॉर्म के हिसाब से एक एपीआई क्लाइंट लाइब्रेरी सेट अप करनी होगी.

Google Analytics 4 प्रॉपर्टी तैयार करना

Admin API v1 के साथ काम करने के लिए, अपना कोड माइग्रेट करने से पहले, आपको Google Analytics 4 प्रॉपर्टी का इस्तेमाल करने के लिए, अपनी वेबसाइट को माइग्रेट करना होगा.

एपीआई चालू करें

अपने चुने गए Google Cloud प्रोजेक्ट में, Admin API v1 को अपने-आप चालू करने के लिए, इस बटन पर क्लिक करें.

Google Analytics Admin API चालू करना

क्लाइंट लाइब्रेरी का इस्तेमाल करना

क्लाइंट लाइब्रेरी इंस्टॉल करना

क्लाइंट लाइब्रेरी का इस्तेमाल करने पर, आपको अपनी प्रोग्रामिंग भाषा के लिए, Admin API v1 क्लाइंट लाइब्रेरी इंस्टॉल करनी होगी.

क्लाइंट लाइब्रेरी शुरू करना

Admin API v1 क्लाइंट लाइब्रेरी को इस तरह से डिज़ाइन किया गया है कि आप तेज़ी से शुरुआत कर सकें. डिफ़ॉल्ट रूप से, क्लाइंट लाइब्रेरी आपके सेवा खाते के क्रेडेंशियल अपने-आप ढूंढने की कोशिश करती है.

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

उदाहरण के लिए, नीचे दिए गए कमांड को चलाकर और सेवा खाते की JSON फ़ाइल के पाथ का इस्तेमाल करके, सेवा खाते के क्रेडेंशियल सेट किए जा सकते हैं:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

नीचे कुछ कोड स्निपेट दिए गए हैं जिनका इस्तेमाल, आम तौर पर Admin API v1 क्लाइंट लाइब्रेरी को शुरू करने के लिए किया जाता है.

Java

    try (AnalyticsAdminServiceClient analyticsAdmin = AnalyticsAdminServiceClient.create()) {

Python

client = AlphaAnalyticsAdminClient()

.NET

AlphaAnalyticsAdminClient client = AlphaAnalyticsAdminClient.Create();

PHP

$client = new AlphaAnalyticsAdminClient();

Node.js

  // Imports the Google Analytics Data API client library.
  const {AlphaAnalyticsAdminClient} = require('@google-analytics/admin');

  // Using a default constructor instructs the client to use the credentials
  // specified in GOOGLE_APPLICATION_CREDENTIALS environment variable.
  const analyticsAdminClient = new AlphaAnalyticsAdminClient();

एनवायरमेंट वैरिएबल का इस्तेमाल करने के बजाय, शुरू करने के दौरान, साफ़ तौर पर एपीआई क्लाइंट इंस्टेंस को क्रेडेंशियल की जानकारी पास की जा सकती है.

अगर क्लाइंट लाइब्रेरी का इस्तेमाल नहीं किया जाता है

अगर क्लाइंट लाइब्रेरी के बिना Management API v3 का इस्तेमाल किया जाता है और आपको Admin API v1 के साथ भी इसे जारी रखना है, तो आपके पास अब भी अपने क्रेडेंशियल इस्तेमाल करने का विकल्प है.

आपको नए एचटीटीपी एंडपॉइंट और खोज से जुड़े दस्तावेज़ का इस्तेमाल करना होगा, जो एडमिन एपीआई से मिला है:

अगर आपके कोड का इस्तेमाल डिस्कवरी दस्तावेज़ के लिए किया जाता है, तो आपको इसे एडमिन एपीआई v1 से मिले, खोज से जुड़े दस्तावेज़ में अपडेट करना होगा:

एंडपॉइंट को अपडेट करने के बाद, अपनी JSON क्वेरी अपडेट करने के लिए, आपको एडमिन एपीआई के नए स्ट्रक्चर और सिद्धांतों के बारे में जानना होगा.

इस टूल की मदद से किए जाने वाले सामान्य काम

खाते मैनेज करें

Admin API v1 में Google Analytics खाते और प्रॉपर्टी मैनेज करने के ऐसे तरीकों का सेट होता है जिनकी तुलना, Management API v3 से की जाती है. इसके अलावा, Admin API v1 में Google Analytics खातों को इस्तेमाल करने, मिटाने, और अपडेट करने की सुविधा दी गई है.

  • एडमिन एपीआई v1 प्रॉपर्टी को मैनेज करने के तरीकों का इस्तेमाल, सिर्फ़ Google Analytics 4 प्रॉपर्टी के लिए किया जा सकता है.

  • एडमिन एपीआई v1 में व्यू (प्रोफ़ाइल) से जुड़ी जानकारी मौजूद नहीं है.

  • डेटा स्ट्रीम, Google Analytics 4 में लॉन्च की गई थीं. इसलिए, प्रॉपर्टी के लेवल पर कुछ जानकारी अब मौजूद नहीं है. उदाहरण के लिए, websiteUrl फ़ील्ड अब प्रॉपर्टी ऑब्जेक्ट का हिस्सा होने के बजाय, DataStream इकाई में मौजूद है.

खाते की खास जानकारी की सूची बनाएं

एडमिन एपीआई का accountSummaries तरीका, उन सभी खातों की खास जानकारी दिखाता है जिन्हें कॉलर ऐक्सेस कर सकता है. यह जानकारी, Management API v3 के accountSummaries तरीके से मिलती-जुलती है.

अहम फ़र्क़ यह है कि Admin API v1 सिर्फ़ Google Analytics 4 प्रॉपर्टी के बारे में जानकारी दिखाता है. वहीं, Management API v3 के रिस्पॉन्स में Universal Analytics से बनाई गई प्रॉपर्टी का डेटा शामिल होता है. एक ही कॉल का इस्तेमाल करके दोनों तरह की प्रॉपर्टी के बारे में जानकारी नहीं पाई जा सकती.

Google Analytics 4 में कोई व्यू (प्रोफ़ाइल) नहीं है. इसलिए, एडमिन एपीआई से मिलने वाली खाता खास जानकारी में, व्यू (प्रोफ़ाइल) की जानकारी नहीं होती.

Google Analytics 4 खाते की खास जानकारी वाला डेटा, मौजूदा उपयोगकर्ता के लिए उपलब्ध संसाधनों और खातों/प्रॉपर्टी के डिसप्ले नेम तक ही सीमित होता है.

account.get और property.get तरीकों को कॉल करके पूरा कॉन्फ़िगरेशन डेटा वापस पाने के लिए, जवाब के account, property फ़ील्ड में मिले रिसॉर्स के नाम का इस्तेमाल करें.

एडमिन एपीआई v1 अनुरोध

GET https://analyticsadmin.googleapis.com/v1beta/accountSummaries?key=[YOUR_API_KEY]

एडमिन एपीआई v1 रिस्पॉन्स

{
  "accountSummaries": [
    {
      "name": "accountSummaries/XXXXXX",
      "account": "accounts/XXXXXX",
      "displayName": "Test",
      "propertySummaries": [
        {
          "property": "properties/XXXXXX",
          "displayName": "Test App"
        }
      ]
    },
    ...
}

मैनेजमेंट एपीआई v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/management/accountSummaries?key=[YOUR_API_KEY]

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "kind": "analytics#accountSummaries",
  "username": "XXXXXX",
  "totalResults": 9,
  "startIndex": 1,
  "itemsPerPage": 1000,
  "items": [
    {
      "id": "XXXXXX",
      "kind": "analytics#accountSummary",
      "name": "Test Account",
      "webProperties": [
        {
          "kind": "analytics#webPropertySummary",
          "id": "UA-XXXXXX",
          "name": "Test Property",
          "internalWebPropertyId": "XXXXXX",
          "level": "STANDARD",
          "websiteUrl": "XXXXXX",
          "profiles": [
            {
              "kind": "analytics#profileSummary",
              "id": "XXXXXX",
              "name": "Test Profile",
              "type": "WEB"
            }
          ]
        },
        ...
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient


def list_account_summaries(transport: str = None) -> None:
    """
    Prints summaries of all accounts accessible by the caller.

    Args:
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    results = client.list_account_summaries()

    print("Result:")
    for account_summary in results:
        print("-- Account --")
        print(f"Resource name: {account_summary.name}")
        print(f"Account name: {account_summary.account}")
        print(f"Display name: {account_summary.display_name}")
        print()
        for property_summary in account_summary.property_summaries:
            print("-- Property --")
            print(f"Property resource name: {property_summary.property}")
            print(f"Property display name: {property_summary.display_name}")
            print()


खातों की सूची बनाएं

Admin API v1 का accounts.list तरीका, कॉलर के लिए ऐक्सेस किए जा सकने वाले सभी खाते दिखाता है. यह तरीका, Management API v3 के accounts.list तरीके से मिलता-जुलता है.

एडमिन एपीआई v1 अनुरोध

GET https://analyticsadmin.googleapis.com/v1beta/accounts?key=[YOUR_API_KEY]

एडमिन एपीआई v1 रिस्पॉन्स

{
  "accounts": [
    {
      "name": "accounts/XXXXXX",
      "createTime": "2020-02-21T00:17:33.282Z",
      "updateTime": "2021-01-07T02:47:57.386Z",
      "displayName": "Test Account",
      "regionCode": "US"
    },
  ...
}

मैनेजमेंट एपीआई v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/management/accounts?key=[YOUR_API_KEY]

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "kind": "analytics#accounts",
  "username": "XXXXXX",
  "totalResults": 9,
  "startIndex": 1,
  "itemsPerPage": 1000,
  "items": [
    {
      "id": "XXXXXX",
      "kind": "analytics#account",
      "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
      "name": "Test Account",
      "permissions": {
        "effective": [
          "COLLABORATE",
          "EDIT",
          "READ_AND_ANALYZE"
        ]
      },
      "created": "2020-02-21T00:17:33.282Z",
      "updated": "2021-01-07T02:47:57.386Z",
      "childLink": {
        "type": "analytics#webproperties",
        "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties"
      }
    },
    ...
}

ध्यान दें कि Admin API v1 के रिस्पॉन्स में, लागू होने वाली उपयोगकर्ता अनुमतियों की जानकारी शामिल नहीं होती. साथ ही, इसमें उस childLink फ़ील्ड की जानकारी भी शामिल नहीं होती जो Management API v3 में मौजूद है.

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient

from accounts_get import print_account


def list_accounts(transport: str = None):
    """
    Lists the Google Analytics accounts available to the current user.

    Args:
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    results = client.list_accounts()

    print("Result:")
    for account in results:
        print_account(account)


प्रॉपर्टी मैनेज करें

प्रॉपर्टी की सूची बनाएं

Admin API v1 का properties.list वाला तरीका, कॉलर के ज़रिए ऐक्सेस की जा सकने वाली सभी Google Analytics 4 प्रॉपर्टी दिखाता है. यह तरीका, Management API v3 के webproperties.list तरीके से मिलता-जुलता है, जो ऐक्सेस की जा सकने वाली सभी Universal Analytics प्रॉपर्टी दिखाता है.

Google Analytics 4 में अब websiteUrl फ़ील्ड, प्रॉपर्टी लेवल पर मौजूद नहीं है. इसलिए, प्रॉपर्टी से जुड़ी सभी डेटा स्ट्रीम की सूची बनाने के लिए properties.dataStreams/list का इस्तेमाल करें और स्ट्रीम से जुड़ी वेबसाइट का यूआरएल पाने के लिए, defaultUri फ़ील्ड को ढूंढें.

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

एडमिन एपीआई v1 अनुरोध

GET https://analyticsadmin.googleapis.com/v1beta/properties?filter=parent:accounts/XXXXXX&key=[YOUR_API_KEY]

एडमिन एपीआई v1 रिस्पॉन्स

{
  "properties": [
    {
      "name": "properties/XXXXXX",
      "parent": "accounts/XXXXXX",
      "createTime": "2020-10-29T04:02:49.124Z",
      "updateTime": "2020-10-29T04:02:49.124Z",
      "displayName": "Test Property",
      "timeZone": "America/Los_Angeles",
      "currencyCode": "USD"
    },
    ...
}

मैनेजमेंट एपीआई v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "kind": "analytics#webproperties",
  "username": "XXXXXX",
  "totalResults": 33,
  "startIndex": 1,
  "itemsPerPage": 1000,
  "items": [
    {
      "id": "UA-XXXXXX-1",
      "kind": "analytics#webproperty",
      "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1",
      "accountId": "XXXXXX",
      "internalWebPropertyId": "XXXXXX",
      "name": "Test Account",
      "websiteUrl": "XXXXXX",
      "level": "PREMIUM",
      "profileCount": 4,
      "industryVertical": "HEALTH",
      "defaultProfileId": "XXXXXX",
      "dataRetentionTtl": "INDEFINITE",
      "dataRetentionResetOnNewActivity": true,
      "permissions": {
        "effective": [
          "COLLABORATE",
          "EDIT",
          "READ_AND_ANALYZE"
        ]
      },
      "created": "2020-02-21T00:28:47.287Z",
      "updated": "2021-01-27T21:39:22.704Z",
      "parentLink": {
        "type": "analytics#account",
        "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
      },
      "childLink": {
        "type": "analytics#profiles",
        "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-1/profiles"
      }
    },
    ...
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import ListPropertiesRequest


def run_sample():
    """Runs the sample."""
    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"
    list_properties(account_id)


def list_properties(account_id: str, transport: str = None):
    """
    Lists Google Analytics 4 properties under the specified parent account
    that are available to the current user.

    Args:
        account_id(str): The Google Analytics account ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    results = client.list_properties(
        ListPropertiesRequest(filter=f"parent:accounts/{account_id}", show_deleted=True)
    )

    print("Result:")
    for property_ in results:
        print(property_)
        print()


प्रॉपर्टी पाएं

Admin API v1 का properties.get तरीका, Google Analytics 4 प्रॉपर्टी के बारे में जानकारी दिखाता है. यह तरीका, मैनेजमेंट एपीआई v3 के webproperties.get तरीके से मिलता-जुलता है.

ध्यान दें कि Admin API का properties.get तरीका, सिर्फ़ Google Analytics 4 प्रॉपर्टी के साथ काम करता है.

एडमिन एपीआई v1 अनुरोध

GET https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?key=[YOUR_API_KEY]

एडमिन एपीआई v1 रिस्पॉन्स

{
  "name": "properties/XXXXXX",
  "parent": "accounts/XXXXXX",
  "createTime": "2021-04-30T21:32:49.804Z",
  "updateTime": "2021-04-30T21:32:49.804Z",
  "displayName": "Test Property",
  "industryCategory": "FINANCE",
  "timeZone": "America/Los_Angeles",
  "currencyCode": "USD"
}

मैनेजमेंट एपीआई v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "id": "UA-XXXXXX-3",
  "kind": "analytics#webproperty",
  "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
  "accountId": "XXXXXX",
  "internalWebPropertyId": "XXXXXX",
  "name": "Test 2",
  "websiteUrl": "YOUR-WEBSITE-URL",
  "level": "STANDARD",
  "profileCount": 0,
  "industryVertical": "FINANCE",
  "dataRetentionTtl": "MONTHS_26",
  "dataRetentionResetOnNewActivity": true,
  "permissions": {
    "effective": [
      "COLLABORATE",
      "EDIT",
      "MANAGE_USERS",
      "READ_AND_ANALYZE"
    ]
  },
  "created": "2021-05-20T05:35:51.985Z",
  "updated": "2021-05-20T05:41:39.219Z",
  "parentLink": {
    "type": "analytics#account",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
  },
  "childLink": {
    "type": "analytics#profiles",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
  }
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import IndustryCategory


def run_sample():
    """Runs the sample."""
    # TODO(developer): Replace this variable with your Google Analytics 4
    #  property ID (e.g. "123456") before running the sample.
    property_id = "YOUR-GA4-PROPERTY-ID"
    get_property(property_id)


def get_property(property_id: str, transport: str = None):
    """
    Retrieves the Google Analytics 4 property details.

    Args:
        property_id(str): The Google Analytics Property ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    property_ = client.get_property(name=f"properties/{property_id}")

    print("Result:")
    print_property(property_)


def print_property(property):
    """Prints the Google Analytics 4 property details."""
    print(f"Resource name: {property.name}")
    print(f"Parent: {property.parent}")
    print(f"Display name: {property.display_name}")
    print(f"Create time: {property.create_time}")
    print(f"Update time: {property.update_time}")
    # print(f"Delete time: {property.delete_time}")
    # print(f"Expire time: {property.expire_time}")

    if property.industry_category:
        print(f"Industry category: {IndustryCategory(property.industry_category).name}")

    print(f"Time zone: {property.time_zone}")
    print(f"Currency code: {property.currency_code}")


प्रॉपर्टी बनाएं

Admin API v1 का properties.create तरीका, एक नई Google Analytics 4 प्रॉपर्टी बनाता है. यह प्रॉपर्टी, Management API v3 के webproperties.insert तरीके से मेल खाती है.

एडमिन एपीआई v1 अनुरोध

POST https://analyticsadmin.googleapis.com/v1beta/properties?key=[YOUR_API_KEY]

{
  "displayName": "Test Property",
  "industryCategory": "AUTOMOTIVE",
  "currencyCode": "USD",
  "timeZone": "America/Los_Angeles",
  "parent": "accounts/XXXXXX"
}

एडमिन एपीआई v1 रिस्पॉन्स

{
  "name": "properties/XXXXXX",
  "parent": "accounts/XXXXXX",
  "createTime": "2021-05-20T09:16:08.458Z",
  "updateTime": "2021-05-20T09:16:08.458Z",
  "displayName": "Test Property",
  "industryCategory": "AUTOMOTIVE",
  "timeZone": "America/Los_Angeles",
  "currencyCode": "USD"
}

मैनेजमेंट एपीआई v3 अनुरोध

POST https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties?key=[YOUR_API_KEY]

{
  "name": "Test",
  "websiteUrl": "YOUR-WEBSITE-URL"
}

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "id": "UA-XXXXXX-3",
  "kind": "analytics#webproperty",
  "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
  "accountId": "XXXXXX",
  "internalWebPropertyId": "XXXXXX",
  "name": "Test",
  "websiteUrl": "YOUR-WEBSITE-URL",
  "level": "STANDARD",
  "profileCount": 0,
  "dataRetentionTtl": "MONTHS_26",
  "dataRetentionResetOnNewActivity": true,
  "permissions": {
    "effective": [
      "COLLABORATE",
      "EDIT",
      "MANAGE_USERS",
      "READ_AND_ANALYZE"
    ]
  },
  "created": "2021-05-20T05:35:51.985Z",
  "updated": "2021-05-20T05:35:51.985Z",
  "parentLink": {
    "type": "analytics#account",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
  },
  "childLink": {
    "type": "analytics#profiles",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
  }
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import Property


def run_sample():
    """Runs the sample."""

    # !!! ATTENTION !!!
    #  Running this sample may change/delete your Google Analytics account
    #  configuration. Make sure to not use the Google Analytics account ID from
    #  your production environment below.

    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"
    create_property(account_id)


def create_property(account_id: str, transport: str = None):
    """
    Creates a Google Analytics 4 property.

    Args:
        account_id(str): The Google Analytics Account ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    property_ = client.create_property(
        property=Property(
            parent=f"accounts/{account_id}",
            currency_code="USD",
            display_name="Test property",
            industry_category="OTHER",
            time_zone="America/Los_Angeles",
        )
    )

    print("Result:")
    print(property_)


प्रॉपर्टी अपडेट/पैच करें

Admin API v1 का properties.patch तरीका, Google Analytics 4 प्रॉपर्टी के कॉन्फ़िगरेशन को अपडेट करता है. यह तरीका, Management API v3 के webproperties.patch तरीके से मिलता-जुलता है.

अनुरोध के यूआरएल में, updateMask पैरामीटर पर ध्यान दें. इसमें, अपडेट किए जाने वाले फ़ील्ड की कॉमा-सेपरेटेड लिस्ट होती है. इस सूची में जो फ़ील्ड मौजूद नहीं हैं उन्हें अपडेट नहीं किया जाएगा. क्लाइंट लाइब्रेरी का इस्तेमाल करने पर, update_mask पैरामीटर, मेथड सिग्नेचर के हिस्से के तौर पर उपलब्ध होगा.

एडमिन एपीआई v1 अनुरोध

PATCH https://analyticsadmin.googleapis.com/v1beta/properties/XXXXXX?updateMask=displayName,industryCategory&key=[YOUR_API_KEY]

{
  "displayName": "New Property Name",
  "industryCategory": "FINANCE"
}

एडमिन एपीआई v1 रिस्पॉन्स

{
  "name": "properties/XXXXXX",
  "parent": "accounts/XXXXXX",
  "createTime": "2021-04-30T21:32:49.804Z",
  "updateTime": "2021-05-20T09:25:14.810Z",
  "displayName": "New Property Name",
  "industryCategory": "FINANCE",
  "timeZone": "America/Los_Angeles",
  "currencyCode": "USD"
}

मैनेजमेंट एपीआई v3 अनुरोध

PATCH https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3?key=[YOUR_API_KEY]

{
  "name": "New Property Name",
  "industryVertical": "FINANCE"
}

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "id": "UA-XXXXXX-3",
  "kind": "analytics#webproperty",
  "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3",
  "accountId": "XXXXXX",
  "internalWebPropertyId": "XXXXXX",
  "name": "New Property Name",
  "websiteUrl": "XXXXXX",
  "level": "STANDARD",
  "profileCount": 0,
  "industryVertical": "FINANCE",
  "dataRetentionTtl": "MONTHS_26",
  "dataRetentionResetOnNewActivity": true,
  "permissions": {
    "effective": [
      "COLLABORATE",
      "EDIT",
      "MANAGE_USERS",
      "READ_AND_ANALYZE"
    ]
  },
  "created": "2021-05-20T05:35:51.985Z",
  "updated": "2021-05-20T05:41:39.219Z",
  "parentLink": {
    "type": "analytics#account",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX"
  },
  "childLink": {
    "type": "analytics#profiles",
    "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/webproperties/UA-XXXXXX-3/profiles"
  }
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import Property
from google.protobuf.field_mask_pb2 import FieldMask


def run_sample():
    """Runs the sample."""

    # !!! ATTENTION !!!
    #  Running this sample may change/delete your Google Analytics account
    #  configuration. Make sure to not use the Google Analytics property ID from
    #  your production environment below.

    # TODO(developer): Replace this variable with your Google Analytics 4
    #  property ID (e.g. "123456") before running the sample.
    property_id = "YOUR-GA4-PROPERTY-ID"
    update_property(property_id)


def update_property(property_id: str, transport: str = None):
    """
    Updates the Google Analytics 4 property.

    Args:
        property_id(str): The Google Analytics Property ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    # This call updates the display name, industry category and time zone of the
    # property, as indicated by the value of the `update_mask` field.
    # The property to update is specified in the `name` field of the `Property`
    # instance.
    property_ = client.update_property(
        property=Property(
            name=f"properties/{property_id}",
            display_name="This is an updated test property",
            industry_category="GAMES",
            time_zone="America/New_York",
        ),
        update_mask=FieldMask(paths=["display_name", "time_zone", "industry_category"]),
    )

    print("Result:")
    print(property_)


उपयोगकर्ताओं को मैनेज करना

फ़िलहाल, Google Analytics Admin API, उपयोगकर्ता की अनुमति का मॉडल लागू करता है. यह Management API v3 की तरह ही होता है. हालांकि, इसमें कुछ अंतर होते हैं.

  1. आपको मैनेजमेंट एपीआई v3 में मौजूद खाते AccessBinding और प्रॉपर्टी AccessBinding संसाधनों AccountUserLink, WebPropertyUserLink और ProfileUserLink संसाधनों का इस्तेमाल करके, उपयोगकर्ता की अनुमतियों को मैनेज करने की सुविधा मिलती है.
  2. Google Analytics एडमिन एपीआई में मौजूद प्रॉपर्टी ऐक्सेस बाइंडिंग में, खाता ऐक्सेस बाइंडिंग से मिली अनुमतियां या मिली अनुमतियां शामिल नहीं होती हैं. मैनेजमेंट एपीआई के v3 वर्शन में, हर उपयोगकर्ता लिंक में एक permissions.effective कलेक्शन मौजूद था. इसमें, पहले से मौजूद और इनहेरिट की गई, दोनों अनुमतियां शामिल थीं.

AccessBinding इकाई में, एक उपयोगकर्ता (ईमेल पता) और उसे दी गई भूमिकाओं की सूची होती है. AccessBinding इकाई को बनाया, अपडेट किया या मिटाया जा सकता है.

Admin API v1 की भूमिका के नामों और Management API v3 अनुमति के नामों के बीच मैपिंग इस तरह से की गई है:

एडमिन एपीआई v1 की भूमिका मैनेजमेंट एपीआई v3 अनुमति का नाम
पहले से तय की गई भूमिकाएं/दर्शक READ_AND_ANALYZE
पहले से तय भूमिकाएं/ऐनलिस्ट दूसरे क्रिएटर्स के साथ मिलकर वीडियो बनाएं
पहले से तय भूमिकाएं/एडिटर बदलाव करें
पहले से तय भूमिकाएं/एडमिन MANAGE_USERS

predefinedRoles/no-cost-data, predefinedRoles/no-revenue-data भूमिकाओं की शुरुआत एडमिन एपीआई v1 में की गई थी और उनके लिए मैनेजमेंट एपीआई v3 में कोई मैपिंग नहीं की गई थी.

इस गाइड में, खाता-लेवल की ऐक्सेस बाइंडिंग को मैनेज करने का तरीका बताया गया है. प्रॉपर्टी-लेवल पर ऐक्सेस बाइंडिंग को मैनेज करने के लिए, उसी प्रोसेस का पालन करें. हालांकि, खाताAccessBinding की जगह प्रॉपर्टीAccessBinding के संसाधनों और तरीकों का इस्तेमाल करें.

खाता ऐक्सेस बाइंडिंग की सूची बनाएं

Admin API v1 का accounts.accessBindings.list वाला तरीका, किसी खाते की सभी ऐक्सेस बाइंडिंग की सूची बनाता है. यह तरीका, Management API v3 के accountUserLinks.list तरीके से मिलता-जुलता है.

एडमिन एपीआई v1 अनुरोध

GET https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX

एडमिन एपीआई v1 रिस्पॉन्स

{
  "accessBindings": [
    {
      "name": "accounts/XXXXXX/accessBindings/XXXXXX",
      "user": "XXXXXX",
      "roles": [
        "predefinedRoles/editor",
        "predefinedRoles/admin"
      ]
    }
  ]
}

मैनेजमेंट एपीआई v3 अनुरोध

GET https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks?key=[YOUR_API_KEY]

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "kind": "analytics#entityUserLinks",
  "totalResults": 1,
  "startIndex": 1,
  "itemsPerPage": 1000,
  "items": [
    {
      "id": "XXXXXX:XXXXXX",
      "kind": "analytics#entityUserLink",
      "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:XXXXXX",
      "entity": {
        "accountRef": {
          "id": "XXXXXX",
          "kind": "analytics#accountRef",
          "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
          "name": "This is a test account"
        }
      },
      "userRef": {
        "kind": "analytics#userRef",
        "id": "XXXXXX",
        "email": "XXXXXX"
      },
      "permissions": {
        "effective": [
          "COLLABORATE",
          "EDIT",
          "MANAGE_USERS",
          "READ_AND_ANALYZE"
        ],
        "local": [
          "EDIT",
          "MANAGE_USERS"
        ]
      }
    }
  ]
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, Admin API को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient


def run_sample():
    """Runs the sample."""
    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"
    list_account_access_bindings(account_id)


def list_account_access_bindings(account_id: str, transport: str = None):
    """
    Lists access bindings under the specified parent account.

    Args:
        account_id(str): The id of the account.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    results = client.list_access_bindings(parent=f"accounts/{account_id}")

    print("Result:")
    for access_binding in results:
        print(access_binding)
        print()


खाता ऐक्सेस बाइंडिंग अपडेट करें

Admin API v1 का accounts.accessBindings.patch तरीका, किसी खाते की ऐक्सेस बाइंडिंग को अपडेट करता है. यह तरीका, Management API v3 के accountUserLinks.update तरीके से मिलता-जुलता है.

एडमिन एपीआई v1 अनुरोध

PATCH https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings/XXXXXXXX

{
  "roles": [
    "predefinedRoles/editor",
    "predefinedRoles/admin"
  ]
}

एडमिन एपीआई v1 रिस्पॉन्स

{
  "name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
  "user": "USER-EMAIL",
  "directRoles": [
    "predefinedRoles/editor",
    "predefinedRoles/admin"
  ]
}

मैनेजमेंट एपीआई v3 अनुरोध

PUT https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX%3A104236685715552897132?key=[YOUR_API_KEY]

{
  "entity": {
    "accountRef": {
      "id": "XXXXXX"
    }
  },
  "userRef": {
    "email": "XXXXXX"
  },
  "permissions": {
    "local": [
      "EDIT",
      "MANAGE_USERS"
    ]
  }
}

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "id": "XXXXXX:104236685715552897132",
  "kind": "analytics#entityUserLink",
  "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:104236685715552897132",
  "entity": {
    "accountRef": {
      "id": "XXXXXX",
      "kind": "analytics#accountRef",
      "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
      "name": "This is a test account"
    }
  },
  "userRef": {
    "kind": "analytics#userRef",
    "id": "104236685715552897132",
    "email": "XXXXXX"
  },
  "permissions": {
    "effective": [
      "COLLABORATE",
      "EDIT",
      "MANAGE_USERS",
      "READ_AND_ANALYZE"
    ],
    "local": [
      "EDIT",
      "MANAGE_USERS"
    ]
  }
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import AccessBinding


def run_sample():
    """Runs the sample."""

    # !!! ATTENTION !!!
    #  Running this sample may change/delete your Google Analytics account
    #  configuration. Make sure to not use the Google Analytics property ID from
    #  your production environment below.

    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"

    # TODO(developer): Replace this variable with your Google Analytics
    #  account access binding ID (e.g. "123456") before running the sample.
    account_access_binding_id = "YOUR-ACCOUNT-ACCESS-BINDING-ID"

    update_account_access_binding(account_id, account_access_binding_id)


def update_account_access_binding(
    account_id: str, account_access_binding_id: str, transport: str = None
):
    """
    Updates the account access binding.

    Args:
        account_id(str): The Google Analytics Account ID.
        account_access_binding_id(str): Google Analytics account access binding ID.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    # This call updates the roles of the access binding. The access binding to
    # update is specified in the `name` field of the `AccessBinding` instance.
    access_binding = client.update_access_binding(
        access_binding=AccessBinding(
            name=f"accounts/{account_id}/accessBindings/{account_access_binding_id}",
            roles=["predefinedRoles/collaborate"],
        ),
    )

    print("Result:")
    print(access_binding)


खाते का ऐक्सेस बाइंडिंग बनाएं

Admin API v1 का accounts.accessBindings.create तरीका, किसी खाते में ऐक्सेस बाइंडिंग बनाता है. यह Manage API v3 के accountUserLinks.insert तरीके की तरह है.

एडमिन एपीआई v1 अनुरोध

POST https://analyticsadmin.googleapis.com/v1alpha/accounts/XXXXXX/accessBindings

{
  "roles": [
    "predefinedRoles/editor",
    "predefinedRoles/admin"
  ],
  "user": "USER-EMAIL"
}

एडमिन एपीआई v1 रिस्पॉन्स

{
  "name": "accounts/XXXXXX/accessBindings/XXXXXXXX",
  "user": "USER-EMAIL",
  "roles": [
    "predefinedRoles/editor",
    "predefinedRoles/admin"
  ]
}

मैनेजमेंट एपीआई v3 अनुरोध

POST https://analytics.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks?key=[YOUR_API_KEY]

{
  "entity": {
    "accountRef": {
      "id": "XXXXXX"
    }
  },
  "userRef": {
    "email": "XXXXXX"
  },
  "permissions": {
    "local": [
      "EDIT",
      "MANAGE_USERS"
    ]
  }
}

मैनेजमेंट एपीआई v3 रिस्पॉन्स

{
  "id": "XXXXXX:114236685715552897132",
  "kind": "analytics#entityUserLink",
  "selfLink": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX/entityUserLinks/XXXXXX:114236685715552897132",
  "entity": {
    "accountRef": {
      "id": "XXXXXX",
      "kind": "analytics#accountRef",
      "href": "https://www.googleapis.com/analytics/v3/management/accounts/XXXXXX",
      "name": "This is a test account"
    }
  },
  "userRef": {
    "kind": "analytics#userRef",
    "id": "114236685715552897132",
    "email": "XXXXXX"
  },
  "permissions": {
    "effective": [
      "COLLABORATE",
      "EDIT",
      "MANAGE_USERS",
      "READ_AND_ANALYZE"
    ],
    "local": [
      "EDIT",
      "MANAGE_USERS"
    ]
  }
}

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import (
    AccessBinding,
    CreateAccessBindingRequest,
)


def run_sample():
    """Runs the sample."""

    # !!! ATTENTION !!!
    #  Running this sample may change/delete your Google Analytics account
    #  configuration. Make sure to not use the Google Analytics account ID from
    #  your production environment below.

    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"

    # TODO(developer): Replace this variable with an email address of the user to
    #  link. This user will be given access to your account after running the
    #  sample.
    email_address = "TEST-EMAIL-ADDRESS"

    create_account_access_binding(account_id, email_address)


def create_account_access_binding(
    account_id: str, email_address: str, transport: str = None
):
    """
    Creates a access binding for the account.

    Args:
        account_id(str): The Google Analytics Account ID.
        email_address(str): Email address of the access binding user.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    access_binding = client.create_access_binding(
        CreateAccessBindingRequest(
            parent=f"accounts/{account_id}",
            access_binding=AccessBinding(
                user=email_address, roles=["predefinedRoles/read"]
            ),
        )
    )

    print("Result:")
    print(access_binding)


बैचिंग

Admin API v1 में Management API v3 के उलट, कई हिस्सों में बनाए गए/मिले-जुले कॉन्टेंट टाइप का इस्तेमाल करके, कई Google Analytics एपीआई कॉल के बैच नहीं बनाए जा सकते.

इसके बजाय, बैच बनाने की सुविधा, एपीआई लेवल पर साफ़ तौर पर काम करती है. Admin API v1 के लिए बैच बनाने की सुविधा के लिए यहां दिए गए तरीके:

क्लाइंट लाइब्रेरी का इस्तेमाल करके, एडमिन एपीआई v1 को कॉल करने के लिए सैंपल कोड:

Python

from google.analytics.admin import AnalyticsAdminServiceClient
from google.analytics.admin_v1alpha.types import (
    AccessBinding,
    BatchCreateAccessBindingsRequest,
    CreateAccessBindingRequest,
)


def run_sample():
    """Runs the sample."""

    # !!! ATTENTION !!!
    #  Running this sample may change/delete your Google Analytics account
    #  configuration. Make sure to not use the Google Analytics account ID from
    #  your production environment below.

    # TODO(developer): Replace this variable with your Google Analytics
    #  account ID (e.g. "123456") before running the sample.
    account_id = "YOUR-GA-ACCOUNT-ID"

    # TODO(developer): Replace this variable with an email address of the user to
    #  link. This user will be given access to your account after running the
    #  sample.
    email_address = "TEST-EMAIL-ADDRESS"

    batch_create_account_access_binding(account_id, email_address)


def batch_create_account_access_binding(
    account_id: str, email_address: str, transport: str = None
):
    """
    Creates a access binding for the account using a batch call.

    Args:
        account_id(str): The Google Analytics Account ID.
        email_address(str): Email address of the access binding user.
        transport(str): The transport to use. For example, "grpc"
            or "rest". If set to None, a transport is chosen automatically.
    """
    client = AnalyticsAdminServiceClient(transport=transport)
    response = client.batch_create_access_bindings(
        BatchCreateAccessBindingsRequest(
            parent=f"accounts/{account_id}",
            requests=[
                CreateAccessBindingRequest(
                    access_binding=AccessBinding(
                        user=email_address,
                        roles=["predefinedRoles/read"],
                    )
                )
            ],
        )
    )

    print("Result:")
    for access_binding in response.access_bindings:
        print(access_binding)
        print()


एपीआई कोटा में बदलाव

Admin API v1, Management API v3 की तुलना में कम पाबंदियों वाला कोटा उपलब्ध कराता है.

  • Admin API v1 को भेजे जाने वाले अनुरोधों की संख्या, GCP प्रोजेक्ट के लिए डिफ़ॉल्ट रूप से 600 अनुरोध प्रति मिनट तक सीमित होती है.
  • फ़िलहाल, हर GCP प्रोजेक्ट में Admin API v1 कॉल की संख्या के लिए, हर दिन की कोई सीमा तय नहीं है. ध्यान दें कि सैद्धांतिक रूप से हर दिन मिलने वाले अनुरोधों की ज़्यादा से ज़्यादा संख्या, अब भी अनुरोध प्रति मिनट कोटे के हिसाब से तय होती है.
  • हर दिन कॉन्टेंट लिखने की संख्या की सीमा हटा दी गई है.