اعلانهای Pub/Sub را تنظیم کنید، اعلانهای Pub/Sub را تنظیم کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
اعلانهای Pub/Sub راهی برای دریافت هشدارهای مربوط به دستگاههای ثبتنامشده جدید، گزارشهای دستگاه، و فرمانهای اخیراً صادر شده برای شما فراهم میکنند.
برای تنظیم اعلانهای Pub/Sub، باید Pub/Sub API را فعال کنید و یک موضوع ایجاد کنید. برای دریافت پیام های منتشر شده در یک موضوع، یک اشتراک برای آن موضوع ایجاد کنید. اشتراک موضوع را به یک برنامه مشترک متصل می کند که پیام های منتشر شده برای موضوع را دریافت و پردازش می کند. پس از ایجاد اشتراک، باید به Android Device Policy اجازه انتشار در موضوع خود بدهید.
serviceAccount:android-cloud-policy@system.gserviceaccount.com را به members اضافه کنید.
role روی roles/pubsub.publisher تنظیم کنید.
5. شرکت را برای پشتیبانی از اعلان ها به روز کنید
اگر اعلانی که میخواهید پشتیبانی کنید ENTERPRISE_UPGRADE است که همیشه پشتیبانی میشود، از این مرحله رد شوید.
برای اتصال اعلانهای یک شرکت به موضوعی که ایجاد کردهاید، با enterprises.patch تماس بگیرید و پارامترهای زیر را مشخص کنید:
pubsubTopic : نام میخانه/موضوع فرعی شما در فرم projects/{project}/topics/{topic} .
enabledNotificationTypes : شامل تمام انواع اعلان هایی که می خواهید دریافت کنید.
6. از Pub/Sub API برای دریافت اعلان ها استفاده کنید
یک اشتراک می تواند از مکانیزم فشار یا کشش برای تحویل پیام استفاده کند. دستورالعملها و دستورالعملهای نحوه دریافت اعلانها از طریق هر دوی این مکانیسمها در راهنمای مشترک Pub/Sub موجود است.
فرمت پیام
پیام ها به شکل PubsubMessage هستند. فیلد attributes پیام حاوی یک مشخصه با کلید notificationType و مقدار تنظیم شده برای نوع اعلانی است که پیام را راهاندازی میکند (مثلاً ENROLLMENT ). فیلد data پیام حاوی نمایش JSON از منبعی است که به روز شده است و به عنوان رشته UTF-8 کدگذاری شده است. اعلان ها و انواع منابع مربوط به آنها به شرح زیر است:
اعلانهای COMMAND از نوع منبع Operation استفاده میکنند.
اعلانهای USAGE_LOGS از نوع منبع UsageLogEvent استفاده میکنند.
اعلانهای ENROLLMENT و STATUS_REPORT از نوع منبع Device استفاده میکنند.
هنگام تنظیم pubsubTopic در یک شرکت، یک پیام اولیه با notificationType که روی test تنظیم شده است منتشر می شود. این پیام برای تأیید اینکه سیاست دستگاه Android دارای مجوز انتشار در مورد موضوع است ارسال شده است و باید نادیده گرفته شود.
تأخیر مورد انتظار
انتظار می رود رویدادهای ارتقاء سازمانی فورا ارسال شوند.
رویدادهای دستگاه محلی که پشت سر هم اتفاق میافتند دستهبندی میشوند و در یک پیام Pub/Sub به EMM گزارش میشوند.
نوع رویداد
تأخیر مورد انتظار بین رویداد روی دستگاه و اعلان EMM مربوطه 1
تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-25 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003ePub/Sub notifications alert you about device enrollments, reports, and commands issued through the Android Management API.\u003c/p\u003e\n"],["\u003cp\u003eTo set up, you'll need to enable the Pub/Sub API, create a topic and subscription, and grant Android Device Policy publishing rights.\u003c/p\u003e\n"],["\u003cp\u003eEnterprises can be configured to receive specific notification types like enrollment, status reports, and commands by updating their settings.\u003c/p\u003e\n"],["\u003cp\u003eMessages are delivered via Pub/Sub and contain information about the event, including the notification type and resource details.\u003c/p\u003e\n"],["\u003cp\u003eDevice events are often batched into a single Pub/Sub message, and latency between event and notification can vary but is generally within a predictable timeframe.\u003c/p\u003e\n"]]],["To utilize Pub/Sub notifications for Android Management API, first, enable the Pub/Sub API and create a topic, noting its name. Next, create a subscription for the topic. Grant `android-cloud-policy@system.gserviceaccount.com` Pub/Sub Publisher permission. Update your enterprise via `enterprises.patch` to include the topic name and desired notification types (ENROLLMENT, STATUS_REPORT, COMMAND). Finally, use the Pub/Sub API to retrieve notifications, which contain attributes like `notificationType` and a JSON resource in the `data` field. Existing EMM partners need to register their Cloud project.\n"],null,["# Set up Pub/Sub notifications\n\n| **Note:** Existing EMM partners with [programmatically created ESAs](/android/work/play/emm-api/create-enterprise#create_enterprise_service_accounts_programmatically) need to register their preferred Cloud project with Google before setting up Pub/Sub notifications for Android Management API. For more details, see the [Guide for existing EMM partners](/android/management/existing-emms#set_up_pubsub_notifications).\n\nPub/Sub notifications provide a way for you to receive alerts about newly\nenrolled devices, device reports, and recently issued [commands](/android/management/introduction#commands).\n\nTo set up Pub/Sub notifications, you need to enable the Pub/Sub API and create a\n*topic*. To receive messages published to a topic, create a subscription to that\ntopic. The subscription connects the topic to a subscriber application that\nreceives and processes messages published to the topic. After you create a\nsubscription, you need to grant Android Device Policy permission to publish to\nyour topic.\n\n1. Enable the Pub/Sub API for your project\n------------------------------------------\n\nFor instructions on how to enable the Pub/Sub API, see the\n[console quickstart guide](https://cloud.google.com/pubsub/docs/quickstart-console#before-you-begin). Ensure that you select the **same project** that\nthe [Android Management API is enabled for](/android/management/service-account#enable_the_android_management_api).\n\n2. Create a topic\n-----------------\n\nAfter enabling the API, you need to create a topic that Android Device Policy\ncan publish notifications to. There are two ways to create a topic:\n\na. Manually in the [Google Cloud console](https://cloud.google.com/pubsub/docs/quickstart-console#create_a_topic). \n\nb. Using the Pub/Sub API (see [create topic method](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.topics/create)).\n\nAfter creating a topic, take note of the topic name.\n\n3. Create a subscription\n------------------------\n\nA subscription captures the stream of messages published to a given topic. There\nare two ways to create a subscription:\n\na. Manually in the [Google Cloud console](https://cloud.google.com/pubsub/docs/quickstart-console#add_a_subscription). \n\nb. Using the Pub/Sub API (see [create subscription method](https://cloud.google.com/pubsub/docs/reference/rest/v1/projects.subscriptions/create)).\n\n4. Grant Android Device Policy the right to publish to your topic\n-----------------------------------------------------------------\n\nYou need to give android-cloud-policy@system.gserviceaccount.com permission to\npublish to your topic. There are two ways to grant publishing rights:\n\na. Manually in the [Google Cloud console](https://cloud.google.com/pubsub/docs/access_control#console).\n\n- Add android-cloud-policy@system.gserviceaccount.com as a member to your topic.\n- Click **Select a role** \\\u003e **Pub/Sub** \\\u003e **Pub/Sub Publisher**.\n\nb. Using the Pub/Sub API (see [Controlling access through the IAM API](https://cloud.google.com/pubsub/docs/access_control#api))\n\n- Add `serviceAccount:android-cloud-policy@system.gserviceaccount.com` to `members`.\n- Set `role` to `roles/pubsub.publisher`.\n\n5. Update enterprise to support notifications\n---------------------------------------------\n\nSkip this step if the notification you want to support is `ENTERPRISE_UPGRADE`,\nwhich is always supported.\n\nTo connect notifications about an enterprise to the topic you created, call\n[`enterprises.patch`](/android/management/reference/rest/v1/enterprises/patch)\nand specify the following parameters:\n\n- `pubsubTopic`: The name of your pub/sub topic in the form `projects/{project}/topics/{topic}`.\n- `enabledNotificationTypes`: Include all the notification [types](/android/management/reference/rest/v1/enterprises#NotificationType) you want to receive.\n\n6. Use the Pub/Sub API to get notifications\n-------------------------------------------\n\nA subscription can use either the push or pull mechanism for message delivery.\nGuidelines and directions on how to receive notifications through both of these\nmechanisms are available in the [Pub/Sub Subscriber Guide](https://cloud.google.com/pubsub/docs/subscriber).\n\nMessage format\n--------------\n\nMessages take the form of a [PubsubMessage](https://cloud.google.com/pubsub/docs/reference/rest/v1/PubsubMessage).\nThe `attributes` field of the message contains an attribute with key\n`notificationType` and value set to the notification type that triggered the\nmessage (e.g. `ENROLLMENT`). The `data` field of the message contains the JSON\nrepresentation of the resource that was updated, encoded as a UTF-8 string. The\nnotifications and their corresponding resource types are as follows:\n\n- `COMMAND` notifications use the resource type [Operation](/android/management/reference/rest/v1/enterprises.devices.operations#resource-operation).\n- `USAGE_LOGS` notifications use the resource type [UsageLogEvent](/android/management/reference/rest/v1/BatchUsageLogEvents#usagelogevent).\n- `ENROLLMENT` and `STATUS_REPORT` notifications use the resource type [Device](/android/management/reference/rest/v1/enterprises.devices#resource-device).\n- `ENTERPRISE_UPGRADE` notifications use the resource type [EnterpriseUpgradeEvent](/android/management/reference/rest/v1/EnterpriseUpgradeEvent).\n\nWhen setting the `pubsubTopic` on an Enterprise, an initial message will be\npublished with `notificationType` set to `test`. This message is sent to verify\nAndroid Device Policy has the publish permission on the topic and should be\nignored.\n| **Note:** When using the Pub/Sub REST API, the `data` field is encoded as a base64 string. To get the resource JSON, first perform base64 decoding on the contents of `data`, then interpret the resulting bytes as a UTF-8 string.\n\nExpected latency\n----------------\n\nEnterprise upgrade events are expected to be sent immediately.\n\nLocal device events that occur in quick succession are batched and reported in a\nsingle Pub/Sub message to EMMs.\n\n| Event type | Expected latency between on-device event and corresponding EMM notification^[1](#fn1)^ |\n|--------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|\n| High priority [keyed app states](/android/management/app-feedback) | Immediate, at most one report per minute |\n| Standard priority [keyed app states](/android/management/app-feedback) | Within one minute |\n| Application-related events during provisioning, for apps with install states defined by the IT admin^[2](#fn2)^ | Within one minute on top of other related provisioning events |\n| Application-related events after provisioning, for apps with install states defined by the IT admin. | Within 5 minutes |\n| Application-related events both during and after provisioning, for apps with install states defined by the employee^[3](#fn3)^ | Within 60 minutes |\n| Other on-device app events | Within 60 minutes |\n\n*** ** * ** ***\n\n1. Best effort targets based on controlled circumstances. Actual latency may\n vary according to a variety of device and environmental factors. [↩](#fnref1)\n\n2. [`InstallType`](/android/management/reference/rest/v1/enterprises.policies#installtype) of apps enforced in the policy: `FORCE_INSTALLED`,\n `BLOCKED`, `REQUIRED_FOR_SETUP`, `PREINSTALLED` and `KIOSK`. [↩](#fnref2)\n\n3. [`InstallType`](/android/management/reference/rest/v1/enterprises.policies#installtype) of available apps: `AVAILABLE`,\n `INSTALL_TYPE_UNSPECIFIED`. [↩](#fnref3)"]]