مهاجرت به Google Analytics Admin API v1، مهاجرت به Google Analytics Admin API v1

هر دو کانال آلفا و بتا از API همچنان پشتیبانی می شوند. کانال بتا شامل زیرمجموعه‌ای از ویژگی‌های موجود در آلفا است که پایدار در نظر گرفته می‌شوند و انتظار نمی‌رود در آینده تغییر قابل‌توجهی داشته باشند. ویژگی های جدید پس از بلوغ به بتا اضافه خواهند شد.

این سند دستورالعمل‌هایی در مورد نحوه انتقال کدهای موجود از API مدیریت Google Analytics نسخه 3 به Google Analytics Admin API v1 ارائه می‌کند و یک نمای کلی از تفاوت‌های کلیدی بین این دو API ارائه می‌دهد.

چرا باید مهاجرت کنم؟

اگر برنامه شما نیاز به ایجاد یا پیکربندی ویژگی Google Analytics 4 دارد، باید از Admin API v1 استفاده کند. Management API v3 فقط با ویژگی های Universal Analytics کار می کند و Admin API v1 فقط با ویژگی های Google Analytics 4 کار می کند.

پیش نیازها

شما باید با خواندن راهنمای شروع سریع با اصول اولیه Admin API v1 آشنا شوید.

شروع کنید

برای شروع، یک ویژگی Google Analytics 4 را آماده می‌کنید، Admin API v1 را فعال می‌کنید و سپس یک کتابخانه مشتری API مناسب برای پلتفرم خود راه‌اندازی می‌کنید.

یک ویژگی Google Analytics 4 آماده کنید

قبل از اینکه کد خود را برای پشتیبانی از Admin API v1 منتقل کنید، باید وب سایت خود را برای استفاده از ویژگی Google Analytics 4 منتقل کنید .

API را فعال کنید

برای فعال کردن خودکار Admin API v1 در Google Cloud Project انتخابی خود، روی این دکمه کلیک کنید.

Google Analytics Admin API را فعال کنید

از کتابخانه مشتری استفاده کنید

یک کتابخانه مشتری نصب کنید

اگر از کتابخانه کلاینت استفاده می کنید، باید کتابخانه کلاینت Admin API v1 را برای زبان برنامه نویسی خود نصب کنید.

یک کتابخانه مشتری راه اندازی کنید

کتابخانه های سرویس گیرنده Admin API v1 برای شروع سریع شما طراحی شده اند. به‌طور پیش‌فرض، کتابخانه‌های سرویس گیرنده سعی می‌کنند به طور خودکار اعتبار حساب سرویس شما را پیدا کنند .

یک راه آسان برای ارائه اعتبار حساب سرویس این است که با تنظیم متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS ، مشتری API از مقدار این متغیر برای یافتن فایل JSON کلید حساب سرویس استفاده می کند.

به عنوان مثال، می توانید با اجرای دستور زیر و استفاده از مسیر فایل JSON حساب سرویس، اعتبار حساب سرویس را تنظیم کنید:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

در زیر قطعه‌های کدی که معمولاً برای مقداردهی اولیه کتابخانه‌های کلاینت Admin API v1 استفاده می‌شوند، آمده است.

جاوا

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

پایتون

client = AlphaAnalyticsAdminClient()

.خالص

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();

به جای استفاده از یک متغیر محیطی، همچنین می‌توان اطلاعات اعتبارنامه را به طور صریح در طول مقداردهی اولیه به یک نمونه مشتری API ارسال کرد.

اگر از کتابخانه مشتری استفاده نمی کنید

اگر از Management API v3 بدون کتابخانه سرویس گیرنده استفاده می کنید و می خواهید این کار را با Admin API v1 ادامه دهید، همچنان می توانید از اعتبارنامه خود استفاده کنید.

شما باید از نقطه پایانی و سند کشف HTTP جدید ارائه شده توسط Admin API استفاده کنید:

اگر کد شما از یک سند Discovery استفاده می کند، باید آن را به سند کشف ارائه شده توسط Admin API v1 به روز کنید:

پس از به‌روزرسانی نقطه پایانی، باید با ساختار درخواست و مفاهیم جدید Admin API آشنا شوید تا بتوانید درخواست JSON خود را به‌روزرسانی کنید.

وظایف مشترک

مدیریت حساب ها

Admin API v1 مجموعه‌ای از روش‌های مدیریت دارایی و حساب Google Analytics را ارائه می‌کند که با مدیریت API نسخه 3 قابل مقایسه است. علاوه بر این، Admin API v1 عملکردی را برای تهیه ، حذف ، به‌روزرسانی حساب‌های Google Analytics معرفی می‌کند.

  • فقط ویژگی‌های Google Analytics 4 توسط روش‌های مدیریت دارایی Admin API v1 پشتیبانی می‌شوند.

  • مفهوم views (پروفایل) در Admin API v1 وجود ندارد.

  • از آنجایی که جریان های داده در Google Analytics 4 معرفی شدند، اطلاعات خاصی دیگر در سطح دارایی وجود ندارد. به عنوان مثال، فیلد websiteUrl به جای اینکه بخشی از شی ویژگی باشد، اکنون در موجودیت DataStream وجود دارد.

فهرست خلاصه های حساب

روش accountSummaries در Admin API خلاصه‌های سبکی از همه حساب‌های قابل دسترسی تماس‌گیرنده را برمی‌گرداند، شبیه به روش accountSummaries مدیریت API نسخه 3 .

یک تمایز مهم این است که Admin API v1 فقط اطلاعات مربوط به ویژگی‌های Google Analytics 4 را برمی‌گرداند، در حالی که پاسخ‌های Management API v3 حاوی داده‌هایی درباره ویژگی‌های ایجاد شده با Universal Analytics است. بازیابی اطلاعات در مورد هر دو نوع ویژگی با استفاده از یک تماس امکان پذیر نیست.

از آنجایی که هیچ نما (نمایه) در Google Analytics 4 وجود ندارد، خلاصه‌های حساب بازگردانده شده توسط Admin API حاوی اطلاعات نمایش (نمایه) نیستند.

داده‌های خلاصه حساب Google Analytics 4 محدود به منابع و نام‌های نمایشی حساب‌ها/ویژگی‌های موجود برای کاربر فعلی است.

برای بازیابی اطلاعات کامل پیکربندی با فراخوانی متدهای account.get و property.get از نام منابع برگردانده شده در account ، فیلدهای property پاسخ خلاصه ها استفاده کنید.

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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"
            }
          ]
        },
        ...
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


فهرست حساب ها

روش accounts.list Admin API v1 همه حساب‌های قابل دسترسی تماس‌گیرنده را برمی‌گرداند، مشابه روش accounts.list مدیریت API نسخه 3 .

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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 که در مدیریت API نسخه 3 وجود داشت، نیست.

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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)


مدیریت خواص

لیست خواص

متد properties.list Admin API v1 همه ویژگی‌های Google Analytics 4 را که توسط تماس‌گیرنده قابل دسترسی است، برمی‌گرداند، مشابه روش webproperties.list مدیریت API v3 که همه ویژگی‌های قابل دسترسی Universal Analytics را برمی‌گرداند.

از آنجایی که فیلد websiteUrl دیگر در سطح دارایی در Google Analytics 4 وجود ندارد، از properties.dataStreams/list برای فهرست کردن همه جریان‌های داده مرتبط با ویژگی استفاده کنید و برای بازیابی URL وب‌سایت مرتبط با یک جریان، قسمت defaultUri را جستجو کنید.

به پارامتر filter در URL درخواست properties.list توجه کنید. مقدار پارامتر حاوی عبارتی برای فیلتر کردن نتایج درخواست است و می‌تواند برای فهرست کردن ویژگی‌های مرتبط با شناسه حساب Google Analytics داده شده یا پروژه Firebase مرتبط استفاده شود.

درخواست Admin API v1

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

پاسخ Admin API 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"
    },
    ...
}

درخواست مدیریت API v3

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

مدیریت API 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"
      }
    },
    ...
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


ملکی بدست آورید

متد properties.get Admin API v1 اطلاعات مربوط به ویژگی Google Analytics 4 را برمی گرداند، شبیه به روش webproperties.get مدیریت API v3 .

توجه داشته باشید که روش properties.get Admin API فقط از ویژگی های Google Analytics 4 پشتیبانی می کند.

درخواست Admin API v1

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

پاسخ Admin API 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"
}

درخواست مدیریت API v3

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

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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


ایجاد ملک

روش properties.create Admin API v1 یک ویژگی Google Analytics 4 جدید شبیه به روش webproperties.insert در Management API v3 ایجاد می‌کند.

درخواست Admin API 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"
}

پاسخ Admin API 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"
}

درخواست مدیریت API v3

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

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

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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_)


به روز رسانی/وصله خاصیت

روش properties.patch Admin API v1 پیکربندی یک ویژگی Google Analytics 4 را به‌روزرسانی می‌کند، شبیه به روش webproperties.patch مدیریت API v3 .

به پارامتر updateMask در URL درخواست توجه کنید که حاوی لیست فیلدهایی است که باید به‌روزرسانی شوند. فیلدهایی که در این لیست وجود ندارند به روز نمی شوند. در صورت استفاده از کتابخانه مشتری، پارامتر update_mask به عنوان بخشی از امضای متد در دسترس خواهد بود.

درخواست Admin API v1

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

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

پاسخ Admin API 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"
}

درخواست مدیریت API 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"
}

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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 در حال حاضر یک مدل مجوزهای کاربر مشابه مدیریت API v3 را اجرا می کند، اما با چند تفاوت.

  1. شما با استفاده از AccessBinding حساب و منابع AccessBinding به جای منابع AccountUserLink ، WebPropertyUserLink و ProfileUserLink در مدیریت API نسخه 3، مجوزهای کاربر را با Google Analytics Admin API مدیریت می‌کنید.
  2. الزام‌آوری‌های دسترسی به دارایی در Google Analytics Admin API شامل مجوزهای ضمنی یا مجوزهای به ارث رسیده از اتصالات دسترسی به حساب نمی‌شود. در مدیریت API نسخه 3، هر پیوند کاربر حاوی یک مجموعه permissions.effective بود که شامل مجوزهای ضمنی و ارثی بود.

یک موجودیت AccessBinding شامل یک کاربر (آدرس ایمیل) و لیستی از نقش های اعطا شده به کاربر است. یک موجودیت AccessBinding می تواند ایجاد، به روز یا حذف شود.

نگاشت بین نام نقش های Admin API v1 و نام های مجوز Management API v3 به شرح زیر است:

نقش Admin API v1 نام مجوز مدیریت API v3
نقش های از پیش تعریف شده / بیننده READ_AND_ANALYZE
نقش/ تحلیلگر از پیش تعریف شده همکاری
Roles/Editor از پیش تعریف شده ویرایش کنید
Roles/Admin از پیش تعریف شده مدیریت کاربران

Roles predefinedRoles/no-cost-data ، predefinedRoles/no-revenue-data در Admin API v1 معرفی شدند و هیچ نقشه متناظری در Management API نسخه 3 ندارند.

این راهنما نحوه مدیریت اتصالات دسترسی در سطح حساب را نشان می دهد. برای مدیریت اتصالات دسترسی در سطح ویژگی، همان فرآیند را دنبال کنید اما از منابع و روش‌های AccessBinding ویژگی به جای حساب AccessBinding استفاده کنید.

اتصالات دسترسی به حساب را فهرست کنید

روش accounts.accessBindings.list Admin API v1 همه اتصالات دسترسی در یک حساب را فهرست می‌کند، مشابه روش accountUserLinks.list مدیریت API v3 .

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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 با استفاده از کتابخانه های مشتری:

پایتون

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()


اتصالات دسترسی به حساب را به روز کنید

روش accounts.accessBindings.patch Admin API v1 یک اتصال دسترسی یک حساب را به‌روزرسانی می‌کند، شبیه به روش accountUserLinks.update مدیریت API v3 .

درخواست Admin API v1

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

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

پاسخ Admin API v1

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

درخواست مدیریت API 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"
    ]
  }
}

مدیریت API 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"
    ]
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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)


اتصالات دسترسی به حساب را ایجاد کنید

روش accounts.accessBindings.create Admin API v1 یک اتصال دسترسی در یک حساب ایجاد می‌کند، شبیه به روش accountUserLinks.insert مدیریت API v3 .

درخواست Admin API v1

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

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

پاسخ Admin API v1

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

درخواست مدیریت API 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"
    ]
  }
}

مدیریت API 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"
    ]
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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 برخلاف مدیریت API نسخه 3 از چند تماس API Google Analytics با استفاده از نوع محتوای چندبخشی/مختلط پشتیبانی نمی کند.

در عوض، دسته‌بندی به صراحت در سطح API پشتیبانی می‌شود. روش‌های زیر Admin API v1 از عملکرد دسته‌ای پشتیبانی می‌کنند:

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


سهمیه API تغییر می کند

Admin API v1 سهمیه های محدودتری را در مقایسه با Management API v3 معرفی می کند.

  • تعداد درخواست‌ها به Admin API v1 به طور پیش‌فرض برای یک پروژه GCP به ۶۰۰ درخواست در دقیقه محدود شده است.
  • در حال حاضر، هیچ محدودیت روزانه برای تعداد تماس‌های Admin API v1 در هر پروژه GCP وجود ندارد . توجه داشته باشید که حداکثر نظری تعداد درخواست ها در روز همچنان با سهمیه درخواست در دقیقه محدود است.
  • محدودیت جداگانه برای تعداد عملیات نوشتن در روز حذف شده است.
،

هر دو کانال آلفا و بتا از API همچنان پشتیبانی می شوند. کانال بتا شامل زیرمجموعه‌ای از ویژگی‌های موجود در آلفا است که پایدار در نظر گرفته می‌شوند و انتظار نمی‌رود در آینده تغییر قابل‌توجهی داشته باشند. ویژگی های جدید پس از بلوغ به بتا اضافه خواهند شد.

این سند دستورالعمل‌هایی در مورد نحوه انتقال کدهای موجود از API مدیریت Google Analytics نسخه 3 به Google Analytics Admin API v1 ارائه می‌کند و یک نمای کلی از تفاوت‌های کلیدی بین این دو API ارائه می‌دهد.

چرا باید مهاجرت کنم؟

اگر برنامه شما نیاز به ایجاد یا پیکربندی ویژگی Google Analytics 4 دارد، باید از Admin API v1 استفاده کند. Management API v3 فقط با ویژگی های Universal Analytics کار می کند و Admin API v1 فقط با ویژگی های Google Analytics 4 کار می کند.

پیش نیازها

شما باید با خواندن راهنمای شروع سریع با اصول اولیه Admin API v1 آشنا شوید.

شروع کنید

برای شروع، یک ویژگی Google Analytics 4 را آماده می‌کنید، Admin API v1 را فعال می‌کنید و سپس یک کتابخانه مشتری API مناسب برای پلتفرم خود راه‌اندازی می‌کنید.

یک ویژگی Google Analytics 4 آماده کنید

قبل از اینکه کد خود را برای پشتیبانی از Admin API v1 منتقل کنید، باید وب سایت خود را برای استفاده از ویژگی Google Analytics 4 منتقل کنید .

API را فعال کنید

برای فعال کردن خودکار Admin API v1 در پروژه Google Cloud انتخابی خود، روی این دکمه کلیک کنید.

Google Analytics Admin API را فعال کنید

از کتابخانه مشتری استفاده کنید

یک کتابخانه مشتری نصب کنید

اگر از کتابخانه کلاینت استفاده می کنید، باید کتابخانه کلاینت Admin API v1 را برای زبان برنامه نویسی خود نصب کنید.

یک کتابخانه مشتری راه اندازی کنید

کتابخانه های سرویس گیرنده Admin API v1 برای شروع سریع شما طراحی شده اند. به‌طور پیش‌فرض، کتابخانه‌های سرویس گیرنده سعی می‌کنند به طور خودکار اعتبار حساب سرویس شما را پیدا کنند .

یک راه آسان برای ارائه اعتبار حساب سرویس این است که با تنظیم متغیر محیطی GOOGLE_APPLICATION_CREDENTIALS ، مشتری API از مقدار این متغیر برای یافتن فایل JSON کلید حساب سرویس استفاده می کند.

به عنوان مثال، می توانید با اجرای دستور زیر و استفاده از مسیر فایل JSON حساب سرویس، اعتبار حساب سرویس را تنظیم کنید:

export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

در زیر قطعه‌های کدی که معمولاً برای مقداردهی اولیه کتابخانه‌های کلاینت Admin API v1 استفاده می‌شوند، آمده است.

جاوا

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

پایتون

client = AlphaAnalyticsAdminClient()

.خالص

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();

به جای استفاده از یک متغیر محیطی، همچنین می‌توان اطلاعات اعتبارنامه را به طور صریح در طول مقداردهی اولیه به یک نمونه مشتری API ارسال کرد.

اگر از کتابخانه مشتری استفاده نمی کنید

اگر از Management API v3 بدون کتابخانه سرویس گیرنده استفاده می کنید و می خواهید این کار را با Admin API v1 ادامه دهید، همچنان می توانید از اعتبارنامه خود استفاده کنید.

شما باید از نقطه پایانی و سند کشف HTTP جدید ارائه شده توسط Admin API استفاده کنید:

اگر کد شما از یک سند Discovery استفاده می کند، باید آن را به سند کشف ارائه شده توسط Admin API v1 به روز کنید:

پس از به‌روزرسانی نقطه پایانی، باید با ساختار درخواست و مفاهیم جدید Admin API آشنا شوید تا بتوانید درخواست JSON خود را به‌روزرسانی کنید.

وظایف مشترک

مدیریت حساب ها

Admin API v1 مجموعه‌ای از روش‌های مدیریت دارایی و حساب Google Analytics را ارائه می‌کند که با مدیریت API نسخه 3 قابل مقایسه است. علاوه بر این، Admin API v1 عملکردی را برای تهیه ، حذف ، به‌روزرسانی حساب‌های Google Analytics معرفی می‌کند.

  • فقط ویژگی‌های Google Analytics 4 توسط روش‌های مدیریت دارایی Admin API v1 پشتیبانی می‌شوند.

  • مفهوم views (پروفایل) در Admin API v1 وجود ندارد.

  • از آنجایی که جریان های داده در Google Analytics 4 معرفی شدند، اطلاعات خاصی دیگر در سطح دارایی وجود ندارد. به عنوان مثال، فیلد websiteUrl به جای اینکه بخشی از شی ویژگی باشد، اکنون در موجودیت DataStream وجود دارد.

فهرست خلاصه های حساب

روش accountSummaries در Admin API خلاصه‌های سبکی از همه حساب‌های قابل دسترسی تماس‌گیرنده را برمی‌گرداند، شبیه به روش accountSummaries مدیریت API نسخه 3 .

یک تمایز مهم این است که Admin API v1 فقط اطلاعات مربوط به ویژگی‌های Google Analytics 4 را برمی‌گرداند، در حالی که پاسخ‌های Management API v3 حاوی داده‌هایی درباره ویژگی‌های ایجاد شده با Universal Analytics است. بازیابی اطلاعات در مورد هر دو نوع ویژگی با استفاده از یک تماس امکان پذیر نیست.

از آنجایی که هیچ نما (نمایه) در Google Analytics 4 وجود ندارد، خلاصه‌های حساب بازگردانده شده توسط Admin API حاوی اطلاعات نمایش (نمایه) نیستند.

داده‌های خلاصه حساب Google Analytics 4 محدود به منابع و نام‌های نمایشی حساب‌ها/ویژگی‌های موجود برای کاربر فعلی است.

برای بازیابی اطلاعات کامل پیکربندی با فراخوانی متدهای account.get و property.get از نام منابع برگردانده شده در account ، فیلدهای property پاسخ خلاصه ها استفاده کنید.

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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"
            }
          ]
        },
        ...
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


فهرست حساب ها

روش accounts.list Admin API v1 همه حساب‌های قابل دسترسی تماس‌گیرنده را برمی‌گرداند، مشابه روش accounts.list مدیریت API نسخه 3 .

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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 که در مدیریت API نسخه 3 وجود داشت، نیست.

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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)


مدیریت خواص

لیست خواص

متد properties.list Admin API v1 همه ویژگی‌های Google Analytics 4 را که توسط تماس‌گیرنده قابل دسترسی است، برمی‌گرداند، مشابه روش webproperties.list مدیریت API v3 که همه ویژگی‌های قابل دسترسی Universal Analytics را برمی‌گرداند.

از آنجایی که فیلد websiteUrl دیگر در سطح دارایی در Google Analytics 4 وجود ندارد، از properties.dataStreams/list برای فهرست کردن همه جریان‌های داده مرتبط با ویژگی استفاده کنید و برای بازیابی URL وب‌سایت مرتبط با یک جریان، قسمت defaultUri را جستجو کنید.

به پارامتر filter در URL درخواست properties.list توجه کنید. مقدار پارامتر حاوی عبارتی برای فیلتر کردن نتایج درخواست است و می‌تواند برای فهرست کردن ویژگی‌های مرتبط با شناسه حساب Google Analytics داده شده یا پروژه Firebase مرتبط استفاده شود.

درخواست Admin API v1

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

پاسخ Admin API 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"
    },
    ...
}

درخواست مدیریت API v3

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

مدیریت API 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"
      }
    },
    ...
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


ملکی بدست آورید

متد properties.get Admin API v1 اطلاعات مربوط به ویژگی Google Analytics 4 را برمی گرداند، شبیه به روش webproperties.get مدیریت API v3 .

توجه داشته باشید که روش properties.get Admin API فقط از ویژگی های Google Analytics 4 پشتیبانی می کند.

درخواست Admin API v1

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

پاسخ Admin API 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"
}

درخواست مدیریت API v3

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

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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


ایجاد ملک

روش properties.create Admin API v1 یک ویژگی Google Analytics 4 جدید شبیه به روش webproperties.insert در Management API v3 ایجاد می‌کند.

درخواست Admin API 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"
}

پاسخ Admin API 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"
}

درخواست مدیریت API v3

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

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

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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_)


به روز رسانی/وصله خاصیت

روش properties.patch Admin API v1 پیکربندی یک ویژگی Google Analytics 4 را به‌روزرسانی می‌کند، شبیه به روش webproperties.patch مدیریت API v3 .

به پارامتر updateMask در URL درخواست توجه کنید که حاوی لیست فیلدهایی است که باید به‌روزرسانی شوند. فیلدهایی که در این لیست وجود ندارند به روز نمی شوند. در صورت استفاده از کتابخانه مشتری، پارامتر update_mask به عنوان بخشی از امضای متد در دسترس خواهد بود.

درخواست Admin API v1

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

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

پاسخ Admin API 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"
}

درخواست مدیریت API 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"
}

مدیریت API 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"
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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 در حال حاضر یک مدل مجوزهای کاربر مشابه مدیریت API v3 را اجرا می کند، اما با چند تفاوت.

  1. شما با استفاده از AccessBinding حساب و منابع AccessBinding به جای منابع AccountUserLink ، WebPropertyUserLink و ProfileUserLink در مدیریت API نسخه 3، مجوزهای کاربر را با Google Analytics Admin API مدیریت می‌کنید.
  2. الزام‌آوری‌های دسترسی به دارایی در Google Analytics Admin API شامل مجوزهای ضمنی یا مجوزهای به ارث رسیده از اتصالات دسترسی به حساب نمی‌شود. در Management API نسخه 3، هر پیوند کاربر حاوی یک مجموعه permissions.effective بود که شامل مجوزهای ضمنی و ارثی بود.

یک موجودیت AccessBinding شامل یک کاربر (آدرس ایمیل) و لیستی از نقش های اعطا شده به کاربر است. یک موجودیت AccessBinding می تواند ایجاد، به روز یا حذف شود.

نگاشت بین نام نقش های Admin API v1 و نام های مجوز Management API v3 به شرح زیر است:

نقش Admin API v1 نام مجوز مدیریت API v3
نقش های از پیش تعریف شده / بیننده READ_AND_ANALYZE
نقش/ تحلیلگر از پیش تعریف شده همکاری
Roles/Editor از پیش تعریف شده ویرایش کنید
Roles/Admin از پیش تعریف شده مدیریت کاربران

Roles predefinedRoles/no-cost-data ، predefinedRoles/no-revenue-data در Admin API v1 معرفی شدند و هیچ نقشه متناظری در Management API نسخه 3 ندارند.

این راهنما نحوه مدیریت اتصالات دسترسی در سطح حساب را نشان می دهد. برای مدیریت اتصالات دسترسی در سطح ویژگی، همان فرآیند را دنبال کنید اما از منابع و روش‌های AccessBinding ویژگی به جای حساب AccessBinding استفاده کنید.

اتصالات دسترسی به حساب را فهرست کنید

روش accounts.accessBindings.list Admin API v1 همه اتصالات دسترسی در یک حساب را فهرست می‌کند، مشابه روش accountUserLinks.list مدیریت API v3 .

درخواست Admin API v1

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

پاسخ Admin API v1

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

درخواست مدیریت API v3

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

مدیریت API 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 با استفاده از کتابخانه های مشتری:

پایتون

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()


اتصالات دسترسی به حساب را به روز کنید

روش accounts.accessBindings.patch Admin API v1 یک اتصال دسترسی یک حساب را به‌روزرسانی می‌کند، شبیه به روش accountUserLinks.update مدیریت API v3 .

درخواست Admin API v1

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

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

پاسخ Admin API v1

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

درخواست مدیریت API 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"
    ]
  }
}

مدیریت API 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"
    ]
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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)


اتصالات دسترسی به حساب را ایجاد کنید

روش accounts.accessBindings.create Admin API v1 یک اتصال دسترسی در یک حساب ایجاد می‌کند، شبیه به روش accountUserLinks.insert مدیریت API v3 .

درخواست Admin API v1

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

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

پاسخ Admin API v1

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

درخواست مدیریت API 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"
    ]
  }
}

مدیریت API 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"
    ]
  }
}

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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 برخلاف مدیریت API نسخه 3 از چند تماس API Google Analytics با استفاده از نوع محتوای چندبخشی/مختلط پشتیبانی نمی کند.

در عوض، دسته‌بندی به صراحت در سطح API پشتیبانی می‌شود. روش‌های زیر Admin API v1 از عملکرد دسته‌ای پشتیبانی می‌کنند:

کد نمونه برای فراخوانی Admin API v1 با استفاده از کتابخانه های مشتری:

پایتون

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()


سهمیه API تغییر می کند

Admin API v1 سهمیه های محدودتری را در مقایسه با Management API v3 معرفی می کند.

  • تعداد درخواست‌ها به Admin API v1 به طور پیش‌فرض برای یک پروژه GCP به ۶۰۰ درخواست در دقیقه محدود شده است.
  • در حال حاضر، هیچ محدودیت روزانه برای تعداد تماس‌های Admin API v1 در هر پروژه GCP وجود ندارد . توجه داشته باشید که حداکثر نظری تعداد درخواست ها در روز همچنان با سهمیه درخواست در دقیقه محدود است.
  • محدودیت جداگانه برای تعداد عملیات نوشتن در روز حذف شده است.