Places SDK for Android のポリシーと帰属表示

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

ポリシー

このセクションでは、Places SDK for Android に関連するポリシーについて説明します。ポリシーは、サービスを正しく使用し、Google Maps Platform の期待に沿うための実践的な 実装ガイドラインと要件を提供します。

キャッシュ保存の制限の例外

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

欧州経済領域の国と地域

請求先住所が 欧州経済領域(EEA)にあるお客様の場合、このプロダクトの利用規約が異なり、機能も異なる場合があります。 Google Maps Platform を使用して構築する前に、EEA 固有の次の 規約と情報をご確認ください。

請求先住所が EEA にない場合は、次の利用規約が適用されます。

Google マップの帰属表示の要件

このセクションでは、アプリケーションを通じて Google マップとコンテンツを表示するための帰属表示の要件とガイドラインについて説明します。

アトリビューションの例

Places UI キットの帰属表示の例を次に示します。

Google マップ以外の地図での Places UI キットの帰属表示の例
プレイスの詳細のコンパクト コンポーネントに適用される必須の帰属表示。 Google 以外のマップでは、Google マップの帰属表示が明確に表示され、Google Maps Platform コンテンツが他のコンテンツと視覚的に区別されています。

Google マップの帰属表示を表示する

アプリやウェブサイトで Google Maps Platform API のコンテンツを表示する場合は、Google マップの帰属表示の要件に準拠する必要があります。帰属表示がすでに表示されている Google マップにコンテンツを表示する場合は、追加の帰属表示は必要ありません。

Google マップの帰属表示を含める

Places UI キットなど、Google Maps Platform によって ユーザー インターフェースにすでに提供されている Google マップの帰属表示の場合:

  • 表示場所に関係なく、含まれている帰属表示を削除しないでください。帰属表示を変更したり、隠したり、 不明瞭にしたりしないでください。背景に対して明確に表示されるようにしてください。
  • 枠線、背景色、シャドウ、十分な空白などの UI キューを使用して、Google Maps Platform コンテンツを他のコンテンツと常に視覚的に区別してください。
  • 視覚的な変更を行う場合は、Google マップの帰属表示の要件をすべて遵守する必要があります。

可能な限り、帰属表示には Google マップのロゴを使用してください。 スペースが限られている場合は、「Google マップ 」というテキストを使用できます。 エンドユーザーには、どのコンテンツが Google マップによって提供されているかを常に明確に伝える必要があります。

左: Google マップのロゴによる帰属表示、右: Google マップのテキストによる帰属表示
左: Google マップのロゴの帰属表示の例、右: Google マップのテキストの帰属表示の例

ロゴの帰属表示

アプリやウェブサイトで Google マップのロゴを使用する場合は、次の要件に沿ってください。
Google マップのロゴの帰属表示で許容されるバリエーション
Google マップのロゴの帰属表示で許容されるバリエーションの例

Google マップのロゴをダウンロードする

Google マップの公式ロゴファイルを使用してください。以下のロゴをダウンロードし、このセクションのガイドラインに沿ってください。

Google マップの帰属表示アセットをダウンロードする

Google マップのロゴを使用する場合は、次のガイドラインに沿ってください。

  • ロゴを変更しないでください。
  • ロゴのアスペクト比を維持して、歪みを防ぎます。
  • マップや画像など、背景が複雑な場合は、アウトライン表示のロゴを使用してください。
  • 単色や微妙なグラデーションなど、背景がシンプルな場合は、アウトライン表示でないロゴを使用してください。

ロゴのサイズ仕様

Google マップのロゴのサイズ仕様は次のとおりです。
  • ロゴの最小高さ: 16 dp
  • ロゴの最大高さ: 19 dp
  • ロゴの最小クリアスペース: 左、右、上は 10 dp、下は 5 dp

dp について詳しくは、マテリアル デザインのウェブサイトのピクセル密度をご覧ください。

最小クリアスペースと許容されるサイズ範囲を示す Google マップのロゴ
最小クリアスペースと許容されるサイズ範囲を示す Google マップのロゴの例

ロゴのユーザー補助機能

Google マップのロゴのユーザー補助機能に関する要件は次のとおりです。
  • ロゴと背景のコントラストを維持して、ユーザー補助に対応します
  • Google マップ 」というテキストを含むユーザー補助ラベルを追加します。
Google マップのロゴの帰属表示に関する許容されないバリエーションとアクセシビリティの問題
Google マップのロゴの帰属表示で許容されないバリエーションとユーザー補助機能の問題の例

テキスト属性

インターフェースのサイズが Google マップのロゴの使用に対応していない場合は、「Google マップ 」というテキストを使用できます。次のガイドラインに沿ってください。

Google マップのテキストでの帰属表示の許容されるバリエーション
Google マップのテキストの帰属表示で許容されるバリエーションの例
  • Google マップ 」というテキストは一切変更しないでください。
    • Google マップ の文字の大小は変更しないでください。
    • Google マップ を複数行に折り返さないでください。
    • Google マップ を他の言語にローカライズしないでください。
    • HTML 属性 translate="no" を使用して、ブラウザが Google マップ を翻訳しないようにします。
Google マップのテキストでの帰属表示の許容されないバリエーション
Google マップのテキストの帰属表示で許容されないバリエーションの例
  • 次の表の説明に従って、Google マップのテキストのスタイルを設定します。

    Google マップのテキストのスタイル設定の要件
    プロパティ スタイル
    フォント ファミリー Roboto。フォントの読み込みは任意です。
    代替フォント ファミリー プロダクトですでに使用されている Sans Serif の本文フォント、またはデフォルトのシステム フォントを呼び出すための Sans-Serif
    フォント スタイル 標準
    フォントの太さ 400
    フォントの色 白、黒(#1F1F1F)、グレー(#5E5E5E)。背景に対してユーザー補助に対応した(4.5:1)コントラストを維持します。
    フォントサイズ 最小フォントサイズ: 12sp
    最大フォントサイズ: 16sp
    sp について詳しくは、マテリアル デザインのウェブサイトでフォントサイズの単位をご覧ください。
    文字間隔 標準

CSS の例

次の CSS は、白または明るい背景に適切なタイポグラフィ スタイルと色で Google マップをレンダリングします。

@import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');

.GMP-attribution {
font-family: Roboto, Sans-Serif;
font-style: normal;
font-weight: 400;
font-size: 1rem;
letter-spacing: normal;
white-space: nowrap;
color: #5e5e5e;
}

ビジュアル要件

Google マップの帰属表示のビジュアル処理については、次の要件に沿ってください。
  • 帰属表示は、コンテンツの上部または下部の近くに、同じビジュアル コンテナ内に配置します。コンテンツが 1 行の場合は、右または左に配置できます。

  • 枠線、背景色、シャドウ、十分な空白などの UI キューを使用して、Google Maps Platform コンテンツを他のコンテンツと視覚的に区別してください。

  • Google Maps Platform 以外のコンテンツを帰属表示として使用して、Google マップを誤って表現しないでください。
  • 帰属表示が常に表示され、読みやすいことを確認してください。削除、非表示、不明瞭化、変更は行わないでください。

次の図は、これらのビジュアル要件の例を示しています。

コンテンツの上、下、横に配置された Google マップの帰属表示の例
コンテンツの上部、下部、横に配置された Google マップの帰属表示の例

Google マップのコンテンツ(場所の評価)を他のコンテンツと区別する 2 つのアプローチの例
Google マップのコンテンツ(プレイスの評価)を他のコンテンツと区別する 2 つの方法の例

Google マップの帰属情報を隠したり、他の情報源のコンテンツと混同したりしないでください
Google マップの帰属表示を不明瞭にしたり、他のソースのコンテンツと混在させたりしないでください

第三者データ プロバイダ

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

その他の帰属表示要件

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

プレイスから帰属表示を取得する

get place by ID を呼び出して取得した情報をアプリに表示する場合は、取得したプレイスの詳細に関するサードパーティ帰属もアプリに表示する必要があります。

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.DISPLAY_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 オブジェクトを返します。このオブジェクトには、投稿者の帰属表示ごとに 1 つの List オブジェクトのAuthorAttribution が含まれています。

// 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();

検索結果の属性

欧州において Google 独自のランキング システムを使用する場合は、検索サービスに説明テキストを表示して、検索結果のランキングを決める主な要素とそれらの重み付けが、直接または 1 クリックで表示されるようにする必要があります。説明テキスト:

見出し: 検索結果について

本文: Google マップで指定した場所の付近の店舗などを検索すると、ローカル検索の結果が表示されます。検索結果の精度を高めるため、ローカル検索の結果は複数の要素(主に関連性、距離、知名度)に基づいて生成されます。

ボタン 1: 詳細 __
"[詳細]" テキストは、ヘルプセンターの記事にリンクさせます。

ボタン 2: OK

クチコミを表示する

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>

エンドユーザーの住所の予測入力

エンドユーザーが顧客アプリケーション内で Autocomplete 機能を使用して番地を入力し、その番地が Autocomplete を使用しなくてもエンドユーザーによって完全かつ正確に提供されていた場合、エンドユーザーが選択した住所には、Google Maps Platform 契約の Google マップのコンテンツの制限は適用されません。 この例外は、エンドユーザーが選択した番地と、そのエンドユーザーの特定の取引にのみ適用されます。Autocomplete 機能によって提供される候補の住所のリストや、その他の Google マップのコンテンツには適用されません。この例外は、他の Google Maps Platform サービスが提供する POI または住所検索機能には適用されません。

エンドユーザーの住所を予測入力する

上の画像では、左側の住所リストには Google マップのコンテンツの制限が適用されます。エンドユーザーが選択した住所には、そのエンドユーザーの該当する取引の目的でのみ、Google マップのコンテンツの制限は適用されません。