Places SDK for Android のポリシー

このトピックでは、Places SDK for Android で開発されるすべてのアプリ(その API の一部である Place Autocomplete サービスを含む)の帰属表示の要件について説明します。Google Maps Platform のその他の用語については、Google Maps Platform 利用規約をご覧ください。

利用規約とプライバシー ポリシーを明示する

Places SDK for Android アプリを開発する場合は、Google との契約に定められているガイドラインに準拠した利用規約プライバシー ポリシーをアプリとともに公開する必要があります。

  • 利用規約とプライバシー ポリシーは一般公開されていること。
  • アプリケーションの利用規約に、当該アプリケーションを使用するユーザーには Google の利用規約が適用される旨が明示的に記載されていること。
  • プライバシー ポリシーで、Google Maps API を使用していることをユーザーに伝え、参照として Google プライバシー ポリシーを組み込んでいること。

利用規約とプライバシー ポリシーをどこに組み込むべきかは、アプリケーションのプラットフォームによって異なります。

モバイルアプリ

モバイルアプリを作成している場合は、利用規約とプライバシー ポリシーのリンクを、関連するアプリストアのダウンロード ページとアプリの設定メニューに組み込むことをおすすめします。

ウェブ アプリケーション

ウェブ アプリケーションを作成している場合は、利用規約とプライバシー ポリシーへのリンクをウェブサイトのフッターに組み込むことをおすすめします。

コンテンツのプリフェッチ、キャッシュ保存、保存

Places SDK for Android を使用するアプリケーションには、Google との契約条件が適用されます。本契約の条項に従い、コンテンツのプリフェッチ、インデックス登録、保存、キャッシュ保存は認められません(例外: 規約に記載されている限定的条件下)。

ただし、プレイスを一意に識別するために使用されるプレイス ID は、キャッシング制限適用対象外のため、プレイス ID は、Places SDK for Android のレスポンスの「place_id」フィールドで返されます。プレイス ID を保存、更新、管理する方法については、プレイス ID のガイドをご覧ください。

Places SDK for Android の結果を表示する

Places SDK for Android の結果は、Google マップまたは地図なしで表示できます。Places SDK for Android の結果を地図に表示する場合は、結果を Google マップに表示する必要があります。Google マップ以外の地図で Places SDK for Android のデータを使用することは禁止されています。

アプリケーションで Google マップにデータを表示する場合は、Google ロゴが表示されますが、それに変更を加えることは禁止されています。Google マップと同じ画面に Google データを表示するアプリケーションでは、Google に対するそれ以上の帰属表示は不要です。

データを Google マップなしでページまたはビューに表示するアプリケーションでは、データとともに Google ロゴを表示する必要があります。たとえば、あるタブに Google のデータを表示し、別のタブにそのデータと Google マップを表示するアプリケーションであれば、最初のタブに Google ロゴを表示する必要があります。アプリケーションで、オートコンプリートの有無にかかわらず検索フィールドを使用する場合、ロゴをその同じ行かそのすぐ側に表示する必要があります。

Google のロゴは地図の左下に配置し、帰属表示は右下に配置します。どちらも地図の下やアプリケーション内の別の場所ではなく、全体が地図内に表示されるようにしてください。次の地図の例では、地図の左下に Google のロゴ、右下に帰属表示が配置されています。

ポリシー帰属表示の配置場所

次の zip ファイルには、パソコン版、Android 版、iOS 版の各アプリケーションに適したサイズの Google ロゴが収められています。いかなる方法でも、ロゴのサイズを変更したり、ロゴに変更を加えたりすることはできません。

ダウンロード: google_logo.zip

帰属に変更を加えないでください。帰属情報を削除したり、隠したり、切り抜いたりしないでください。Google ロゴを文章の中(例: 「これらの地図は [Google_logo] に属します」)で使用することはできません。

帰属表示は近くで行う。直接埋め込み以外で Google 画像のスクリーンショットを使用する場合は、画像に表示される標準の帰属情報を含めます。帰属表示の文言は、必要に応じてスタイルと配置場所をカスタマイズできます。ただし、文言がコンテンツと近く、平均的な閲覧者や読者が判読できる必要があります。帰属表示をコンテンツから離すこと(書籍の巻末、ファイルや番組のクレジット、ウェブサイトのフッターなど)はできません。

第三者データ プロバイダ名を含めます。Google のマッピング サービスのデータと画像の中には、Google 以外のプロバイダから提供されているものがあります。このような画像を使用する場合、帰属情報の文言には「Google」の名称と関連するデータ プロバイダ名(「地図データ: Google, Maxar Technologies」など)を記載する必要があります。画像に第三者データ プロバイダ名が表示されている場合、「Google」または Google ロゴのみを表示しただけでは帰属表示として適切ではありません。

帰属表示が現実に行えないデバイスで Google Maps Platform を使用している場合は、Google セールスチームにお問い合わせのうえ、ユースケースに適したライセンスについてご相談ください。

帰属表示に関するその他の要件

サードパーティの属性を取得し、アプリに属性を表示する手順は次のとおりです。

プレイスから属性を取得する

get place by ID を呼び出して取得した情報を表示する場合、アプリは取得した Place Details のサードパーティ属性も表示する必要があります。

API は Place オブジェクトを返します。Place オブジェクトから属性を取得するには、Place.getAttributions() を呼び出します。このメソッドは、String オブジェクトの List を返します。表示する属性がない場合は null を返します。

String placeId = "INSERT_PLACE_ID_HERE";
List<Place.Field> placeFields = Arrays.asList(Place.Field.ID, Place.Field.NAME);
FetchPlaceRequest request = FetchPlaceRequest.newInstance(placeId, placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
  Place place = response.getPlace();
  textView.append("Place found: " + place.getName());
  List<String> attributions = place.getAttributions();
  if (attributions != null) {
    StringBuilder stringBuilder = new StringBuilder("Attributions: ");
    for (String attribution : attributions) {
      stringBuilder.append(attribution).append("\n");
    }
    textView.append(stringBuilder.toString());
  }}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
      // Handle the error.
    }
  }
);

写真の帰属を表示する

アプリで場所の写真を表示する場合は、その写真が含まれている各写真の属性を表示する必要があります。PhotoMetadata には、次の 2 種類のアトリビューションのいずれかを含めることができます。

写真の文字列属性を取得するには、PhotoMetadata.getAttributions() を呼び出します。このメソッドは、HTML 文字列を返すか、表示する属性がない場合は空の文字列を返します。

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the attribution text.
String attributions = photoMetadata.getAttributions();

写真の作成者属性を取得するには、PhotoMetadata.getAuthorAttributions() を呼び出します。このメソッドは AuthorAttributions オブジェクトを返します。このオブジェクトには、AuthorAttribution オブジェクトの List(作成者ごとに 1 つ)が含まれます。

// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);

// Get the author attributions object.
AuthorAttributions authorAttributions = photoMetadata.getAuthorAttributions();
List<AuthorAttribution> authorAttributionList = authorAttributions.asList();

クチコミを表示する

Place オブジェクトには最大 5 つのレビューを含めることができ、各レビューは Review オブジェクトで表されます。これらのレビューをアプリに表示することもできます。

Google ユーザーが投稿したレビューを表示する場合は、投稿者の名前を近くに置く必要があります。Review オブジェクトの作成者情報フィールドから取得できる場合は、作成者の写真とプロフィールへのリンクを含めることをおすすめします。次の図は、公園のレビューの例を示しています。

投稿者の帰属表示

レビューの並べ替え方法をエンドユーザーに表示することもおすすめします。

レビューにアクセスするには、Place.getReviews() を呼び出します。

// Specify the fields to return.
final List<Place.Field> placeFields = Arrays.asList(Place.Field.REVIEWS);

// Construct a request object, passing the place ID and fields array.
final FetchPlaceRequest request = FetchPlaceRequest.newInstance("INSERT_PLACE_ID_HERE", placeFields);

placesClient.fetchPlace(request).addOnSuccessListener((response) -> {
    Place place = response.getPlace();
    List<Review> reviews = place.getReviews();
    // For loop for iterating over the List
    for (int i = 0; i < reviews.size(); i++) {
      // For each review, get the Review object.
        Review placeReview = reviews.get(i);

      // Get any attribution and author attribution.
        String reviewAttribution = placeReview.getAttribution();
        AuthorAttribution authorAttribution = placeReview.getAuthorAttribution();

        // Display the review contents and attributions as necessary.
    }
}).addOnFailureListener((exception) -> {
    if (exception instanceof ApiException) {
        // Handle the error.
    }
});

サードパーティの属性を表示する

サードパーティ プロバイダの属性には、HTML 形式のコンテンツとリンクが含まれます。これらは、提供された形式で保持し、ユーザーに表示する必要があります。この情報は場所の詳細の下に表示することをおすすめします。

API は、アプリが使用するすべての場所の属性を生成します。属性は場所ごとではなく、API 呼び出しごとに提供されます。

属性を表示する方法の一つは、TextView を使用することです。次に例を示します。

TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = place.getAttributions();
attributionsText.setText(thirdPartyAttributions);

サードパーティ属性の例

Listings by <a href="https://www.example.com/">Example Company</a>

Google 帰属のスタイル ガイドライン

以下は、ダウンロード可能な Google ロゴを使用できない場合の、CSS と HTML の Google 帰属表示のスタイル ガイドラインです。

クリアスペース

ロックアップ周りのクリアスペースは、Google の「G」の高さを最小サイズとして設定してください。

帰属情報のコピーと Google ロゴの間のスペースは、「G」の幅の半分にします。

判読しやすさ

バイラインは常に、はっきりと見やすく、背景色に適した色で表示する必要があります。選択したバリエーションのロゴに十分なコントラストを付けてください。

白または明るい色の背景では、黒の色合い(0~40%)の Google Material Gray 700 テキストを使用します。

Google
#5F6368
RGB 95 99 104
HSL 213 5 39
HSB 213 9 41

背景が暗く、写真またはシンプルな図柄の上には、バイラインと帰属に白いテキストを使用します。

Google
#FFFFFF
RGB 255 255 255
HSL 0 0 100
HSB 0 0 100

フォント

Roboto フォントを使用します。

CSS の例

次の CSS を「Google」のテキストに適用すると、白または明るい背景に「Google」が適切なフォント、色、間隔でレンダリングされます。

font-family: Roboto;
font-style: normal;
font-weight: 500;
font-size: 16px;
line-height: 16px;
padding: 16px;
letter-spacing: 0.0575em; /* 0.69px */
color: #5F6368;