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 서비스 API와 올바르게 통합됩니다.

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

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

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

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

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

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

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

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

Calendar 부가기능

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

Calendar 부가기능

  • 보조 캘린더 및 위임은 지원되며, 지원되지 않는 경우 정상적으로 관리됩니다. 예를 들어 사용자가 일정을 만들 때 수정 액세스 권한이 있는 다른 캘린더를 선택해도 회의 생성이 실패하지 않습니다.
  • 반복 일정이 올바르게 작동합니다.
  • 부가기능에서 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 이상으로 확장되지 않습니다.
  • 라이브러리가 부가기능의 성능을 떨어뜨릴 수 있으므로 부가기능의 코드에서 라이브러리를 과도하게 사용하지 않습니다.

Calendar 부가기능

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

Docs 부가기능

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

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

자세한 내용은 스마트 칩으로 링크 미리보기를 참고하세요.

Drive 부가기능

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

Gmail 부가기능

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

Calendar 부가기능

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

Drive 부가기능

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