When displaying data from the Places SDK for iOS, such as autocomplete results or place name and address, there are some attribution and Google logo requirements you must comply with.
Overview
The attribution and logo requirements fall into the following categories:
- Proper use of a map, if a map is displayed.
- The 'Powered by Google' attribution.
- Attributions for content supplied by third parties.
Displaying a map
You can display Places API results on a Google Map, or without a map. If you want to display Places API results on a map, then these results must be displayed on a Google Map. It is prohibited to use Places API data on a map that is not a Google map.
Note that you're still required to display any relevant attributions for third-party content.
The 'Powered by Google' attribution
If your application displays data from the Places API on a Google Map, then the Google logo will be included and may not be altered. Applications that display Places API data on the same screen as a Google Map are not required to provide further attribution to Google.
If your application displays Places API data on a page or view without a Google Map, you must show a 'Powered by Google' image with that data. For example, if your application displays a list of places retrieved by the API on one screen, and a Google Map with those places on another screen, the first screen must show the 'Powered by Google' attribution.
For use on a light background | For use on a dark background |
---|---|
![]() |
![]() |
The following ZIP file contains the 'Powered by Google' image in the correct sizes for desktop, Android and iOS applications. You may not resize or modify these images in any way.
Download: powered_by_google.zip
- For use on a light background:
powered-by-google-on-white<size-indicator>.png
- For use on a dark background:
powered-by-google-on-non-white<size-indicator>.png
Attributions for third-party content
Attributions to third-party providers contain content that you must display to the user in the format in which they are provided. Any links included in the attribution must be preserved. We recommend that your app shows this information below the place details.
Follow these instructions to retrieve third-party attributions for a single place or a collection of places.
Retrieving 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.
Retrieving 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.
Displaying attributions for a photo
If your app displays photos, you must
show attributions for each photo that has them. To get attributions for a
photo, call
GMSPlacePhotoMetadata.attributions
. This property is a
NSAttributedString
, or nil
if there are no attributions to
display.
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; } } }];
Displaying third-party attributions
Attributions to third-party providers are provided as NSAttributedString
objects and
contain content with links that you must display to the user. Any links included in the attribution must
be preserved.
The recommended way to display the attributions is with a UITextView
as 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
.
See the code sample below.
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.