This topic is old, but still adds information. May help others in the future.
Google needs a unique identifier to associate it with your project (with your Android package) for authentication and for managing traffic or quotas.
Oauth and the API key are such unique identifiers.
OAuth 2.0 client identifiers : if your application uses the OAuth 2.0 protocol, use the OAuth client identifier. OAuth is used to create an access token, which in turn is a unique identifier. However, the user must agree to the consent. https://developers.google.com/identity/protocols/OAuth2
API keys An API key is a unique identifier that you generate using the console. The advantage is that the user does not require user action or consent. But you cannot use the API key for authorization, unlike OAuth. Use the API key when the requested data is public and does not require user authentication, such as Google maps.
Service account : Google APIs, such as the Prediction API and Google Cloud Storage, can act on behalf of your application without access to user information. In these situations, your application must verify its identity with the API, but user consent is not required. Similarly, in enterprise scenarios, your application may request delegated access to certain resources. For these types of interserver interactions, you need a service account. https://developers.google.com/identity/protocols/OAuth2#serviceaccount
source share