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

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

ポリシー

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

データの保存、キャッシュ、スクレイピング

アプリケーションで Google マップ コンテンツを使用する場合は、Google Maps Platform 利用規約の第 3.2.3 項と Google Maps Platform サービス固有の規約に記載されているデータ処理要件に従ってください。

  • キャッシュとスクレイピングの制限(第 3.2.3(a)項および(b)項): Google マップ コンテンツのキャッシュまたは保存は、Google Maps Platform サービス固有の規約で明示的に許可されている場合にのみ行うことができます。Google マップのコンテンツを、本サービス以外で使用するためにエクスポート、抽出、スクレイピングしないでください。たとえば、本サービス外で Google マップ コンテンツをプリフェッチ、インデックス登録、保存、再配布すること、地図タイル、ストリートビュー画像、ジオコード、ルート、距離行列の結果、道路情報、場所情報、標高値、タイムゾーンの詳細を一括ダウンロードすること、ビジネスの名前、住所、ユーザー レビューをコピーして保存することは禁止されています。
  • 派生コンテンツの制限(セクション 3.2.3(c)): Google Maps Platform 利用規約で許可されているとおりに、アプリケーション内で Google マップ コンテンツを使用します。Google マップのコンテンツに基づいてコンテンツを作成しないでください。たとえば、衛星画像から特徴をトレースまたはデジタル化する、3D モデルや地形モデルを構築する、Places の緯度と経度の値をポイントインポリゴン分析の入力として使用する、ストリートビュー画像から位置インデックスを構築する、テキストベースの運転時間を合成音声に変換する、といったことは行わないでください。

制限付きデータをキャッシュに保存せずにレイテンシと請求費用を削減するには、フィールド マスクまたはフィールド リストを使用して、ユーザー インターフェースに必要なフィールドのみをリクエストします。プレイス ID などの除外識別子を保存して、ユーザーが場所を操作したときに最新の詳細情報を取得します。

Google のテクニカル サポート エンジニアは、法的なアドバイスを提供したり、Google Maps Platform の利用規約の例外を認めたりすることはできません。実装が利用規約に準拠しているかどうかを判断するには、法律顧問に相談してください。ユースケースでカスタム ライセンスが必要な場合は、営業担当者にお問い合わせください。

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

Google Maps Platform サービス固有の規約では、キャッシュ保存に関する以下の限定的な例外が認められています。

  • プレイス ID: プレイスを一意に識別するために使用されるプレイス ID は、キャッシング制限の適用対象外のため、そのため、プレイス ID の値を無期限で保存できます。プレイス ID は、API レスポンスの id フィールドまたは place_id フィールドで返されます。プレイス ID を保存、更新、管理する方法については、プレイス ID のガイドをご覧ください。
  • 緯度と経度の座標: 緯度(latitude)と経度(longitude)の値は、連続 30 暦日まで一時的にキャッシュできます。その後、キャッシュされた座標を削除する必要があります。ただし、Google Maps Platform サービス固有の利用規約でこの例外が認められているサービスを使用する場合に限ります。
    • Routes API、Route Optimization API、Directions API(従来版)、Roads API
    • Geocoding API、Geolocation API、Address Validation API
    • Places API、Places UI キット、Navigation SDK
  • サービス固有のキャッシュ保存期間: Google Maps Platform サービス固有の利用規約では、Address Validation API、Air Quality API、Pollen API、Solar API、Weather API、Places Aggregate API のフィールド固有のキャッシュ保存期間と許可される目的も定義されています。

欧州経済領域の国と地域

このプロダクトは、請求先住所が欧州経済領域(EEA)にあるお客様に対しては、異なる利用規約が適用されます。また、機能が異なる場合もあります。Google Maps Platform で開発を行う前に、EEA 固有の以下の規約と情報をご確認ください。

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

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

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

アトリビューションの例

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

Google 以外の地図での Places UI キットの帰属表示の例
Place Details コンパクト コンポーネントに適用された必須のアトリビューション。 この 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 Maps を他の言語にローカライズしないでください。
    • 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 マップの帰属情報の例

Google マップ コンテンツ(場所の評価)を他のコンテンツと区別する 2 つの方法の例
Google マップのコンテンツ(場所の評価)を他のコンテンツと区別する 2 つの方法の例

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

第三者データ プロバイダ

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

その他の帰属表示要件

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

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

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 オブジェクトを返します。このオブジェクトには、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();

検索結果の属性

欧州において 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 形式のコンテンツとリンクが含まれています。これらは、提供された形式で保持し、ユーザーに表示する必要があります。この情報は、Place Details の下に表示することをおすすめします。

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

帰属表示を表示する方法の 1 つは、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 Maps Platform 契約の Google マップ コンテンツの制限の対象外となります。この例外は、エンドユーザーが選択した番地と、そのエンドユーザーの特定の取引にのみ適用されます。予測入力機能によって提供される候補アドレスのリストや、その他の Google マップ コンテンツには適用されません。この例外は、他の Google Maps Platform サービスが提供するスポットや住所の検索機能には適用されません。

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

上の図で、左側のアドレスリストは、Google Maps Content の制限の対象となります。エンドユーザーが選択した住所は、そのエンドユーザーの該当する取引の目的に限り、Google Maps コンテンツの制限の対象外となります。