Condividere i diritti di app con Google TV utilizzando l'SDK Engage

Questa guida contiene le istruzioni per gli sviluppatori per condividere i dati di abbonamento e diritti dell'app con Google TV utilizzando l'SDK Engage. Gli utenti possono trovare i contenuti a cui hanno diritto e consentire a Google TV di fornire consigli sui contenuti altamente pertinenti direttamente nelle esperienze Google TV su TV, dispositivi mobili e tablet.

Prerequisiti

L'onboarding del feed delle azioni multimediali è necessario prima di poter utilizzare l'API per i diritti del dispositivo. Se non lo hai ancora fatto, completa la procedura di onboarding del feed Azioni multimediali.

Preparazione

Prima di iniziare, completa i seguenti passaggi: Verifica che la tua app abbia come target il livello API 19 o versioni successive per questa integrazione

  1. Aggiungi la libreria com.google.android.engage alla tua app:

    Esistono SDK separati da utilizzare nell'integrazione: uno per le app mobile e uno per le app TV.

    Per dispositivi mobili

    
      dependencies {
        implementation 'com.google.android.engage:engage-core:1.5.5
      }
    

    per TV

    
      dependencies {
        implementation 'com.google.android.engage:engage-tv:1.0.2
      }
    
  2. Imposta l'ambiente di servizio Engage su produzione nel file AndroidManifest.xml.

    Per l'apk mobile

    
    <meta-data
          android:name="com.google.android.engage.service.ENV"
          android:value="PRODUCTION">
    </meta-data>
    

    APK per TV

    
    <meta-data
        android:name="com.google.android.engage.service.ENV"
        android:value="PRODUCTION">
    </meta-data>
    
  3. Prima di inviare l'APK a Google, imposta l'ambiente del servizio di coinvolgimento su produzione nel file AndroidManifest.xml. Per prestazioni ottimali e compatibilità futura, pubblica i dati solo quando l'app è in primo piano e l'utente interagisce attivamente con essa, ad esempio all'avvio dell'app, dopo l'accesso o durante l'utilizzo attivo. La pubblicazione da processi in background è sconsigliata.

  4. Pubblica le informazioni sull'abbonamento nei seguenti eventi:

    1. L'utente accede alla tua app.
    2. L'utente passa da un profilo all'altro (se i profili sono supportati).
    3. L'utente acquista un nuovo abbonamento.
    4. L'utente esegue l'upgrade di un abbonamento esistente.
    5. L'abbonamento dell'utente scade.

Integrazione

Questa sezione fornisce gli esempi di codice e le istruzioni necessarie per implementare AccountProfile e SubscriptionEntity per gestire vari tipi di abbonamento.

Account e profilo utente

Per consentire le funzionalità personalizzate su Google TV, fornisci le informazioni dell'account. Utilizza AccountProfile per fornire:

  1. ID account: un identificatore univoco che rappresenta l'account dell'utente. Può trattarsi dell'ID account effettivo o di una versione offuscata in modo appropriato.
// Set the account ID to which the subscription applies.
// Don't set the profile ID because subscription applies to account level.
val accountProfile = AccountProfile.Builder()
  .setAccountId("user_account_id")
  .setProfileId("user_profile id")
  .build();

Abbonamento al livello comune

Per gli utenti con abbonamenti di base ai servizi dei fornitori di contenuti multimediali, ad esempio un servizio con un livello di abbonamento che concede l'accesso a tutti i contenuti a pagamento, fornisci questi dettagli essenziali:

  1. Tipo di abbonamento:indica chiaramente il piano di abbonamento specifico dell'utente.

    1. SUBSCRIPTION_TYPE_ACTIVE: L'utente ha un abbonamento a pagamento attivo.
    2. SUBSCRIPTION_TYPE_ACTIVE_TRIAL: L'utente ha un abbonamento di prova.
    3. SUBSCRIPTION_TYPE_INACTIVE: l'utente ha un account, ma non ha un abbonamento o una prova attivi.
  2. Tempo di scadenza:tempo facoltativo in millisecondi. Specifica la data di scadenza dell'abbonamento.

  3. Nome pacchetto del fornitore:specifica il nome del pacchetto dell'app che gestisce l'abbonamento.

Esempio per il feed del fornitore di contenuti multimediali di esempio.

"actionAccessibilityRequirement": [
  {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2022-06-01T07:00:00Z",
    "availabilityEnds": "2026-05-31T07:00:00Z",
    "requiresSubscription": {
    "@type": "MediaSubscription",
    // Don't match this string,
    // ID is only used to for reconciliation purpose
    "@id": "https://www.example.com/971bfc78-d13a-4419",
    // Don't match this, as name is only used for displaying purpose
    "name": "Basic common name",
    "commonTier": true
  }

L'esempio seguente crea un SubscriptionEntity per un utente:

val subscription = SubscriptionEntity
  .Builder()
  setSubscriptionType(
    SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE
  )
  .setProviderPackageName("com.google.android.example")
  // Optional
  // December 30, 2025 12:00:00AM in milliseconds since epoch
  .setExpirationTimeMillis(1767052800000)
  .build();

Abbonamento Premium

Se l'app offre pacchetti di abbonamento premium a più livelli, che includono contenuti o funzionalità estesi oltre al livello comune, rappresentalo aggiungendo uno o più diritti all'abbonamento.

Questo diritto include i seguenti campi:

  1. Identificatore:stringa identificatore obbligatoria per questo diritto. Questo valore deve corrispondere a uno degli identificatori dei diritti (tieni presente che non si tratta del campo ID) forniti nel feed del fornitore di contenuti multimediali pubblicato su Google TV.
  2. Nome:si tratta di informazioni ausiliarie utilizzate per la corrispondenza dei diritti. Sebbene sia facoltativo, fornire un nome di diritto leggibile migliora la comprensione dei diritti degli utenti sia per gli sviluppatori che per i team di assistenza. Ad esempio: Sling Orange.
  3. Expiration TimeMillis: specifica facoltativamente la scadenza in millisecondi per questo diritto, se diversa dalla scadenza dell'abbonamento. Per impostazione predefinita, il diritto scadrà con la scadenza dell'abbonamento.

Per il seguente snippet di feed del fornitore di contenuti multimediali di esempio:

"actionAccessibilityRequirement": [
  {
    "@type": "ActionAccessSpecification",
    "category": "subscription",
    "availabilityStarts": "2022-06-01T07:00:00Z",
    "availabilityEnds": "2026-05-31T07:00:00Z",
    "requiresSubscription": {
    "@type": "MediaSubscription",
    // Don't match this string,
    // ID is only used to for reconciliation purpose
    "@id": "https://www.example.com/971bfc78-d13a-4419",

    // Don't match this, as name is only used for displaying purpose
    "name": "Example entitlement name",
    "commonTier": false,
    // match this identifier in your API. This is the crucial
    // entitlement identifier used for recommendation purpose.
    "identifier": "example.com:entitlementString1"
  }

L'esempio seguente crea un SubscriptionEntity per un utente abbonato:

// Subscription with entitlements.
// The entitlement expires at the same time as its subscription.
val subscription = SubscriptionEntity
  .Builder()
  .setSubscriptionType(
    SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE
  )
  .setProviderPackageName("com.google.android.example")
  // Optional
  // December 30, 2025 12:00:00AM in milliseconds
  .setExpirationTimeMillis(1767052800000)
  .addEntitlement(
    SubscriptionEntitlement.Builder()
    // matches with the identifier in media provider feed
    .setEntitlementId("example.com:entitlementString1")
    .setDisplayName("entitlement name1")
    .build()
  )
  .build();
// Subscription with entitlements
// The entitement has different expiration time from its subscription
val subscription = SubscriptionEntity
  .Builder()
  .setSubscriptionType(
    SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE
  )
  .setProviderPackageName("com.google.android.example")
  // Optional
  // December 30, 2025 12:00:00AM in milliseconds
  .setExpirationTimeMillis(1767052800000)
  .addEntitlement(
    SubscriptionEntitlement.Builder()
    .setEntitlementId("example.com:entitlementString1")
    .setDisplayName("entitlement name1")
    // You may set the expiration time for entitlement
    // December 15, 2025 10:00:00 AM in milliseconds
    .setExpirationTimeMillis(1765792800000)
    .build())
  .build();

Abbonamento al pacchetto di servizi collegati

Sebbene gli abbonamenti appartengano in genere al fornitore di contenuti multimediali dell'app di origine, un abbonamento può essere attribuito a un pacchetto di servizi collegato specificando il nome del pacchetto di servizi collegato all'interno dell'abbonamento.

Il seguente esempio di codice mostra come creare un abbonamento utente.

// Subscription for linked service package
val subscription = SubscriptionEntity
  .Builder()
  .setSubscriptionType(
    SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE
  )
  .setProviderPackageName("com.google.android.example")
  // Optional
  // December 30, 2025 12:00:00AM in milliseconds since epoch
  .setExpirationTimeMillis(1767052800000)
  .build();

Inoltre, se l'utente ha un altro abbonamento a un servizio sussidiario, aggiungi un altro abbonamento e imposta il nome del pacchetto del servizio collegato di conseguenza.

// Subscription for linked service package
val linkedSubscription = Subscription
  .Builder()
  .setSubscriptionType(
    SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE
  )
  .setProviderPackageName("linked service package name")
  // Optional
  // December 30, 2025 12:00:00AM in milliseconds since epoch
  .setExpirationTimeMillis(1767052800000)
  .addBundledSubscription(
    BundledSubscription.Builder()
      .setBundledSubscriptionProviderPackageName(
        "bundled-subscription-package-name"
      )
      .setSubscriptionType(SubscriptionType.SUBSCRIPTION_TYPE_ACTIVE)
      .setExpirationTimeMillis(111)
      .addEntitlement(
        SubscriptionEntitlement.Builder()
        .setExpirationTimeMillis(111)
        .setDisplayName("Silver subscription")
        .setEntitlementId("subscription.tier.platinum")
        .build()
      )
      .build()
  )
    .build();

Se vuoi, aggiungi i diritti anche a un abbonamento al servizio collegato.

Fornisci il set di abbonamenti

Esegui il job di pubblicazione dei contenuti mentre l'app è in primo piano.

Utilizza il metodo publishSubscriptionCluster() della classe AppEngagePublishClient per pubblicare un oggetto SubscriptionCluster.

Utilizza isServiceAvailable per verificare se il servizio è disponibile per l'integrazione.

client.publishSubscription(
  PublishSubscriptionRequest.Builder()
    .setAccountProfile(accountProfile)
    .setSubscription(subscription)
    .build();
  )

Utilizza setSubscription() per verificare che l'utente debba avere un solo abbonamento al servizio.

Utilizza addLinkedSubscription() o addLinkedSubscriptions(), che accettano un elenco di abbonamenti collegati, per consentire all'utente di avere zero o più abbonamenti collegati.

Quando il servizio riceve la richiesta, viene creato un nuovo inserimento e quello precedente viene eliminato automaticamente dopo 60 giorni. Il sistema utilizza sempre l'ultima voce. In caso di errore, l'intera richiesta viene rifiutata e lo stato esistente viene mantenuto.

Mantenere l'abbonamento aggiornato

  1. Per fornire aggiornamenti immediati in caso di modifiche, chiama publishSubscriptionCluster() ogni volta che lo stato dell'abbonamento di un utente cambia come attivazione, disattivazione, upgrade e downgrade.
  2. Per fornire una convalida regolare per una precisione continua, chiama publishSubscriptionCluster() almeno una volta al mese.

  3. Per eliminare i dati di scoperta dei video, elimina manualmente i dati di un utente dal server Google TV prima del periodo di conservazione standard di 60 giorni utilizzando il metodo client.deleteClusters(). In questo modo vengono eliminati tutti i dati esistenti sulla scoperta dei video per il profilo dell'account o per l'intero account, a seconda del DeleteReason specificato.

    Snippet di codice per rimuovere l'abbonamento dell'utente

      // If the user logs out from your media app, you must make the following call
      // to remove subscription and other video discovery data from the current
      // google TV device.
      client.deleteClusters(
        new DeleteClustersRequest.Builder()
          .setAccountProfile(
            AccountProfile
              .Builder()
              .setAccountId()
              .setProfileId()
              .build()
          )
        .setReason(DeleteReason.DELETE_REASON_USER_LOG_OUT)
        .build()
        )
      ```
    Following code snippet demonstrates removal of user subscription
    when user revokes the consent.
    
    ```Kotlin
      // If the user revokes the consent to share across device, make the call
      // to remove subscription and other video discovery data from all google
      // TV devices.
      client.deleteClusters(
        new DeleteClustersRequest.Builder()
          .setAccountProfile(
            AccountProfile
            .Builder()
            .setAccountId()
            .setProfileId()
            .build()
          )
          .setReason(DeleteReason.DELETE_REASON_LOSS_OF_CONSENT)
          .build()
      )
      ```
    
    Following code demonstrates how to remove subscription data on user profile
    deletion.
    
    ```Kotlin
    // If the user delete a specific profile, you must make the following call
    // to remove subscription data and other video discovery data.
    client.deleteClusters(
      new DeleteClustersRequest.Builder()
      .setAccountProfile(
        AccountProfile
        .Builder()
        .setAccountId()
        .setProfileId()
        .build()
      )
      .setReason(DeleteReason.DELETE_REASON_ACCOUNT_PROFILE_DELETION)
      .build()
    )
    

Test

Questa sezione fornisce una guida passo passo per testare l'implementazione degli abbonamenti. Verifica l'accuratezza dei dati e il corretto funzionamento prima del lancio.

Elenco di controllo per la pubblicazione dell'integrazione

  1. La pubblicazione deve avvenire quando l'app è in primo piano e l'utente interagisce attivamente con essa.

  2. Pubblica quando:

    • L'utente accede per la prima volta.
    • L'utente cambia profilo (se i profili sono supportati).
    • L'utente acquista un nuovo abbonamento.
    • L'utente esegue l'upgrade dell'abbonamento.
    • L'abbonamento dell'utente scade.
  3. Controlla se l'app chiama correttamente le API isServiceAvailable() e publishClusters() in logcat, negli eventi di pubblicazione.

  4. Verifica che i dati siano visibili nell'app di verifica. L'abbonamento deve essere visualizzato come riga separata. Quando viene richiamata l'API Publish, i dati dovrebbero essere visualizzati nell'app di verifica.

    • Verifica che il flag del servizio Engage NON sia impostato sulla produzione nel file manifest di Android dell'app.
    • Installa e apri l'app Engage Verification.
    • Se il valore di isServiceAvailable è false nell'app di verifica, fai clic sul pulsante Toggle all'interno dell'app di verifica per impostarlo su true.
    • Inserisci il nome del pacchetto dell'app. I dati pubblicati vengono visualizzati automaticamente.
  5. Vai all'app ed esegui ciascuna delle seguenti azioni:

    • Accedi.
    • passare da un profilo all'altro (se supportato).
    • Acquista un nuovo abbonamento.
    • Eseguire l'upgrade di un abbonamento esistente.
    • Scadenza dell'abbonamento.

Verifica l'integrazione

Per testare l'integrazione, utilizza l'app di verifica.

L'app di verifica è un'applicazione Android che gli sviluppatori possono utilizzare per verificare che l'integrazione funzioni. L'app include funzionalità per aiutare gli sviluppatori a verificare i dati e trasmettere intent. Consente di verificare l'accuratezza dei dati e la corretta funzionalità prima del lancio.

  1. Per ciascun evento, verifica se l'app ha richiamato l'API publishSubscription. Verifica i dati pubblicati nell'app di verifica. Verifica che tutto sia verde nell'app di verifica
  2. Se tutte le informazioni dell'entità sono corrette, viene visualizzato un segno di spunta verde "Tutto ok" in tutte le entità.

    Screenshot della verifica riuscita dell&#39;app
    Figura 1. Abbonamento riuscito
  3. I problemi vengono evidenziati anche nell'app di verifica

    Screenshot dell&#39;errore dell&#39;app di verifica
    Figura 2.Abbonamento non riuscito
  4. Per visualizzare i problemi nell'abbonamento incluso, utilizza il telecomando della TV per selezionare l'abbonamento incluso specifico e fai clic per visualizzare i problemi. Potresti dover prima impostare lo stato attivo sulla riga e spostarti verso destra per trovare la scheda Abbonamento in bundle. I problemi vengono evidenziati in rosso, come mostrato nella Figura 3. Inoltre, utilizza il telecomando per scorrere verso il basso e visualizzare i problemi relativi ai diritti all'interno dell'abbonamento in bundle

    Screenshot dei dettagli dell&#39;errore dell&#39;app di verifica
    Figura 3.Errori relativi all'abbonamento
  5. Per visualizzare i problemi relativi al diritto, utilizza il telecomando della TV per concentrarti su quel diritto specifico e fai clic per visualizzare i problemi. I problemi sono evidenziati in rosso.

    Screenshot dell&#39;errore dell&#39;app di verifica
    Figura 4.Dettagli errore abbonamento

Scarica

Prima di scaricare, devi accettare i seguenti Termini e condizioni.

Termini e condizioni

Questo è il Contratto di licenza del Software Development Kit di Android

1. Introduzione

1.1 Il Software Development Kit di Android (indicato nel Contratto di licenza come "SDK" e che include nello specifico i file di sistema Android, le API in pacchetto e i componenti aggiuntivi delle API di Google) è concesso in licenza all'utente in conformità ai termini del Contratto di licenza. Il Contratto di licenza costituisce un contratto legalmente vincolante tra te e Google in relazione al tuo utilizzo dell'SDK. 1.2 Per "Android" si intende lo stack software per dispositivi di Android, reso disponibile nell'ambito del Progetto open source Android, disponibile al seguente URL: https://source.android.com/, di volta in volta aggiornato. 1.3 Per "implementazione compatibile" si intende qualsiasi dispositivo Android (i) conforme al documento relativo alla Definizione di compatibilità Android, disponibile sul sito web per la compatibilità Android (https://source.android.com/compatibility) e che potrebbe essere aggiornato di tanto in tanto; e (ii) supera con successo il Compatibility Test Suite (CTS) Android. 1.4 Per "Google" si intende Google LLC, organizzata secondo le leggi dello Stato del Delaware, Stati Uniti, e opera ai sensi delle leggi degli Stati Uniti, con sede principale dell'attività all'indirizzo 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA.

2. Accettazione del presente Contratto di licenza

2.1 Per poter utilizzare l'SDK, deve accettare il Contratto di licenza. Se non accetti il Contratto di licenza, non potrai utilizzare l'SDK. 2.2 Facendo clic per accettare e/o utilizzare questo SDK, l'utente accetta i termini del Contratto di licenza. 2.3 L'utente non può utilizzare l'SDK e non può accettare il Contratto di licenza se gli è vietato ricevere l'SDK ai sensi delle leggi degli Stati Uniti o di altri paesi, compreso il paese in cui risiede o da cui utilizza l'SDK. 2.4 Se accetta di essere vincolato dal Contratto di licenza per conto del proprio datore di lavoro o altra persona giuridica, l'utente dichiara e garantisce di disporre della piena autorità legale per vincolare il proprio datore di lavoro o tale persona giuridica al Contratto di licenza. Qualora non disponga di tale autorità, non può accettare il Contratto di licenza o utilizzare l'SDK per conto del proprio datore di lavoro o altra persona giuridica.

3. Licenza SDK da Google

3.1 Ai sensi dei termini del Contratto di licenza, Google concede all'utente una licenza limitata, mondiale, esente da royalty, non cedibile, non esclusiva e non cedibile in sublicenza per utilizzare l'SDK esclusivamente per sviluppare applicazioni per implementazioni compatibili di Android. 3.2 Non può utilizzare questo SDK per sviluppare applicazioni per altre piattaforme (incluse implementazioni non compatibili di Android) o per sviluppare un altro SDK. L'utente è ovviamente libero di sviluppare applicazioni per altre piattaforme, comprese le implementazioni non compatibili di Android, purché l'SDK non venga utilizzato a tale scopo. 3.3 L'utente accetta che Google o terze parti possiedano tutti i diritti, i titoli e gli interessi legali relativi all'SDK, compresi i Diritti di proprietà intellettuale esistenti nell'SDK. Per "Diritti di proprietà intellettuale" si intendono tutti i diritti ai sensi delle norme sui brevetti, sul copyright, sui segreti industriali, sui marchi e qualsiasi altro diritto di proprietà. Google si riserva tutti i diritti non concessi esplicitamente all'utente. 3.4 L'utente non può utilizzare l'SDK per scopi non espressamente consentiti dal Contratto di licenza. Salvo nella misura richiesta dalle licenze di terze parti applicabili, l'utente non può copiare (tranne per scopi di backup), modificare, adattare, ridistribuire, decompilare, decodificare, disassemblare o creare opere derivate dell'SDK o di qualsiasi parte dell'SDK. 3.5 L'utilizzo, la riproduzione e la distribuzione di componenti dell'SDK concessi ai sensi di una licenza software open source sono regolati unicamente dai termini di tale licenza software open source e non dal Contratto di licenza. 3.6 L'utente accetta che la forma e la natura dell'SDK fornito da Google possano cambiare senza preavviso e che le versioni future dell'SDK possano essere incompatibili con applicazioni sviluppate in versioni precedenti dell'SDK. Accetti che Google possa interrompere (definitivamente o temporaneamente) la fornitura dell'SDK (o di qualsiasi funzionalità all'interno dell'SDK) a te o agli utenti in generale a esclusiva discrezione di Google e senza preavviso. 3.7 Nulla nel Contratto di licenza concede all'utente il diritto di utilizzare i nomi commerciali, i marchi, i marchi di servizio, i loghi, i nomi di dominio e altri elementi distintivi del brand di Google. 3.8 L'utente accetta di non rimuovere, oscurare o alterare qualsiasi informazione sui diritti proprietari (incluse quelle su copyright e marchi) che potrebbe essere applicata o contenuta nell'SDK.

4. Utilizzo dell'SDK da parte dello Sviluppatore

4.1 Google accetta di non ottenere alcun diritto, titolo o interesse dall'utente (o dai suoi concessori di licenza) ai sensi del Contratto di licenza in o in qualsiasi applicazione software che lei sviluppa utilizzando l'SDK, compresi eventuali diritti di proprietà intellettuale su tali applicazioni. 4.2 L'utente accetta di utilizzare l'SDK e di scrivere applicazioni solo per le finalità consentite (a) dal Contratto di licenza e (b) da qualsiasi legge o regolamento vigente, nonché da qualsiasi pratica o linea guida generalmente accettata nelle giurisdizioni di competenza (incluse le leggi relative all'esportazione di dati o software da e verso gli Stati Uniti o altri paesi pertinenti). 4.3 L'utente accetta di proteggere la privacy e i diritti legali di tali utenti se utilizza l'SDK per sviluppare applicazioni per utenti pubblici. Se gli utenti forniscono nomi utente, password o altre informazioni di accesso o di tipo privato, l'utente è tenuto a informarli che tali informazioni saranno disponibili nella sua applicazione; egli è inoltre tenuto a fornire a tali utenti un'informativa sulla privacy legalmente valida e una protezione appropriata. Se la sua applicazione memorizza informazioni personali o sensibili fornite dagli utenti, deve farlo in modo sicuro. Se l'utente fornisce all'applicazione i dati dell'account Google, quest'ultima potrà utilizzare tali informazioni per accedere all'account Google solo quando e per gli scopi limitati per i quali l'utente ha concesso l'autorizzazione a farlo. 4.4 L'utente accetta di non intraprendere alcuna attività con l'SDK, compreso lo sviluppo o la distribuzione di un'applicazione, che interferisca, disturbi, danneggi o acceda in alcun modo non autorizzato a proprietà di terze parti, a server, reti o ad altre comunicazioni mobili, compresi server, reti o altri operatori, ma non intraprenderà alcuna attività con l'SDK, compreso lo sviluppo o la distribuzione di un'applicazione. 4.5 L'utente accetta di essere l'unico responsabile (ed esonera Google da qualsiasi responsabilità nei suoi confronti o nei confronti di terze parti) di qualsiasi dato, contenuto o risorsa creata, trasmessa o visualizzata tramite Android e/o applicazioni per Android, nonché delle conseguenze delle proprie azioni (compresi eventuali danni o perdite subiti da Google) in questo modo. 4.6 L'utente accetta di essere l'unico soggetto responsabile (e che Google non ha alcuna responsabilità nei suoi confronti o nei suoi confronti)

5. Credenziali dello Sviluppatore

5.1 L'utente accetta di essere responsabile di mantenere la riservatezza delle credenziali dello sviluppatore che possono essergli fornite da Google o che possono scegliere personalmente, nonché di essere l'unico responsabile di tutte le applicazioni sviluppate con le credenziali dello sviluppatore.

6. Privacy e informazioni

6.1 Per poter continuare a innovare e migliorare l'SDK, Google potrebbe raccogliere dal software alcune statistiche sull'utilizzo, inclusi, a titolo esemplificativo, identificatore univoco, indirizzo IP associato, numero di versione del software e informazioni sugli strumenti e/o servizi utilizzati nell'SDK e sulla relativa modalità di utilizzo. Prima che una qualsiasi di queste informazioni venga raccolta, l'SDK ti invierà una notifica e richiederà il tuo consenso. Se neghi il consenso, le informazioni non verranno raccolte. 6.2 I dati raccolti vengono esaminati nel complesso per migliorare l'SDK e vengono gestiti nel rispetto delle Norme sulla privacy di Google, consultabili al seguente URL: https://policies.google.com/privacy 6.3 Set di dati anonimizzati e aggregati di dati possono essere condivisi con i partner di Google per migliorare l'SDK.

7. Applicazioni di terze parti

7.1 Se l'utente utilizza l'SDK per eseguire applicazioni sviluppate da una terza parte o che accedono a dati, contenuti o risorse forniti da una terza parte, accetta che Google non sia responsabile di tali applicazioni, dati, contenuti o risorse. L'utente accetta che per tutti i dati, i contenuti o le risorse a cui può accedere tramite applicazioni di terze parti, il solo responsabile è la persona da cui tali contenuti hanno avuto origine e che Google non si assume alcuna responsabilità in caso di perdite o danni che potrebbero verificarsi a seguito dell'utilizzo di uno di questi dati, contenuti, applicazioni o risorse di terze parti o dell'accesso agli stessi. 7.2 L'utente deve sapere che i dati, i contenuti e le risorse presentati tramite un'applicazione di terze parti potrebbero essere protetti da diritti di proprietà intellettuale detenuti dai fornitori (o da altre persone o azienda per loro conto). L'utente non può modificare, noleggiare, cedere in leasing, prestare, vendere, distribuire o creare opere derivate sulla base di questi dati, contenuti o risorse (in parte o per intero) a meno che l'utente sia stato espressamente autorizzato a farlo da parte dei proprietari interessati. 7.3 L'utente riconosce che l'utilizzo di applicazioni, dati, contenuti o risorse di terze parti potrebbe essere soggetto ad altri termini e condizioni che regolano il rapporto tra l'utente e la terza parte in questione. In tal caso, il Contratto di licenza non influirà sul rapporto giuridico dell'utente con tali terze parti.

8. Utilizzo delle API Android

8.1 API di dati di Google 8.1.1 Se l'utente utilizza un'API per recuperare i dati da Google, riconosce che i dati possono essere protetti da diritti di proprietà intellettuale di proprietà di Google o dei soggetti che li forniscono (o di altre persone o aziende per loro conto). L'utilizzo di tali API potrebbe essere soggetto a Termini di servizio aggiuntivi. L'utente non può modificare, noleggiare, cedere in leasing, prestare, vendere, distribuire o creare opere derivate sulla base di questi dati (in parte o per intero) a meno che l'utente sia stato espressamente autorizzato a farlo dai relativi termini di servizio. 8.1.2 Se l'utente utilizza un'API per recuperare i dati di un utente da Google, riconosce e accetta che potrà recuperare i dati solo con il consenso esplicito dell'utente e solo quando e per le finalità limitate per cui l'utente ha concesso l'autorizzazione a farlo. Se l'utente utilizza l'API Android Recognition Service, documentata al seguente URL: https://developer.android.com/reference/data responsabile, che è stato aggiornato all'app Google Cloud, come Se fai clic per accettare, accetti i termini dell'Addendum per il trattamento dei dati per i Prodotti per i quali Google è un Responsabile del trattamento dei dati.

9. Risoluzione del Contratto di licenza

9.1 Il Contratto di licenza continuerà a essere valido fino alla risoluzione da parte tua o di Google come indicato di seguito. 9.2 L'utente può risolvere il Contratto di licenza interrompendo l'utilizzo dell'SDK e di tutte le credenziali dello sviluppatore pertinenti. 9.3 Google può risolvere in qualsiasi momento il Contratto di licenza con l'utente se: (A) l'utente ha violato una qualsiasi disposizione del Contratto di licenza; o (B) Google è tenuta a farlo per legge; o (C) il partner con cui Google ha offerto determinate parti dell'SDK (come le API) all'utente ha terminato il suo rapporto con Google o se ha cessato di offrire a sua esclusiva parti dell'SDK determinate parti dell'SDK o di cui l'utente decide a sua discrezione di non utilizzare più a sua discrezione determinate parti dell'SDK o di non 9.4 Al termine del Contratto di licenza, tutti i diritti, le obbligazioni e le responsabilità legali di cui tu e Google avete beneficiato, a cui siete stati soggetti (o che sono maturati nel tempo durante il periodo di validità del Contratto di licenza) o che sono stati espressamente dichiarati per durare a tempo indeterminato, non saranno interessati da questa cessazione e le disposizioni del paragrafo 14.7 continueranno a essere applicate a tali diritti, obbligazioni e responsabilità a tempo indeterminato.

10. ESCLUSIONE DI GARANZIE

10.1 L'UTENTE RICONOSCE E ACCETTA ESPRESSAMENTE CHE L'UTILIZZO DELL'SDK È A SUO ESCLUSIVO RISCHIO E CHE L'SDK VIENE FORNITO "COSÌ COM'È" E "COME DISPONIBILE", SENZA ALCUNA GARANZIA DI ALCUN TIPO DA GOOGLE. 10.2 L'UTILIZZO DELL'SDK E DI QUALSIASI MATERIALE SCARICATO O IN ALTRO TIPO OTTENUTO ATTRAVERSO L'UTILIZZO DELL'SDK È A PROPRIA DISCREZIONE E RISCHIO E L'UTENTE È L'UNICO RESPONSABILE DI QUALSIASI DANNO AL SISTEMA DEL COMPUTER O DA ALTRO DISPOSITIVO O DELLA PERDITA DI DATI. 10.3 GOOGLE LIMITA INOLTRE ESPRESSAMENTE OGNI GARANZIA E CONDIZIONE ESPLICITA O IMPLICITA COMPRESE, A TITOLO ESEMPLIFICATIVO, LE GARANZIE E LE CONDIZIONI IMPLICITE DI COMMERCIABILITÀ, IDONEITÀ PER UN FINE PARTICOLARE E NON VIOLAZIONE DI DIRITTI ALTRUI.

11. LIMITAZIONE DI RESPONSABILITÀ

11.1 L'UTENTE RICONOSCE E ACCETTA CHE GOOGLE, LE PROPRIE CONSOCIATE E AFFILIATE E I SUOI LICENZIATARI NON SARANNO RESPONSABILI NEI CONFRONTI DELL'UTENTE AI SENSI DI QUALSIASI TEORIA DI RESPONSABILITÀ PER DANNI DIRETTI, INDIRETTI, INCIDENTALI, SPECIALI, CONSEQUENZIALI O ESEMPLARI

12. Indennizzo

12.1 Nella misura massima consentita dalla legge, l'utente accetta di difendere, indennizzare e tenere indenne Google, le sue società consociate e i rispettivi dirigenti, funzionari, dipendenti e agenti da e contro qualsiasi reclamo, azione, causa o procedimento, nonché qualsiasi perdita, responsabilità, danno, costo e spesa (inclusi eventuali diritti d'autore o spese legali derivanti da qualsiasi altro patto di copyright o applicazione del copyright da parte dell'utente, da qualsiasi altro diritto commerciale o da parte dell'utente che violi o accumuli diritti di copyright o commercializzati da parte dell'utente;

13. Modifiche al Contratto di licenza

13.1 Google potrebbe apportare modifiche al Contratto di licenza durante la distribuzione di nuove versioni dell'SDK. Qualora vengano apportate tali modifiche, Google renderà disponibile una nuova versione del Contratto di licenza sul sito web in cui viene reso disponibile l'SDK. 14.1 Il Contratto di licenza costituisce l'intero contratto legale tra l'utente e Google, regola il suo utilizzo dell'SDK (esclusi eventuali servizi che Google potrebbe fornire all'utente ai sensi di un accordo scritto separato) e sostituisce completamente qualsiasi precedente contratto stipulato tra l'utente e Google in relazione all'SDK. 14.2 L'utente accetta che qualora Google non eserciti o faccia valere alcun diritto legale o rimedio contenuto nel Contratto di licenza (o di cui Google ha il beneficio ai sensi di qualsiasi legge vigente), questo non sarà considerato una rinuncia formale dei diritti di Google e che quei diritti o rimedi saranno ancora disponibili per Google. 14.3 Se qualsiasi tribunale di competente giurisdizione su questa materia stabilisce che una disposizione del Contratto di licenza non è valida, tale disposizione verrà rimossa dal Contratto di licenza senza inficiare il resto del Contratto di licenza. Le restanti disposizioni del Contratto di licenza continueranno a essere valide e applicabili. 14.4 L'utente riconosce e accetta che ciascun membro del gruppo di società di cui Google è la capogruppo sarà beneficiario terzo del Contratto di licenza e che tali altre società avranno diritto di applicare direttamente e fare affidamento su qualsiasi clausola del Contratto che conferisce un beneficio a (o diritti a favore di) queste. All'infuori di esse, nessun'altra persona o azienda sarà beneficiaria terza del Contratto di licenza. 14.5 LIMITAZIONI SULLE ESPORTAZIONI. L'SDK È SOGGETTO ALLE LEGGI E ALLE NORMATIVE DI ESPORTAZIONE DEGLI STATI UNITI. L'UTENTE È NECESSARIO RISPETTARE TUTTE LE LEGGI E LE NORMATIVE DI ESPORTAZIONE NAZIONALI E INTERNAZIONALI APPLICABILI ALL'SDK. QUESTE LEGGI COMPRENDONO LIMITAZIONI PER DESTINAZIONI, UTENTI FINALI E UTILIZZO FINALE. 14.6 I diritti concessi dal Contratto di licenza non possono essere assegnati o trasferiti da te o da Google senza previa approvazione scritta dell'altra parte. Né tu né Google sarete autorizzati a delegare i vostri obblighi o responsabilità ai sensi del Contratto di licenza senza previa approvazione scritta dell'altra parte. 14.7 Il Contratto di licenza e il rapporto tra l'utente e Google stabilito dal Contratto di licenza saranno regolati dalle leggi dello Stato della California, senza considerare le norme di diritto internazionale privato. Tu e Google accettate di sottoporvi all'esclusiva giurisdizione dei tribunali della contea di Santa Clara, California, per la risoluzione di qualsiasi questione legale derivante dal Contratto di licenza. Nonostante ciò, lei accetta che Google sia ancora autorizzata a richiedere provvedimenti ingiuntivi (o un tipo equivalente di provvedimento d'urgenza) in qualsiasi giurisdizione. 27 luglio 2021
Scarica

verify_app_multiplatform_public_20250602.apk