This document lists requirements that are specific to all applications developed with the Places SDK for iOS, including the Place Autocomplete service that is part of that API. More general information for Google Maps developers may be found in the Google Maps Platform Terms of Service.
Providing terms of use and privacy policy
If you develop a Places SDK for iOS 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 iOS 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 iOS responses. Learn how to save, refresh, and manage place IDs in the Place IDs guide.
Displaying Places SDK for iOS results
You can display Places SDK for iOS results on a Google Map, or without a map. If you want to display Places SDK for iOS results on a map, then these results must be displayed on a Google Map. It is prohibited to use Places SDK for iOS 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
Attributions to third-party providers contain content and links that you must display to the user in the format in which they are provided. Google recommends that your app shows this information below the place details.
The third-party attributions returned by the API do not include the Google attribution. You must include this attribution yourself, as described in Displaying the Google logo and attributions.
Follow these instructions to retrieve third-party attributions for a single place or a collection of places.
Retrieve attributions for a single place
When you retrieve a place by getting a
place by ID, you
can retrieve the attributions for that place from the
attributions
property on
GMSPlace
.
The attributions
are provided as an
NSAttributedString
object.
Retrieve attributions for a collection of places
If your app displays information obtained by requesting the device's
current place, the app must display
third-party attributions for the place details displayed. You can retrieve the
attributions for all the places retrieved in the request, from the
attributions
property on
GMSPlaceLikelihoodList
.
The attributions
are provided as a
NSAttributedString
object, which you can access and display in
the same way as the attributions
on a single place, as described
above.
Search results attributions
In Europe, when using Google's unadulterated ranking, search products must have explainer text no more than 1 click away that describes the main factors and the weighting of the main factors that determine search results ranking. Explainer text:
Header: About these results
Body: When you search for businesses or places near a location, Google Maps will show you local results. Several factors — primarily relevance, distance and prominence — are combined to help find the best results for your search.
Button 1: Learn more
"Learn more" text should link to a Help Center article.
Button 2: OK
Display attributions for a photo
If your app displays
photos, you must
show any attributions
and authorAttributions
for each
photo that has them.
- To access any attributions, use
GMSPlacePhotoMetadata.attributions
. This property is aNSAttributedString
, ornil
if there are no attributions to display. - To access any author attributions, use
GMSPlacePhotoMetadata.authorAttributions
. This property contains an array ofGMSPlaceAuthorAttribution
objects.
Swift
GMSPlacesClient.sharedClient().lookUpPhotosForPlaceID(placeID) { (photos, error) -> Void in if let error = error { // TODO: handle the error. print("Error: \(error.description)") } else { // Get attribution for the first photo in the list. if let photo = photos?.results.first { let attributions = photo.attributions } } }
Objective-C
[[GMSPlacesClient sharedClient] lookUpPhotosForPlaceID:placeID callback:^(GMSPlacePhotoMetadataList *_Nullable photos, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get attribution for the first photo in the list. if (photos.results.count > 0) { GMSPlacePhotoMetadata *photo = photos.results.firstObject; NSAttributedString *attributions = photo.attributions; } } }];
Display a review
A GMSPlace
object can contain up to five reviews, where each
review is represented by a GMSPlaceReview
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 GMSPlaceReview
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:
Swift
// Define a Place ID. let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs" // Specify the place data types to return. let myProperties: [GMSPlaceProperty] = [.name, .website, .reviews] // Create the GMSFetchPlaceRequest object. let fetchPlaceRequest = GMSFetchPlaceRequest(placeID: placeID, placeProperties: myProperties) client.fetchPlaceWithRequest(fetchPlaceRequest: fetchPlaceRequest, callback: { (place: GMSPlace?, error: Error?) in if let error = error { print("An error occurred: \(error.localizedDescription)") return } if let place = place { let firstReview: GMSPlaceReview = place.reviews![0] // Use firstReview to access review text, authorAttribution, and other fields. } })
Objective-C
// Define a Place ID. NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs"; // Specify the place data types to return, including reviews. NSArray<GMSPlaceProperty *> *myProperties = @[GMSPlacePropertyName, GMSPlacePropertyWebsite,GMSPlacePropertyReviews]; GMSFetchPlaceRequest *fetchPlaceRequest = [[GMSFetchPlaceRequest alloc] initWithPlaceID:placeID placeProperties: myProperties]; [placesClient fetchPlaceWithRequest: fetchPlaceRequest, callback: ^(GMSPlace *_Nullable place, NSError *_Nullable error) { if (error) { // TODO: handle the error. NSLog(@"Error: %@", [error description]); } else { // Get first review. GMSPlaceReview *firstReview = [place reviews][0]; // Use firstReview to access review text, authorAttribution, and other fields. } }];
Display third-party attributions
Attributions to third-party providers are provided as NSAttributedString
objects that
contain content and links that you must preserve and display to the user.
The recommended way to display the attributions is with a UITextView
, because links in the attributions must work.
To ensure links work, set a delegate on the UITextView
and set the shouldInteractWithURL
method of your UITextViewDelegate
to return YES
.
Swift
... self.attributionTextView.delegate = self ... // MARK: - UITextViewDelegate func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool { // Make links clickable. return true }
Objective-C
... self.attributionTextView.delegate = self; ... #pragma mark - UITextViewDelegate - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)url inRange:(NSRange)characterRange { // Make links clickable. return YES; }
Example of a third-party attribution
A third-party attribution typically consists of text with a link. For example:
Listings by Example Company
In the above example, the Example Company text range is covered by
an NSLink
attribute.
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.
#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.
#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;