This topic provides attribution requirements for all applications
developed with the Places SDK for Android, including the Place Autocomplete
service that is part of that API. For more Google Maps Platform terms,
see the
Google Maps Platform Terms of Service
.
Providing terms of use and privacy policy
If you develop a Places SDK for Android application, you must make available the
Terms
of Use
and a
Privacy
Policy
with your application
which meets the guidelines outlined in your Agreement with Google:
- The
Terms of Use
and
Privacy Policy
must be publicly
available.
- You must explicitly state in your application's
Terms of Use
that
by using your application, users are bound by
Google’s Terms of
Service
.
- You must notify users in your
Privacy Policy
that you are using
the Google Maps API(s) and incorporate by reference the
Google Privacy Policy
.
The recommended place to make available your
Terms of Use
and
Privacy Policy
depends upon your application's platform.
Mobile applications
If developing a mobile app it is recommended that you provide a link to the
Terms of Use
and
Privacy Policy
on your application's
download page in the relevant application store and in an application settings
menu.
Web applications
If developing a web application it is recommended that you provide a link to
the
Terms of Use
and
Privacy Policy
in the footer of your
website.
Pre-fetching, caching, or storage of content
Applications using the Places SDK for Android are bound by the terms of your
Agreement with Google. Subject to the terms of your Agreement, you must not
pre-fetch, index, store, or cache any Content except under the limited
conditions stated in the terms.
Note that the
place ID
, used to uniquely identify a place, is
exempt from
the
caching restrictions
. The place ID is returned in the `place_id` field in
Places SDK for Android responses. Learn how to save, refresh, and manage place IDs in the
Place IDs guide
.
Displaying Places SDK for Android results
You can display Places SDK for Android results on a Google Map, or without a map. If you want to
display Places SDK for Android results on a map, then these results must be displayed on a Google Map.
It is prohibited to use Places SDK for Android data on a map that is not a Google map.
Displaying the Google logo and attributions
If your application displays data on a Google Map, then the Google
logo will be included and may not be altered. Applications that display Google data
on the same screen as a Google Map are not required to provide further attribution to Google.
If your application displays data on a page or view that does not
also display a Google Map, you must show a Google logo with that data. For example,
if your application displays Google data on one tab, and a Google Map with that data
on another tab, the first tab must show the Google logo. If your application uses
search fields with or without autocomplete, the logo must be displayed inline.
The Google logo should be placed in the bottom left corner of the map, with the attribution
information placed in the bottom right corner, both of which should be on the map being
presented as a whole and not below the map or another place within the application. The
following map example shows the Google logo in the lower left of the map, and the attribution
in the lower right.
For use on a light background
|
For use on a dark background
|
|
|
The following zip file contains the Google logo in the correct sizes for
desktop, Android, and iOS applications. You may not resize or modify these
logos in any way.
Download:
google_logo.zip
Don't modify the attribution.
Don't remove, obscure, or crop out the attribution
information. You cannot use Google logos inline (for example, "These maps are
from [Google_logo]").
Keep the attribution close.
If using screenshots of Google imagery outside of
direct embeds, include the standard attribution as it appears in the image. If necessary,
you may customize the style and placement of the attribution text, so long as the text is
within close proximity of the content and legible to the average viewer or reader.
You may not move the attribution away from the content, such as to the end of your book,
the credits of your files or show, or the footer of your website.
Include third-party data providers.
Some of the data and images on our mapping
products come from providers other than Google. If using such imagery, the text of your
attribution must say the name "Google" and the relevant data provider(s), such as
"Map data: Google, Maxar Technologies." When there are third-party data providers cited
with the imagery, only including "Google" or the Google logo is not proper attribution.
If you're using Google Maps Platform on a device where the attribution display is not
practical, please
contact the Google sales team
to discuss licenses appropriate to your use case.
Other attribution requirements
Follow these instructions to retrieve third-party attributions, and to display
the attributions in your app.
Retrieving attributions from a Place
If your app displays information obtained by calling
get place by ID
,
the app must also display third-party attributions for the place details
obtained.
The API returns a
Place
object. To retrieve attributions from the
Place
object, call
Place.getAttributions()
.
The method returns a
List
of
String
objects, or null
if there are no attributions to display.
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.
}
}
);
Display attributions for a photo
If your app displays
photos
, you must
show attributions for each photo that has them.
PhotoMetadata
,
can contain either of two types of attributions:
To get the string attributions for a photo, call
PhotoMetadata.getAttributions()
. The method returns an
HTML character sequence, or an empty string if there are no attributions to
display.
// Get the photo metadata from the Place object.
PhotoMetadata photoMetadata = place.getPhotoMetadatas().get(0);
// Get the attribution text.
String attributions = photoMetadata.getAttributions();
To get the author attributions for a photo, call
PhotoMetadata.getAuthorAttributions()
. The method returns an
AuthorAttributions
object. This object contains a
List
of
AuthorAttribution
objects, one per author attribution.
// 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();
Display a review
A
Place
object can contain up to five reviews, where each review
is represented by a
Review
object. You can optionally display these reviews in your app.
When displaying reviews contributed by Google users, you must place the
author's name in close proximity. When available in the author attribution field
of the
Review
object, we recommend you include the author's photo
and link to their profile as well. The following image shows an example of a
review of a park:
Google also recommends that you display how reviews are being sorted to the
end user.
To access the reviews, call
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.
}
});
Displaying third-party attributions
Attributions to third-party providers contain content and links in HTML
format that you must preserve and display to the user in the format in which
they are provided. Google recommends displaying this information below the place details.
The API generates attributions for all the places that are used by the app.
The attributions are supplied per API call, not per place.
One way to display the attributions is with a
TextView
.
For example:
TextView attributionsText = (TextView) findViewById(R.id.attributions);
String thirdPartyAttributions = place.getAttributions();
attributionsText.setText(thirdPartyAttributions);
Example of a third-party attribution
Listings by <a href="https://www.example.com/">Example Company</a>
Style guidelines for Google attribution
Following are style guidelines for Google attributions in CSS and HTML if you're not able to use
the downloadable Google logo.
Clear space
The amount of clear space around the lockup should be equal to or greater than the height
of the "G" in Google.
The space between the attribution copy and the Google logo should be half the width of
the "G".
Legibility
The byline should always be clear, legible, and appear in the right color variation for a
given background. Always be sure to provide enough contrast for the logo variation that you
select.
Color
Use Google Material Gray 700 text on a white or light background that uses a range of 0%?40%
maximum tint of black.
Google
#5F6368
RGB 95 99 104
HSL 213 5 39
HSB 213 9 41
On darker backgrounds, and over photography or non-busy patterns, use white text for byline and
attribution.
Google
#FFFFFF
RGB 255 255 255
HSL 0 0 100
HSB 0 0 100
Font
Use the
Roboto
font.
Example CSS
The following CSS, when applied to the text "Google," would render "Google" with the appropriate
font, color, and spacing on a white or light background.
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;