Google Workspace Marketplace의 앱 검토 절차 및 요구사항

Google Workspace Marketplace에 앱을 공개적으로 게시하기 위해 Google은 앱과 등록정보를 검토하여 Google의 디자인, 콘텐츠, 스타일 가이드라인을 준수하는지 확인합니다.

Google에서 앱을 검토하고 나면 추가 작업이 필요한지 또는 앱이 승인되었는지에 관한 이메일을 받게 됩니다.

  • 앱에 추가 작업이 필요한 경우 — 개선이 필요한 항목에 관한 구체적인 정보가 포함된 검토 문서가 전송됩니다. 문제를 해결한 후 검토를 위해 앱을 다시 제출하세요.
  • 검토팀에서 앱을 승인하면 앱이 자동으로 게시되고 알림 이메일을 받게 됩니다.

검토를 위해 앱을 제출하기 전에 앱이 게시할 준비가 되었는지 확인합니다. 자세한 내용은 게시 절차 준비하기를 참고하세요.

검토 기간

앱을 검토하는 데 일반적으로 며칠이 걸립니다. 소요되는 시간은 다음에 따라 다릅니다.

  • 최근에 제출된 앱의 수
  • 앱에 필요한 추가 작업

앱이 검토를 통과하지 못한 일반적인 이유

OAuth 인증:

  • OAuth 동의 화면이 잘못 설정되었습니다. 예를 들어 사용자 유형이 내부로 설정되거나 게시 상태가 테스트로 설정됩니다.
  • 앱에서 OAuth 확인을 완료하지 않았습니다.

앱 등록정보 문제:

  • 앱 이름, 로고, 앱 설명에 Google 상표를 부적절하게 사용 자세한 내용은 Google Workspace Marketplace 브랜드 가이드라인을 참고하세요.
  • 링크가 작동하지 않거나 잘못된 정보를 가리키지 않습니다. 예를 들어 개인정보처리방침 링크는 개발자 지원 페이지로 연결됩니다.
  • 스크린샷과 이미지의 품질이 낮거나 앱 기능을 정확하게 나타내지 않습니다.

앱 준비 상태:

  • 이 앱은 아직 테스트 중이며 공개적으로 사용할 수 없습니다.
  • 앱에 버그가 있거나 제대로 작동하지 않습니다.

기준 검토

검토를 위해 앱을 제출하기 전에 앱이 모든 요구사항을 충족하고 Google Workspace Marketplace 프로그램 정책을 준수하는지 확인합니다.

모든 앱의 요구사항

체크박스를 사용하여 예비 검토를 추적할 수 있습니다.

카테고리 기준
앱 이름
  • 동일한 이름의 앱 등록정보가 없습니다.
  • 이름에 버전 번호가 포함되어 있지 않습니다.
  • 이름이 OAuth 동의 화면의 이름과 일치합니다.
  • 이름이 모호하거나 너무 포괄적이지 않습니다.
  • 이름은 50자(영문 기준) 이하여야 합니다.
  • (권장) 이름에서 단어 첫 글자를 대문자로 표기합니다.
  • (권장) 이름에 구두점, 특히 괄호가 없습니다.
개발자 정보
  • 개발자 이름과 개발자 웹사이트가 개발자와 관련된 정보를 정확하게 나타내고 이러한 정보로 연결됩니다.
  • 소비자 보호법에 따라 유럽 경제 지역 (EEA)에 거주하는 소비자에게 Google Workspace Marketplace의 판매자가 판매자인지 비판매자인지 알려야 합니다.
    • 사업자—사업자란 무역, 비즈니스, 공예, 직업과 관련된 목적을 위해 행동하거나 사업자의 이름이나 사업자를 대신하여 행동하는 사람입니다.
    • 비판매자—비판매자 (소비자)는 비전문적인 목적으로 행동하는 사람입니다.

    지정하지 않으면 앱의 스토어 등록정보 페이지에 '판매자 상태 미지정'이 표시됩니다.

앱 설명
  • 제공된 모든 링크가 작동하고 올바른 정보로 연결됩니다. 예를 들어 개인정보처리방침 링크는 개인정보처리방침을 설명하는 페이지로 연결됩니다.
  • 앱이 서드 파티 서비스와 상호작용하는 경우 설명에는 서드 파티 서비스의 기능, 앱이 상호작용하는 방식 및 선택적으로 관련 웹사이트로 연결되는 링크가 나와 있습니다.
  • 간략한 설명과 자세한 설명이 이해할 수 있습니다.
  • 간략한 설명과 자세한 설명이 동일하지 않습니다.
  • (권장) 가격 책정 정보가 완전하고 정확합니다.
  • (권장) 언어당 전체 속성 집합(이름, 간단한 설명, 자세한 설명)이 언어 불일치 없이 올바르게 정의됩니다.
기능
  • 확실한 버그는 없으며 특이 사례를 비롯한 모든 작업이 온전히 작동합니다. 로드 시간은 로드 표시기로 관리됩니다.
  • 이 앱은 Google API와의 명확한 상호작용을 보여줍니다.
  • 앱이 Google 제품에 이미 포함된 것과는 다른 새로운 기능 또는 확장된 기능을 제공합니다.
  • 앱이 광고나 스팸을 목적으로 사용되지 않습니다.
  • 앱이 완전히 작동하며 테스트 목적이 아니며 진행 중인 작업이 아닙니다.
  • 앱이 사용자 또는 유료 사용자에게 제공되는 기능과 상호작용하는 경우 개발자 시스템의 테스트 계정이 Google 검토팀에 제공됩니다.
사용자 환경
  • 이 앱은 이름 등 Google 브랜드 자산, 상표 또는 Google 브랜디드 콘텐츠를 사용하지 않습니다. Google Workspace Marketplace 브랜드 가이드라인을 참고하세요.
  • 승인 및 로그인은 한 번만 수행하면 됩니다. 앱은 원클릭 SSO를 사용하거나, 이상적으로는 클릭 없이 작동하는 SSO를 사용합니다.
  • 관리자가 도메인의 OAuth 2.0 범위에 대한 권한을 부여하면 개별 사용자에게 범위 권한을 다시 묻는 메시지가 표시되지 않습니다.
  • 사용자는 Google 계정에 로그인한 후 사용자 인증 정보를 입력할 필요가 없습니다. 대부분의 경우 'Google 계정으로 로그인' 버튼을 클릭해야 액세스할 수 있습니다.
  • 버튼 라벨, 메뉴 항목, 제목 및 기타 앱 요소와 관련하여 일관되고 명확하며 이해하기 쉬운 용어가 있습니다. 예를 들어 라벨은 예 또는 아니요 대신 삭제 및 취소와 같은 작업 이름을 참조합니다.
  • 로그인이 필요한 경우 로그아웃 기능이 제대로 작동합니다. 토큰은 취소되며 처음부터 로그인을 시작할 수 있습니다.
  • 작업에 대해 확인 또는 오류 메시지와 같은 피드백이 항상 표시됩니다.
  • 깨진 이미지 링크나 흐릿한 이미지가 없습니다.
그래픽
  • 아이콘은 크기가 알맞고 정사각형이며 배경이 투명합니다. 그래픽 저작물을 참고하세요.
  • 아이콘이 앱의 이름 또는 기능을 적절하게 표현합니다.
  • 아이콘은 컬러입니다 (회색 조정 아님).
  • 아이콘에 Google 상표를 사용하지 않습니다.
  • 스크린샷 및 이미지가 흐리거나 읽기 어렵거나 부적절하지 않아야 합니다. 앱을 정확하게 표현해야 합니다.
  • (권장) 앱 사용 방법과 기능을 명확하게 보여주는 스크린샷
OAuth
  • 앱이 OAuth 인증을 통과했고, 가장 좁은 범위의 OAuth 범위를 사용하며, 모든 범위가 Google Services API와 올바르게 통합됩니다.

특정 앱 통합을 위한 추가 요구사항

앱 등록정보에 포함된 앱 통합을 선택하여 관련 검토 기준을 확인합니다. 열 이름을 클릭하여 기준을 정렬할 수 있습니다(예: 카테고리 기준).

체크박스를 사용하여 예비 검토를 추적할 수 있습니다.

앱 통합 카테고리 기준
Google Chat 앱 이름
  • 설명에서 앱과 통신할 수 있는 버튼이 제공됩니다.
  • 앱 이름은 A~Z (대문자) 또는 0~9로 시작합니다. 기호로 시작할 수 없습니다.
Google Chat 앱 사용자 환경
  • 사용자가 채팅 메시지를 시작하거나 앱이 스페이스에 추가될 때마다 앱이 요청하지 않은 환영 메시지를 보냅니다. 환영 메시지는 '도움말' 명령어와 다릅니다. 자세한 내용은 앱 홈 카드 메시지 보내기를 참고하세요.
  • 앱이 'Help' 명령어를 지원하고 사용자가 앱 사용을 시작할 수 있도록 돕습니다. 자세한 내용은 슬래시 명령어에 응답을 참고하세요.
  • 앱이 스페이스 또는 직접 Chat에서 말을 걸면 항상 응답합니다.
  • 메시지는 올바른 맞춤법, 대문자, 구두점, 문법을 사용합니다. 메시지에는 악의적이거나 불쾌감을 주거나 모욕적인 자료가 포함되어 있지 않습니다.
  • 메시지는 Google 요구사항에 따라 텍스트 또는 카드에 명확하고 간결하며 일관된 형식을 사용합니다.
  • 응답이 2초 넘게 걸리는 경우 앱에서 지연을 설명하는 메시지를 보냅니다.
  • 알림을 전송하는 앱에서는 사용자가 알림을 사용 중지할 수 있습니다.
  • 사용자는 @멘션을 사용하여 스페이스에 앱을 추가할 수 있습니다.
  • 사용자는 구성원 보기 메뉴를 사용하여 스페이스에서 앱을 삭제할 수 있습니다.
  • 앱이 앱과 상호작용하는 데 필요한 모든 것을 사용자에게 알려줍니다.
  • 앱에서 사용하는 카드 형식이 Google 요구사항을 충족합니다. 양방향 카드 만들기를 참고하세요.
  • Chat 메뉴의 앱 찾기 옵션을 통해 앱을 사용할 수 있습니다.
  • 앱이 상호작용하는 외부 URL은 스테이징 또는 개발 환경에 속하지 않습니다.
  • 스페이스에서 앱으로 전송하는 모든 메시지에 @멘션이 필요합니다. 이는 앱이 응답해야 한다는 것을 알 수 있는 유일한 방법입니다.
  • 채팅 앱이 서드 파티 도메인의 링크를 미리 보는 경우:
    • 링크 미리보기는 사용자 메시지와 관련된 보충 정보를 제공합니다. 예를 들어 판매 거래 링크를 미리 보면 계정, 금액, 단계 등의 정보가 추가됩니다.
    • 개발자가 미리보기된 도메인과 연결되어 있습니다.

    자세한 내용은 미리보기 링크를 참고하세요.

  • (권장) Workspace 관리자가 조직의 사용자를 대신하여 앱을 설치하도록 허용하려면 앱에서 채팅 메시지를 수신하고 보낼 수 있어야 합니다.
Google Chat 앱 그래픽
  • 앱에 인식 가능하고 명확한 아바타가 있습니다.
Google 드라이브 앱 기능
  • 이 앱은 Chrome 브라우저 확장 프로그램을 사용하여 드라이브 HTML을 직접 조작하는 기능을 제공하지 않습니다.
  • 앱에서 민감하거나 제한된 범위를 사용하는 경우 OAuth 인증을 거쳐야 합니다. 인증을 위해 제출하려면 어떻게 해야 하나요?를 참고하세요.
  • 앱에서 제한된 범위를 사용하는 경우 보안 평가도 거쳐야 합니다. 보안 평가가 필요한 이유를 참고하세요.
Google 드라이브 앱 사용자 환경
  • 앱이 Drive에 파일을 저장하면 사용자가 폴더를 선택할 수 있게 하거나 앱별 폴더를 만들고 재사용합니다. 구성 데이터는 앱 데이터 폴더에 저장할 수 있습니다. 앱은 사용자의 내 드라이브 폴더에 파일을 덤프하지 않습니다.
  • 이 앱은 문서화된 앱 기능과 연결된 드라이브에만 파일을 저장합니다.
편집자 부가기능 기능
  • 부가기능에는 예상 및 필수 작업이 포함되어 있으며 워크플로를 완료하는 데 필요한 모든 도구가 제공됩니다. 예:
    • 부가기능에서 전체 문서에 스타일을 적용하는 경우 선택한 텍스트에만 스타일을 적용하는 옵션을 제공합니다.
    • 부가기능에서 스프레드시트 데이터를 웹 서비스 피드에 업로드하는 경우 쉽게 탐색할 수 있도록 해당 피드로 연결되는 링크가 표시됩니다.
    • 사용자에게 계정이 필요한 부가기능은 사용자에게 계정이 없는 경우 쉽게 계정을 만들 수 있는 링크나 정보를 제공합니다.
  • 부가기능의 부가기능 탭 아래에 메뉴 항목이 있습니다.
  • 부가기능이 커스텀 함수일지라도 적절한 문서를 포함합니다.
  • 부가기능이 onInstall()onOpen()를 올바르게 사용하여 메뉴를 채웁니다. 메뉴 항목은 부가기능이 처음 설치되고 다른 파일이 열릴 때 채워집니다. 편집자 부가기능 승인을 참고하세요.
  • 승인 모드가 올바르게 설정되었습니다. 승인 모드를 참조하세요.
편집자 부가기능 사용자 환경
  • 부가기능은 제품 및 사용 방법에 관한 기본적인 이해에 필요한 모든 정보를 제공합니다.
  • 라이브러리로 인해 부가기능의 성능이 저하될 수 있으므로 부가기능 코드는 라이브러리를 과도하게 사용하지 않습니다.
  • 가능한 경우 오류를 방지하고 적절히 관리합니다. 그렇지 않은 경우 다음과 같습니다.
    • 오류 메시지는 자바스크립트 알림이나 기본 빨간색 막대가 아닌 대화상자에 표시됩니다. 단순한 언어로 문제를 전달하고 사용자가 문제를 해결하기 위해 무엇을 해야 하는지 설명합니다.
    • 가능한 경우 사용자가 잘못 작업을 하고 있으면 문제를 해결하는 버튼이 표시됩니다.
    • 자세한 내용은 부가기능 스타일 가이드를 참조하세요.
  • 외부 페이지 링크가 새 창에서 열리며 정확함
  • 부가기능이 직관적이며 잘 설계되었습니다. 이는 다음을 의미합니다.
    • 무엇을 어떻게 해야 하는지는 항상 명확합니다.
    • 부가기능에 쉽게 액세스할 수 있으며 이해하기 쉽습니다. 기술 용어와 전문 용어는 피합니다.
    • 워크플로가 명확하고 최대한 원활하게 진행됩니다.
    • 사용자와 사용자의 콘텐츠가 최대한 안전합니다.
  • 이 부가기능은 편집기 부가기능용 UI 스타일 가이드를 따르며 편집기 부가기능용 CSS 패키지를 사용합니다.
  • 부가기능은 디스플레이당 하나의 파란색 기본 작업만 사용합니다.
  • 부가기능은 한 번에 하나의 대화상자를 표시합니다. 겹치지 않거나 한 번에 여러 개의 대화상자가 열려 있지 않습니다.
  • 부가기능의 UI가 할당된 공간에 깔끔하게 들어갑니다.
    • 텍스트 및 라벨이 '...' 기호로 잘리지 않습니다.
    • 사용자가 세로 스크롤을 많이 하지 않아도 됩니다.
    • 콘텐츠 너비가 300p를 초과하여 확장되지 않아 가로 스크롤바가 없습니다.
  • 부가기능에 확인이 필요하거나 모든 민감한 작업에 대한 경고가 표시됩니다. 예를 들어 부가기능이 스프레드시트의 모든 콘텐츠를 덮어쓰려고 하면 사용자는 경고를 받고 작업이 실행되기 전에 작업을 확인합니다.

    디자인을 변경하여 이러한 요구사항을 방지할 수 있습니다. 예를 들어 데이터를 가져오는 Google 스프레드시트 부가기능을 사용하면 기존 콘텐츠를 덮어쓸 위험이 있습니다. 기본 작업으로 데이터 시트를 만들면 위험을 제거할 수 있습니다.

  • 작업을 로드하는 중에는 작업을 여러 번 트리거할 수 없습니다. 예를 들어 작업이 로드되는 동안 버튼이 꺼지거나 숨겨집니다.
Google Workspace 부가기능 이름

캘린더 부가기능

  • 부가기능이 calendar.name 또는 common.name를 사용하는 경우 매니페스트의 이름은 앱 등록정보에 제공된 이름과 동일합니다.
  • 부가기능에서 calendar.conferenceSolution를 사용하는 경우 회의 솔루션 이름에 'Google Calendar'가 포함되지 않습니다.
  • (권장) 부가기능에서 calendar.conferenceSolution을 사용하는 경우 회의 솔루션 이름은 30자(영문 기준)를 초과하지 않습니다.
Google Workspace 부가기능 기능
  • 부가기능은 원하는 기능에 적합한 위젯을 사용합니다. 예를 들어 스위치를 사용하여 불리언 값을 선택합니다.

캘린더 부가기능

  • 보조 캘린더 및 위임이 지원되며, 지원되지 않는 경우 정상적으로 관리됩니다. 예를 들어 사용자가 일정을 만들 때 수정 액세스 권한이 있는 다른 캘린더를 선택해도 회의 생성이 실패하지 않습니다.
  • 반복 일정은 제대로 작동합니다.
  • 부가기능에서 calendar.conferenceSolution를 사용하는 경우 하나 이상의 회의 솔루션이 제공됩니다.
  • 부가기능에서 회의 솔루션을 제공하는 경우 적절한 회의 데이터 필드가 사용됩니다. 예를 들어 화상 회의 링크, 전화번호, SIP 링크, 액세스 코드, 기타 지원되는 속성은 구조화된 데이터 필드를 사용하며 메모 필드에는 제공되지 않습니다.
  • 부가기능에서 회의 솔루션을 제공하는 경우 회의 세부정보만 수정하고 다른 이벤트 필드는 수정하지 않습니다.
  • 부가기능에서 회의 솔루션을 제공하는 경우 회의를 만드는 데 5초도 걸리지 않습니다.

Gmail 부가기능

부가기능이 UrlFetchApp 또는 OpenLinkUrl를 사용하는 경우:

  • URL이 유효합니다.
  • URL이 HTTP가 아닌 HTTPS를 사용합니다.
  • 전체 도메인이 지정되어 있습니다.
  • 경로가 비어 있지 않습니다. 예를 들어 https://altostrat/는 괜찮지만 https://altostrat은 그렇지 않습니다.
  • UrlFetchApp에서는 와일드 카드를 사용할 수 없습니다.
Google Workspace 부가기능 사용자 환경
  • 부가기능에는 홈페이지가 있습니다. Google Workspace 부가기능이 변환된 Gmail 부가기능인 경우 기본 홈페이지가 적용됩니다.
  • 부가기능 카드가 제대로 작동합니다. 예를 들어 중복 카드가 없으며 뒤로, 새로고침, 업데이트 버튼이 적절히 작동합니다.
  • 사용자가 부가기능을 승인하면 로그인 버튼(필요한 경우), 로고, 부가기능에 관한 간단한 설명과 함께 사용자를 환영하는 맞춤설정된 홈페이지 카드가 표시됩니다.
    • 로그인 버튼이 트리거되면 Google Workspace 외부에서 작동하는 서드 파티 서비스가 있음을 명확하게 나타내는 서드 파티 공급업체의 맞춤설정된 로그인 페이지가 표시됩니다.
  • 부가기능의 UI가 할당된 공간에 깔끔하게 들어갑니다.
    • 텍스트와 라벨이 '...' 기호로 잘리지 않습니다.
    • 사용자가 세로 스크롤을 많이 하지 않아도 됩니다.
    • 콘텐츠 너비가 300p를 초과하여 확장되지 않아 가로 스크롤바가 없습니다.
  • 라이브러리로 인해 부가기능의 성능이 저하될 수 있으므로 부가기능의 코드는 라이브러리를 과도하게 사용하지 않습니다.

캘린더 부가기능

  • 부가기능에서 회의 솔루션을 제공하는 경우 생성된 회의가 유효하며 서드 파티 회의 웹사이트에 올바르게 표시됩니다.

Docs 부가기능

부가기능에서 서드 파티 도메인 (스마트 칩)의 링크를 미리 보는 경우

  • 링크 미리보기는 사용자에게 관련성이 있는 보충 정보를 제공합니다. 예를 들어 판매 거래 링크를 미리 보면 계정, 금액, 단계 등의 정보가 추가됩니다.
  • 개발자가 미리보기된 도메인과 연결되어 있습니다.

자세한 내용은 스마트 칩이 포함된 링크 미리보기를 참고하세요.

Drive 부가기능

  • 앱이 Drive에 파일을 저장하면 사용자가 폴더를 선택할 수 있게 하거나 앱별 폴더를 만들고 재사용합니다. 구성 데이터는 앱 데이터 폴더에 저장할 수 있습니다. 앱은 사용자의 내 드라이브 폴더에 파일을 덤프하지 않습니다.
  • 부가기능은 부가기능의 문서화된 기능에 연결된 파일만 드라이브에 저장합니다.

Gmail 부가기능

  • 부가기능이 정당한 이유 없이 Chrome 브라우저 확장 프로그램을 언급하거나 연결하지 않습니다.
  • 추가 작업 메뉴에 제대로 작동하는 범용 작업이 포함되어 있습니다. 예를 들어 로그아웃, 정보, 지원 등이 있습니다.
Google Workspace 부가기능 그래픽

캘린더 부가기능

  • 회의 솔루션의 로고는 공개 URL입니다. 회의 솔루션 로고 제공을 참조하세요.
  • 부가기능에서 calendar.conferenceSolution를 사용하는 경우 회의 솔루션 로고가 calendar.logoUrl 요구사항을 따릅니다. 캘린더 매니페스트 리소스를 참고하세요.
  • 부가기능에서 calendar.logoUrl 또는 common.logoUrl를 사용하는 경우 로고는 앱 등록정보에 제공된 아이콘과 동일합니다.
  • 부가기능이 calendar.logoUrl 또는 common.logoUrl를 사용하는 경우 로고 URL은 다음과 같이 시작됩니다. https://lh3.googleusercontent.com/
Google Workspace 부가기능 OAuth

Drive 부가기능

  • (권장) 제한된 메타데이터를 수신하려면 부가기능에 drive.addons.metadata.readonly 범위가 포함됩니다.
웹 앱 기능
  • 범용 탐색 URL이 웹 앱으로 연결됩니다. 기능이 없는 간단한 웹페이지는 웹 앱으로 간주되지 않습니다.