Google Cloud Pub/Sub는 가져오기와 푸시라는 두 가지 알림 메커니즘을 지원합니다. 하지만 가져오기 알림만 사용하는 것이 좋습니다. 가져오기 접근 방식은 외부 서버 설정이 필요하지 않으며 프로그래매틱 방식으로 생성된 ESA와 수동으로 생성된 ESA 모두에서 작동합니다. 가져오기 알림의 또 다른 이점은 고객이 추가 구성이나 유지보수를 거의 또는 전혀 하지 않아도 된다는 것입니다. Enterprises.pullNotificationSet 및 Enterprises.acknowledgeNotificationSet를 사용하여 장기 실행 아웃바운드 연결을 통해 EMM 알림을 수신하고 확인합니다.
Enterprises.pullNotificationSet를 호출할 때는 requestMode를 기본값(waitForNotifications)으로 두는 것이 좋습니다. 이렇게 하면 요청이 응답을 반환하기 전에 하나 이상의 알림이 있을 때까지 기다립니다. 시간이 지나도 알림이 없으면 요청이 빈 알림 목록을 반환하며, 이후 요청을 다시 시도할 수 있습니다.
Enterprises.pullNotificationSet를 호출할 때 requestMode를 returnImmediately로 설정할 수도 있습니다. 대기 중인 알림이 있는 경우 대기 중인 알림이 포함된 응답이 즉시 수신되며 알림이 없는 경우 빈 목록이 수신됩니다. 이 requestMode 옵션은 알림 구현을 처음 테스트할 때 유용할 수 있습니다.
EMM 알림 예시
다음은 이벤트 및 이벤트에서 생성되는 알림 유형의 예입니다.
참고:ProductApprovalEvent, AppUpdateEvent, NewPermissionsEvent, AppRestrictionsSchemaChangeEvent, ProductAvailabilityChangeEvent, NewDeviceEvent 알림 유형은 지원 중단되었습니다. AppUpdateEvent의 경우 권장사항에 따라 높은 우선순위 업데이트 모드 를 사용해야 합니다.
설명
알림
Google Play EMM API를 통해 테스트 알림이 요청됩니다. 테스트 알림을 전송하여 시스템이 Google Play에서 게시하는 알림을 수신할 수 있는지 확인하고 Google Play와 연결된 모든 알림에 사용되는 주제 이름을 알아야 합니다.
TestPushNotification
새로 프로비저닝된 기기는 Google Play EMM API로 관리할 수 있습니다. 이제 기기의 deviceId가 필요한 API(예: 설치)와 기기 리소스를 반환하는 API를 호출할 수 있습니다. 이 알림은 관리 기기에 첫 번째 계정이 프로비저닝된 후에만 전송됩니다.
지원 중단됨
NewDeviceEvent
관리자가 관리 Google Play Console에서 애플리케이션을 승인됨 또는 승인되지 않음으로 표시합니다.
지원 중단됨
ProductApprovalEvent
기기에 대기 중인 설치가 타임아웃됩니다. 예를 들어 푸시 설치 요청이 수락되었지만 며칠 동안 기기에 연결할 수 없어 설치를 확인할 수 없습니다. 시스템에서 설치 시간 초과 알림을 전송합니다.
InstallFailureEvent
앱의 새 버전이 게시됩니다. 업데이트는 하나 이상의 기기에 제공되지만 모든 기기에 제공되는 것은 아닙니다.
지원 중단됨
AppUpdateEvent
앱 업데이트는 관리자가 새 권한을 승인해야 업데이트 또는 새 설치가 진행될 수 있습니다. 이 알림은 애플리케이션의 수락된 권한 집합이 애플리케이션의 요청된 권한 집합과 다른 경우 전송됩니다.
지원 중단됨
NewPermissionsEvent
새 버전 또는 수정된 관리 구성 스키마가 포함된 새 버전의 앱이 게시됩니다. 개발자가 새 APK를 업로드하면 Google Play는 매니페스트의 스키마를 이전 버전의 앱 스키마와 비교합니다. 스키마가 변경된 경우 앱을 승인한 기업에 알립니다.
지원 중단됨
AppRestrictionsSchemaChangeEvent
사용 가능한 앱을 사용할 수 없게 되거나 사용할 수 없는 앱이 Google Play에 다시 추가됩니다. 개발자가 앱을 게시 취소하거나 앱이 Google Play에서 삭제되면 앱의 사용 가능 여부가 변경됩니다. 사용 불가능한 앱이 Google Play에 다시 추가되면 사용 가능 여부도 변경됩니다.
지원 중단됨
ProductAvailabilityChangeEvent
엔터프라이즈 업그레이드와 관련된 알림 기업 업그레이드는 기업용 관리 Google Play 계정을 관리 Google 도메인으로 업그레이드하는 프로세스입니다.
[[["이해하기 쉬움","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-08-31(UTC)"],[[["\u003cp\u003eGoogle Play uses EMM notifications, sent via Google Cloud Pub/Sub, to inform enterprises of events like app approvals or new device provisioning.\u003c/p\u003e\n"],["\u003cp\u003eEMMs can configure their systems to display alerts to IT administrators based on these notifications.\u003c/p\u003e\n"],["\u003cp\u003ePull notifications are the recommended method for receiving EMM notifications, offering advantages in setup and maintenance.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eEnterprises.pullNotificationSet\u003c/code\u003e and \u003ccode\u003eEnterprises.acknowledgeNotificationSet\u003c/code\u003e are used to manage the retrieval and acknowledgment of EMM notifications.\u003c/p\u003e\n"],["\u003cp\u003eVarious notification types correspond to specific events, such as app updates, install failures, and new device provisioning, though some have been deprecated.\u003c/p\u003e\n"]]],[],null,["# Set up EMM notifications\n\nGoogle Play generates notifications, referred to as **EMM notifications** , in\nresponse to various events that affect an enterprise. For example, when an app\nis approved, the system sends a `ProductApprovalEvent` notification.\n\nEMM notifications are associated with a specific [enterprise service account\n(ESA)](/android/work/overview#service_accounts). As an EMM, you can set up your\nconsole to display alerts or messages to enterprise IT administrators based on\nthe notifications that you receive.\n\nEMM notifications are sent using [Google Cloud\nPub/Sub](//cloud.google.com/pubsub/overview). For detailed information on how to\nset up a Pub/Sub notifications, see the [Subscriber\nOverview](//cloud.google.com/pubsub/docs/subscriber) and [Pull Subscriber\nGuide](//cloud.google.com/pubsub/docs/pull).\n\nTo confirm that you have successfully set up your system to receive EMM\nnotifications from Google Play and to retrieve the name of the Cloud Pub/Sub\ntopic that you need to connect your subscription to, call\n[`Enterprises.sendTestPushNotification`](/android/work/play/emm-api/v1/enterprises/sendTestPushNotification).\n\nSending a test notification validates your EMM integration with the Google Cloud\nPub/Sub service for the enterprise. If EMM notifications are properly\nconfigured, the API returns the following: \n\n {\n topic_name: \"/projects/project-name/topics/play-work-012345\",\n message_id: \"128976912439\"\n }\n\nPull notifications\n------------------\n\nGoogle Cloud Pub/Sub supports two different notification mechanisms: pull and\npush. However, only pull notifications are recommended. The pull approach\ndoesn't require any external server setup, and works with both programmatically\nand manually created ESAs. Another advantage of pull notifications is that they\nrequire little to no additional configuration or maintenance by your customers.\nuse\n[`Enterprises.pullNotificationSet`](/android/work/play/emm-api/v1/enterprises/pullNotificationSet)\nand\n[`Enterprises.acknowledgeNotificationSet`](/android/work/play/emm-api/v1/enterprises/acknowledgeNotificationSet)\nto receive and acknowledge EMM notifications over long-running outgoing\nconnections.\n\nWhen calling\n[`Enterprises.pullNotificationSet`](/android/work/play/emm-api/v1/enterprises/pullNotificationSet),\nwe recommend leaving the `requestMode` to its default value\n(`waitForNotifications`). This causes the request to wait until one or more\nnotifications are present before returning a response. If no notifications are\npresent after some time, the request returns an empty notification list, after\nwhich you can try the request again.\n\nAfter you receive notifications, call\n[`Enterprises.acknowledgeNotificationSet`](/android/work/play/emm-api/v1/enterprises/acknowledgeNotificationSet)\nto ensure that the same notifications aren't returned the next time you call\n`Enterprises.pullNotificationSet`.\n\nYou also have the option of setting `requestMode` to `returnImmediately` when\ncalling `Enterprises.pullNotificationSet`. You'll receive a response to the\nrequest immediately, containing any pending notifications or an empty list if no\nnotifications are present. This `requestMode` option may be useful when you\ninitially test your notifications implementation.\n\nExamples of EMM notifications\n-----------------------------\n\nHere are some examples of events and the notification types that they generate:\n\n**Note:** The following notification types have been deprecated:\n`ProductApprovalEvent`, `AppUpdateEvent`, `NewPermissionsEvent`,\n`AppRestrictionsSchemaChangeEvent`, `ProductAvailabilityChangeEvent`, and\n`NewDeviceEvent`. For `AppUpdateEvent`, you must use\n[high-priority update mode](/android/work/play/emm-api/update) as\nper our recommendations.\n\n| Description | Notification |\n|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------|\n| A test notification is requested via the [Google Play EMM API](/android/work/play/emm-api/v1/enterprises/sendTestPushNotification). You need to send a test notification to confirm that your system can receive the notifications that Google Play publishes, and to learn the topic name used for all notifications associated with Google Play. | `TestPushNotification` |\n| A newly provisioned device is ready to be managed by the [Google Play EMM API](/android/work/play/emm-api/v1). You can now call APIs that require the device's `deviceId` ([Installs](/android/work/play/emm-api/v1/installs), for example) and APIs that return a [Devices](/android/work/play/emm-api/v1/devices) resource. This notification is only sent after the first account is provisioned on a managed device. **DEPRECATED** | `NewDeviceEvent` |\n| An administrator marks an application as approved or unapproved in the managed Google Play console. **DEPRECATED** | `ProductApprovalEvent` |\n| A pending installation to a device times out. For example, a push install request is accepted, but the device is not reachable for several days, so the install cannot be confirmed. The system sends an install timeout notification. | `InstallFailureEvent` |\n| A new version of an app is published. The update is available to one or more, but not necessarily all, devices. **DEPRECATED** | `AppUpdateEvent` |\n| An app update requires a new permission to be approved by the admin, so that an update or a new install can occur. This notification is sent when the application's accepted permission set differs from the application's requested permissions set. **DEPRECATED** | `NewPermissionsEvent` |\n| A new version of an app is published that includes a new or modified [managed configurations schema](//developer.android.com/work/managed-configurations.html# define-configuration). When a developer uploads a new APK, Google Play compares the schema in the manifest to the schema in the previous version of the app. If the schema has changed, it notifies enterprises that have approved the app. **DEPRECATED** | `AppRestrictionsSchemaChangeEvent` |\n| An available app becomes unavailable, or an unavailable app is re-added to Google Play. The availability of the app changes if a developer unpublishes it, or it is removed from Google Play. The availability also changes if an unavailable app is re-added to Google Play. **DEPRECATED** | `ProductAvailabilityChangeEvent` |\n| A notification related to an enterprise upgrade. An enterprise upgrade is a process that upgrades a managed Google Play Accounts enterprise to a managed Google Domain. | `EnterpriseUpgradeEvent` |"]]