Membagikan Hak Aplikasi dengan Google TV Menggunakan Engage SDK

Panduan ini berisi petunjuk bagi developer untuk membagikan data langganan dan hak aplikasi ke Google TV menggunakan Engage SDK. Pengguna dapat menemukan konten yang berhak mereka dapatkan dan mengaktifkan Google TV untuk memberikan rekomendasi konten yang sangat relevan kepada pengguna, langsung dalam pengalaman Google TV di TV, perangkat seluler, dan tablet.

Prasyarat

Mengaktifkan feed tindakan media diperlukan sebelum Anda dapat menggunakan Device Entitlement API. Jika Anda belum melakukannya, selesaikan proses aktivasi feed tindakan media.

Persiapan

Sebelum memulai, selesaikan langkah-langkah berikut Pastikan aplikasi Anda menargetkan API level 19 atau yang lebih tinggi untuk integrasi ini

  1. Tambahkan library com.google.android.engage ke aplikasi Anda:

    Ada SDK terpisah untuk digunakan dalam integrasi: satu untuk aplikasi seluler dan satu untuk aplikasi TV.

    Untuk Perangkat Seluler

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

    untuk TV

    
      dependencies {
        implementation 'com.google.android.engage:engage-tv:1.0.2
      }
    
  2. Setel lingkungan layanan Engage ke produksi dalam file AndroidManifest.xml.

    Untuk APK seluler

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

    APK untuk TV

    
    <meta-data
        android:name="com.google.android.engage.service.ENV"
        android:value="PRODUCTION">
    </meta-data>
    
  3. Sebelum mengirim APK ke Google, tetapkan lingkungan layanan engagement ke produksi di file AndroidManifest.xml Anda. Untuk performa yang optimal dan kompatibilitas di masa mendatang, publikasikan data hanya saat aplikasi berada di latar depan dan pengguna berinteraksi secara aktif dengannya, seperti peluncuran aplikasi, setelah login, atau selama penggunaan aktif. Publikasi dari proses latar belakang tidak disarankan.

  4. Publikasikan informasi langganan pada peristiwa berikut:

    1. Pengguna login ke aplikasi Anda.
    2. Pengguna beralih antar-profil (jika profil didukung).
    3. Pengguna membeli langganan baru.
    4. Pengguna mengupgrade langganan yang ada.
    5. Masa berlaku langganan pengguna berakhir.

Integrasi

Bagian ini memberikan contoh kode dan petunjuk yang diperlukan untuk menerapkan AccountProfile dan SubscriptionEntity guna mengelola berbagai jenis langganan.

Akun dan profil pengguna

Untuk mengizinkan fitur yang dipersonalisasi di Google TV, berikan informasi akun. Gunakan AccountProfile untuk memberikan:

  1. ID Akun: ID unik yang mewakili akun pengguna. Ini dapat berupa ID akun sebenarnya atau versi yang disamarkan dengan tepat.
// 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();

Langganan tingkat umum

Untuk pengguna dengan langganan dasar ke layanan penyedia media, misalnya, layanan yang memiliki satu tingkat langganan yang memberikan akses ke semua konten berbayar, berikan detail penting berikut:

  1. Jenis langganan: Tunjukkan dengan jelas paket langganan tertentu yang dimiliki pengguna.

    1. SUBSCRIPTION_TYPE_ACTIVE: Pengguna memiliki langganan berbayar yang aktif.
    2. SUBSCRIPTION_TYPE_ACTIVE_TRIAL: Pengguna memiliki langganan uji coba.
    3. SUBSCRIPTION_TYPE_INACTIVE: Pengguna memiliki akun, tetapi tidak memiliki langganan atau uji coba yang aktif.
  2. Waktu habis masa berlaku: Waktu opsional dalam milidetik. Tentukan kapan langganan akan berakhir.

  3. Nama paket penyedia: Tentukan nama paket aplikasi yang menangani langganan.

Contoh Untuk feed penyedia media contoh.

"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
  }

Contoh berikut membuat SubscriptionEntity untuk pengguna:

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();

Langganan premium

Jika penawaran aplikasi memiliki paket langganan premium bertingkat, yang mencakup konten atau fitur yang diperluas di luar tingkat umum, tunjukkan hal ini dengan menambahkan satu atau beberapa hak ke Langganan.

Hak ini memiliki kolom berikut:

  1. ID: String ID yang diperlukan untuk hak ini. Nilai ini harus cocok dengan salah satu ID hak (perhatikan bahwa ini bukan kolom ID) yang diberikan di feed penyedia media yang dipublikasikan ke Google TV.
  2. Nama: Ini adalah informasi tambahan dan digunakan untuk pencocokan hak. Meskipun bersifat opsional, memberikan nama hak yang dapat dibaca manusia akan meningkatkan pemahaman tentang hak pengguna bagi developer dan tim dukungan. Misalnya: Sling Orange.
  3. Expiration TimeMillis: Secara opsional, tentukan waktu habis masa berlaku dalam milidetik untuk hak ini, jika berbeda dengan waktu habis masa berlaku langganan. Secara default, hak akan berakhir dengan berakhirnya langganan.

Untuk cuplikan feed penyedia media contoh berikut:

"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"
  }

Contoh berikut membuat SubscriptionEntity untuk pengguna yang berlangganan:

// 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();

Langganan untuk paket layanan tertaut

Meskipun langganan biasanya termasuk dalam penyedia media aplikasi asal, langganan dapat diatribusikan ke paket layanan tertaut dengan menentukan nama paket layanan tertaut dalam langganan.

Contoh kode berikut menunjukkan cara membuat langganan pengguna.

// 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();

Selain itu, jika pengguna memiliki langganan lain ke layanan anak perusahaan, tambahkan langganan lain dan tetapkan nama paket layanan tertaut yang sesuai.

// 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();

Secara opsional, tambahkan hak ke langganan layanan tertaut juga.

Menyediakan set langganan

Jalankan tugas publikasi konten saat aplikasi berada di latar depan.

Gunakan metode publishSubscriptionCluster(), dari class AppEngagePublishClient, untuk memublikasikan objek SubscriptionCluster.

Gunakan isServiceAvailable untuk memeriksa apakah layanan tersedia untuk integrasi.

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

Gunakan setSubscription() untuk memverifikasi bahwa pengguna hanya boleh memiliki satu langganan ke layanan.

Gunakan addLinkedSubscription(), atau addLinkedSubscriptions() yang menerima daftar langganan tertaut, untuk memungkinkan pengguna memiliki nol atau lebih langganan tertaut.

Saat layanan menerima permintaan, entri baru akan dibuat dan entri lama akan otomatis dihapus setelah 60 hari. Sistem selalu menggunakan entri terbaru. Jika terjadi error, seluruh permintaan akan ditolak dan status yang ada dipertahankan.

Memastikan langganan selalu terbaru

  1. Untuk memberikan update langsung saat terjadi perubahan, panggil publishSubscriptionCluster() setiap kali status langganan pengguna berubah seperti aktivasi, penonaktifan, upgrade, downgrade.
  2. Untuk memberikan validasi rutin atas akurasi berkelanjutan, panggil publishSubscriptionCluster() setidaknya sekali per bulan.

  3. Untuk menghapus data Penemuan video, hapus data pengguna secara manual dari server Google TV sebelum periode retensi standar 60 hari, gunakan metode client.deleteClusters(). Tindakan ini akan menghapus semua data penemuan video yang ada untuk profil akun, atau untuk seluruh akun, bergantung pada DeleteReason yang diberikan.

    Cuplikan kode untuk menghapus langganan pengguna

      // 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()
    )
    

Pengujian

Bagian ini memberikan panduan langkah demi langkah untuk menguji penerapan langganan. Verifikasi akurasi data dan fungsi yang tepat sebelum peluncuran.

Checklist Publikasikan Integrasi

  1. Publikasi harus terjadi saat aplikasi berada di latar depan dan pengguna berinteraksi secara aktif dengannya.

  2. Publikasikan saat:

    • Pengguna login untuk pertama kalinya.
    • Pengguna mengubah profil (jika profil didukung).
    • Pengguna membeli langganan baru.
    • Pengguna mengupgrade langganan.
    • Masa berlaku langganan pengguna berakhir.
  3. Periksa apakah aplikasi memanggil API isServiceAvailable() dan publishClusters() dengan benar di logcat, saat memublikasikan peristiwa.

  4. Pastikan data terlihat di aplikasi verifikasi. Aplikasi verifikasi harus menampilkan langganan sebagai baris terpisah. Saat API publikasi dipanggil, data akan muncul di aplikasi verifikasi.

    • Pastikan Engage Service Flag TIDAK disetel ke produksi di file Manifes Android aplikasi.
    • Instal dan buka aplikasi Verifikasi Engagement.
    • Jika nilai isServiceAvailable adalah false di aplikasi verifikasi, klik tombol Toggle dalam aplikasi verifikasi untuk menyetelnya ke true.
    • Masukkan nama paket aplikasi. Data yang dipublikasikan akan otomatis ditampilkan.
  5. Buka aplikasi dan lakukan setiap tindakan berikut:

    • Login.
    • beralih antar-profil (jika didukung).
    • Beli langganan baru.
    • Mengupgrade langganan yang ada.
    • Mengakhiri masa berlaku langganan.

Memverifikasi integrasi

Untuk menguji integrasi Anda, gunakan aplikasi verifikasi.

Aplikasi verifikasi adalah aplikasi Android yang dapat digunakan developer untuk memverifikasi bahwa integrasi berfungsi. Aplikasi menyertakan kemampuan untuk membantu developer memverifikasi intent siaran dan data. Hal ini membantu memverifikasi akurasi data dan fungsi yang tepat sebelum peluncuran.

  1. Untuk setiap peristiwa, periksa apakah aplikasi telah memanggil publishSubscription API. Verifikasi data yang dipublikasikan di aplikasi verifikasi. Pastikan semuanya berwarna hijau di aplikasi verifikasi
  2. Jika semua informasi entitas sudah benar, akan muncul tanda centang hijau "Semua Oke" di semua entitas.

    Screenshot Berhasil Aplikasi Verifikasi
    Gambar 1. Berhasil berlangganan
  3. Masalah juga ditandai di aplikasi verifikasi

    Screenshot Error Aplikasi Verifikasi
    Gambar 2.Langganan gagal
  4. Untuk melihat masalah dalam langganan paket, gunakan remote TV untuk memfokuskan langganan paket tertentu tersebut, lalu klik untuk melihat masalahnya. Anda mungkin harus memfokuskan baris terlebih dahulu dan berpindah ke kanan untuk menemukan kartu Langganan Paket. Masalah ditandai dengan warna merah seperti yang ditunjukkan pada Gambar 3. Selain itu, gunakan remote untuk berpindah ke bawah guna melihat masalah dalam hak dalam langganan paket

    Screenshot Detail Error Aplikasi Verifikasi
    Gambar 3.Error Langganan
  5. Untuk melihat masalah dalam hak, gunakan remote TV untuk memfokuskan pada hak tertentu tersebut dan klik untuk melihat masalah. Masalah ditandai dengan warna merah.

    Screenshot Error Aplikasi Verifikasi
    Gambar 4.Detail Error Langganan

Download

Sebelum mendownload, Anda harus menyetujui persyaratan dan ketentuan berikut.

Persyaratan dan Ketentuan

Ini adalah Perjanjian Lisensi Software Development Kit Android

1. Pengantar

1.1 Software Development Kit Android (dalam Perjanjian Lisensi ini disebut sebagai "SDK" dan secara khusus mencakup file sistem Android, API terpaket, dan add-on Google API) yang dilisensikan kepada Anda tunduk pada persyaratan Perjanjian Lisensi ini. Perjanjian Lisensi merupakan kontrak yang mengikat secara hukum antara Anda dan Google dalam kaitannya dengan penggunaan SDK oleh Anda. 1.2 "Android" berarti kumpulan software Android untuk perangkat yang disediakan berdasarkan Proyek Open Source Android, yang terdapat di URL berikut: https://source.android.com/, sebagaimana diperbarui dari waktu ke waktu. 1.3 "Penerapan yang kompatibel" berarti perangkat Android yang (i) sesuai dengan Compatibility Definition Document Android, yang terdapat di situs kompatibilitas Android (https://source.android.com/compatibility) dan dapat diperbarui dari waktu ke waktu; dan (ii) lulus Compatibility Test Suite (CTS) Android. 1.4 "Google" adalah Google LLC, yang diatur menurut hukum Negara Bagian Delaware, Amerika Serikat, dan beroperasi menurut hukum Amerika Serikat dengan tempat utama bisnis di 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA.

2. Menerima Perjanjian Lisensi ini

2.1 Untuk menggunakan SDK, Anda harus menyetujui Perjanjian Lisensi terlebih dahulu. Anda tidak boleh menggunakan SDK ini jika Anda tidak menyetujui Perjanjian Lisensi ini. 2.2 Dengan mengklik setuju dan/atau menggunakan SDK ini, berarti Anda menyatakan setuju terhadap persyaratan Perjanjian Lisensi ini. 2.3 Anda tidak boleh menggunakan SDK ini dan tidak boleh menyetujui Perjanjian Lisensi ini jika Anda adalah orang yang dilarang menerima SDK berdasarkan hukum Amerika Serikat atau negara lain, termasuk negara tempat Anda tinggal atau tempat Anda menggunakan SDK. 2.4 Jika Anda setuju untuk terikat dengan Perjanjian Lisensi ini atas nama perusahaan atau entitas lain, berarti Anda menyatakan dan menjamin bahwa Anda memiliki kewenangan hukum penuh untuk mengikat perusahaan atau entitas tersebut dengan Perjanjian Lisensi ini. Jika Anda tidak memiliki kewenangan yang diperlukan, Anda tidak boleh menyetujui Perjanjian Lisensi ini atau menggunakan SDK atas nama perusahaan atau entitas lain.

3. Lisensi SDK dari Google

3.1 Sesuai dengan persyaratan Perjanjian Lisensi ini, Google memberi Anda lisensi terbatas, bersifat global, bebas royalti, tidak dapat dialihkan, non-eksklusif, dan tidak dapat disublisensikan untuk menggunakan SDK hanya untuk mengembangkan aplikasi bagi implementasi Android yang kompatibel. 3.2 Anda tidak boleh menggunakan SDK ini untuk mengembangkan aplikasi bagi platform lain (termasuk implementasi Android yang tidak kompatibel) atau untuk mengembangkan SDK lain. Anda bebas mengembangkan aplikasi untuk platform lain, termasuk implementasi Android yang tidak kompatibel, dengan syarat SDK ini tidak digunakan untuk tujuan tersebut. 3.3 Anda setuju bahwa Google atau pihak ketiga memiliki semua hak, kuasa dan kepentingan hukum dalam dan pada SDK, termasuk Hak atas Kekayaan Intelektual yang terdapat dalam SDK. "Hak Atas Kekayaan Intelektual" adalah segala dan semua hak berdasarkan hukum paten, hak cipta, rahasia dagang, merek dagang, serta setiap dan semua hak kepemilikan lainnya. Google memiliki semua hak yang tidak secara tersurat diberikan kepada Anda. 3.4 Anda tidak boleh menggunakan SDK untuk tujuan apa pun yang tidak secara tersurat diizinkan oleh Perjanjian Lisensi. Kecuali sejauh yang diperlukan oleh lisensi pihak ketiga yang berlaku, Anda tidak boleh menyalin (kecuali untuk tujuan pencadangan), mengubah, menyesuaikan, mendistribusikan ulang, mendekompilasi, merekayasa balik, membongkar, atau membuat karya turunan SDK atau bagian SDK. 3.5 Penggunaan, reproduksi, dan distribusi komponen SDK yang dilisensikan berdasarkan lisensi software open source diatur sepenuhnya oleh persyaratan dari lisensi software open source tersebut, bukan Perjanjian Lisensi ini. 3.6 Anda setuju bahwa bentuk dan sifat dari SDK yang disediakan oleh Google dapat berubah tanpa pemberitahuan sebelumnya kepada Anda dan bahwa versi SDK mendatang mungkin tidak kompatibel dengan aplikasi yang dikembangkan berdasarkan SDK versi sebelumnya. Anda setuju bahwa Google dapat menghentikan (secara permanen atau sementara) penyediaan SDK (atau fitur apa pun dalam SDK) kepada Anda atau pengguna secara umum berdasarkan kebijaksanaan mutlak Google, tanpa pemberitahuan sebelumnya kepada Anda. 3.7 Tidak satu pun isi Perjanjian Lisensi ini yang memberi Anda hak untuk menggunakan nama dagang, merek dagang, tanda layanan, logo, nama domain, atau fitur merek khusus lainnya milik Google. 3.8 Anda setuju bahwa Anda tidak akan menghapus, mengaburkan, atau mengubah pemberitahuan hak milik apa pun (termasuk pemberitahuan hak cipta dan merek dagang) yang mungkin melekat atau terkandung dalam SDK.

4. Penggunaan SDK oleh Anda

4.1 Google setuju bahwa pihaknya tidak mendapatkan hak, kuasa, atau kepentingan apa pun dari Anda (atau pemegang lisensi Anda) berdasarkan Perjanjian Lisensi pada atau atas setiap aplikasi software yang Anda kembangkan menggunakan SDK, termasuk segala hak atas kekayaan intelektual yang terdapat dalam aplikasi tersebut. 4.2 Anda setuju untuk menggunakan SDK dan menulis aplikasi hanya untuk tujuan yang diizinkan oleh (a) Perjanjian Lisensi dan (b) hukum yang berlaku, peraturan atau praktik yang diterima secara umum atau pedoman di wilayah hukum terkait (termasuk hukum mengenai ekspor data atau software ke dan dari Amerika Serikat atau negara lain yang relevan). 4.3 Anda setuju bahwa jika Anda menggunakan SDK untuk mengembangkan aplikasi bagi pengguna umum, Anda harus melindungi privasi dan hak hukum pengguna tersebut. Apabila pengguna memberikan kepada Anda nama pengguna, sandi, atau informasi login atau informasi pribadi lainnya, Anda harus memberi tahu pengguna bahwa informasi tersebut akan tersedia bagi aplikasi Anda, dan Anda harus menyediakan pemberitahuan dan perlindungan privasi yang memadai secara hukum bagi mereka. Jika aplikasi Anda menyimpan informasi pribadi atau sensitif yang diberikan oleh pengguna, aplikasi Anda harus menyimpannya dengan aman. Jika pengguna memberikan informasi Akun Google ke aplikasi Anda, aplikasi Anda hanya dapat menggunakan informasi tersebut untuk mengakses Akun Google pengguna saat, serta untuk tujuan terbatas, pengguna telah mengizinkan Anda untuk melakukannya. 4.4 Anda setuju bahwa Anda tidak akan terlibat dalam aktivitas apa pun yang menggunakan SDK, termasuk mengembangkan atau mendistribusikan aplikasi, yang mengganggu, mengacaukan, merusak, atau mengakses secara tidak sah server, jaringan, atau properti atau layanan lain dari pihak ketiga mana pun termasuk, tetapi tidak terbatas pada, Google atau operator komunikasi seluler mana pun. 4.5 Anda setuju bahwa Anda bertanggung jawab sepenuhnya (dan bahwa Google tidak bertanggung jawab kepada Anda atau kepada pihak ketiga mana pun) atas data, konten, atau resource yang Anda buat, transmisikan, atau tampilkan melalui Android dan/atau aplikasi untuk Android, dan atas konsekuensi tindakan Anda (termasuk kehilangan atau kerugian yang mungkin dialami oleh Google) karena melakukannya. 4.6 Anda setuju bahwa Anda bertanggung jawab sepenuhnya (dan bahwa Google tidak bertanggung jawab kepada Anda atau kepada pihak ketiga mana pun) atas setiap pelanggaran kewajiban Anda berdasarkan Perjanjian Lisensi, setiap kontrak pihak ketiga atau Persyaratan Layanan yang berlaku, atau setiap hukum serta regulasi yang berlaku, dan atas konsekuensi (termasuk kehilangan atau kerugian apa pun yang mungkin dialami oleh Google atau pihak ketiga mana pun) akibat pelanggaran tersebut.

5. Kredensial Developer Anda

5.1 Anda setuju untuk bertanggung jawab dalam menjaga kerahasiaan semua kredensial developer yang mungkin diberikan Google kepada Anda atau yang mungkin Anda pilih sendiri dan bahwa Anda akan bertanggung jawab sepenuhnya atas semua aplikasi yang dikembangkan dengan kredensial developer Anda.

6. Privasi dan Informasi

6.1 Untuk terus berinovasi dan meningkatkan SDK, Google dapat mengumpulkan statistik penggunaan tertentu dari software, termasuk tetapi tidak terbatas pada ID unik, alamat IP yang dikaitkan, nomor versi software, informasi tentang alat dan/atau layanan di SDK yang digunakan, dan cara penggunaannya. Sebelum informasi apa pun dikumpulkan, SDK akan memberi tahu dan meminta izin Anda. Jika Anda tidak memberikan izin, informasi tidak akan dikumpulkan. 6.2 Data yang dikumpulkan akan diperiksa secara agregat untuk meningkatkan SDK dan dikelola sesuai dengan Kebijakan Privasi Google, yang terdapat di URL berikut: https://policies.google.com/privacy 6.3 Kumpulan data yang dianonimkan dan digabungkan dapat dibagikan kepada partner Google untuk meningkatkan SDK.

7. Aplikasi Pihak Ketiga

7.1 Jika Anda menggunakan SDK untuk menjalankan aplikasi yang dikembangkan oleh pihak ketiga atau yang mengakses data, konten, atau resource yang diberikan oleh pihak ketiga, Anda setuju bahwa Google tidak bertanggung jawab atas aplikasi, data, konten, atau resource tersebut. Anda memahami bahwa semua data, konten, atau resource yang dapat Anda akses melalui aplikasi pihak ketiga semacam ini adalah tanggung jawab penuh orang yang memberikannya, dan Google tidak bertanggung jawab atas kehilangan atau kerusakan yang mungkin Anda alami sebagai hasil dari menggunakan atau mengakses aplikasi, data, konten, atau resource pihak ketiga tersebut. 7.2 Anda harus memahami bahwa data, konten, dan resource yang diberikan kepada Anda melalui aplikasi pihak ketiga semacam ini dapat dilindungi oleh hak atas kekayaan intelektual yang dimiliki oleh penyedia (atau oleh orang atau perusahaan lain atas nama mereka). Anda tidak dapat memodifikasi, menyewa, menyewakan, meminjamkan, menjual, mendistribusikan, atau membuat karya turunan berdasarkan data, konten, atau resource tersebut (baik semua atau sebagian) kecuali pemilik terkait memberikan izin secara khusus kepada Anda untuk melakukannya. 7.3 Anda memahami bahwa penggunaan aplikasi, data, konten, atau resource pihak ketiga semacam ini dapat tunduk pada persyaratan yang terpisah antara Anda dan pihak ketiga yang relevan. Dalam kasus tersebut, Perjanjian Lisensi tidak memengaruhi hubungan hukum antara Anda dengan pihak ketiga ini.

8. Menggunakan API Android

8.1 Google Data API 8.1.1 Jika menggunakan API untuk mengambil data dari Google, Anda memahami bahwa data dapat dilindungi oleh hak atas kekayaan intelektual yang dimiliki oleh Google atau pihak ketiga yang memberikan data (atau oleh orang atau perusahaan lain atas nama mereka). Penggunaan Anda atas API semacam ini dapat tunduk pada Persyaratan Layanan tambahan. Anda tidak boleh memodifikasi, menyewa, menyewakan, meminjamkan, menjual, mendistribusikan, atau membuat karya turunan berdasarkan data ini (baik semua atau sebagian) kecuali diizinkan oleh Persyaratan Layanan yang relevan. 8.1.2 Jika Anda menggunakan API apa pun untuk mengambil data pengguna dari Google, Anda menerima dan menyetujui bahwa Anda hanya akan mengambil data dengan persetujuan tersurat pengguna dan hanya saat, dan untuk tujuan terbatas, pengguna telah memberi Anda izin untuk melakukannya. Jika Anda menggunakan Android Recognition Service API, yang didokumentasikan di URL berikut: https://developer.android.com/reference/android/speech/RecognitionService, sebagaimana diperbarui dari waktu ke waktu, Anda menyetujui bahwa penggunaan API tersebut tunduk pada Adendum Pemrosesan Data untuk Produk yang Pemroses Datanya adalah Google, yang terdapat di URL berikut: https://privacy.google.com/businesses/gdprprocessorterms/, sebagaimana diperbarui dari waktu ke waktu. Dengan mengklik setuju, berarti Anda menyetujui persyaratan Adendum Pemrosesan Data untuk Produk yang Pemroses Datanya adalah Google.

9. Pengakhiran Perjanjian Lisensi

9.1 Perjanjian Lisensi ini akan terus berlaku hingga dihentikan oleh Anda atau Google sebagaimana dijelaskan di bawah ini. 9.2 Jika Anda ingin mengakhiri Perjanjian Lisensi ini, Anda dapat melakukannya dengan menghentikan penggunaan SDK dan semua kredensial developer yang relevan. 9.3 Google dapat menghentikan Perjanjian Lisensi dengan Anda kapan saja jika: (A) Anda melanggar ketentuan apa pun dalam Perjanjian Lisensi; atau (B) Google diwajibkan melakukannya oleh hukum; atau (C) partner yang dengannya Google menawarkan bagian tertentu SDK (seperti API) kepada Anda telah menghentikan hubungannya dengan Google, atau berhenti menawarkan bagian tertentu SDK kepada Anda; atau (D) Google memutuskan untuk tidak lagi menyediakan SDK atau bagian tertentu SDK kepada pengguna di negara tempat tinggal Anda atau dari tempat layanan digunakan, atau ketetapan SDK atau layanan SDK tertentu kepada Anda oleh Google merupakan kebijaksanaan Google sendiri dan tidak lagi memenuhi syarat secara komersial. 9.4 Jika Perjanjian Lisensi berakhir, semua hak, kewajiban, dan tanggung jawab hukum yang manfaatnya dirasakan oleh Anda dan Google, tunduk kepada (atau yang telah terkumpul dari waktu ke waktu selama Perjanjian Lisensi diterapkan) atau yang dinyatakan untuk dilanjutkan tanpa waktu yang ditentukan, tidak akan terpengaruh oleh penghentian ini, dan ketetapan paragraf 14.7 akan terus diterapkan terhadap hak, kewajiban, dan tanggung jawab semacam ini dalam waktu yang tidak ditentukan.

10. PERNYATAAN PENYANGKALAN JAMINAN

10.1 ANDA SECARA TEGAS MEMAHAMI DAN MENYETUJUI BAHWA PENGGUNAAN SDK MENJADI TANGGUNG JAWAB ANDA DAN BAHWA SDK DISEDIAKAN "APA ADANYA" DAN "SEBAGAIMANA TERSEDIA" TANPA JAMINAN DALAM BENTUK APA PUN DARI GOOGLE. 10.2 PENGGUNAAN SDK DAN MATERI YANG DIUNDUH ATAU DIPEROLEH MELALUI PENGGUNAAN SDK ADALAH ATAS KEHENDAK DAN RISIKO ANDA SENDIRI DAN ANDA BERTANGGUNG JAWAB SEPENUHNYA ATAS KERUSAKAN PADA SISTEM KOMPUTER ATAU PERANGKAT LAIN ATAU HILANGNYA DATA YANG DISEBABKAN PENGGUNAAN TERSEBUT . 10.3 LEBIH LANJUT GOOGLE MENYANGKAL SECARA TEGAS TANGGUNG JAWAB HUKUM ATAS SEMUA JAMINAN DAN KETENTUAN APA PUN, BAIK TERSURAT MAUPUN TERSIRAT, TERMASUK, TETAPI TIDAK TERBATAS PADA JAMINAN DAN KETENTUAN TERSIRAT TENTANG KELAYAKAN UNTUK DIPERDAGANGKAN, KESESUAIAN UNTUK TUJUAN TERTENTU, DAN KETIADAAN PELANGGARAN.

11. BATASAN KEWAJIBAN

11.1 ANDA SECARA TERSURAT MEMAHAMI DAN MENYETUJUI BAHWA GOOGLE, ANAK PERUSAHAAN, AFILIASI, SERTA PEMBERI LISENSINYA TIDAK BERTANGGUNG JAWAB APA PUN KEPADA ANDA ATAS KERUGIAN LANGSUNG, TIDAK LANGSUNG, INSIDENTAL, SEBAGAI AKIBAT KHUSUS, ATAU SEBAGAI PERINGATAN YANG MUNGKIN DISEBABKAN OLEH ANDA, TERMASUK KEHILANGAN DATA APA PUN, BAIK GOOGLE ATAU PERWAKILANNYA TELAH DIBERI TAHU ATAU TIDAK, ATAUPUN SEHARUSNYA MENGETAHUI ATAU TIDAK, TERKAIT KEMUNGKINAN KEHILANGAN SEMACAM INI YANG MUNGKIN TERJADI.

12. Perlindungan Terhadap Kerugian

12.1 Dalam batas maksimum yang diizinkan oleh undang-undang, Anda setuju untuk membela, melindungi terhadap kerugian, dan membebaskan dari kerugian untuk Google, afiliasinya, serta direktur, pegawai, karyawan dan agen dari dan terhadap semua klaim, tindakan, gugatan, atau proses pihak ketiga, serta semua kehilangan, kewajiban, kerugian, biaya, dan pengeluaran (termasuk biaya pengacara yang wajar) yang timbul dari (a) penggunaan SDK Anda, dan (b) aplikasi apa pun yang Anda kembangkan di SDK yang melanggar hak cipta, merek dagang, rahasia dagang, karakteristik merek, paten atau hak atas kekayaan intelektual lain masing-masing pihak, mencemarkan nama baik, atau melanggar hak publisitas atau privasinya, dan (c) ketidakpatuhan Anda terhadap Perjanjian Lisensi.

13. Perubahan Perjanjian Lisensi

13.1 Google boleh membuat perubahan pada Perjanjian Lisensi saat mendistribusikan versi baru SDK. Saat perubahan tersebut dibuat, Google akan menyediakan versi baru Perjanjian Lisensi di situs web penyediaan SDK. 14.1 Perjanjian Lisensi ini merupakan perjanjian hukum menyeluruh antara Anda dan Google dan mengatur penggunaan SDK oleh Anda (kecuali layanan apa pun yang dapat disediakan oleh Google kepada Anda berdasarkan perjanjian tertulis tersendiri), dan sepenuhnya menggantikan setiap perjanjian sebelumnya antara Anda dan Google sehubungan dengan SDK. 14.2 Anda setuju bahwa jika Google tidak menjalankan atau menerapkan hak hukum atau upaya hukum yang terkandung dalam Perjanjian Lisensi ini (atau yang menguntungkan Google berdasarkan hukum yang berlaku), hal ini tidak akan dianggap sebagai pengesampingan formal atas hak Google dan bahwa hak atau upaya hukum tersebut akan tetap tersedia untuk Google. 14.3 Jika persidangan hukum yang berwenang memutuskan masalah ini menetapkan bahwa terdapat ketentuan dalam Perjanjian Lisensi yang tidak berlaku, ketentuan tersebut akan dihapus dari Perjanjian Lisensi tanpa memengaruhi bagian lain dari Perjanjian Lisensi. Semua ketentuan lainnya dalam Perjanjian Lisensi akan tetap valid dan dapat diberlakukan. 14.4 Anda memahami dan menyetujui bahwa setiap anggota grup perusahaan yang mana Google adalah perusahaan induknya, akan menjadi penerima pihak ketiga dari Perjanjian Lisensi ini, dan bahwa perusahaan lain tersebut berhak untuk memberlakukan secara langsung, dan mengandalkan, ketentuan apa pun dalam Perjanjian Lisensi ini, yang memberikan manfaat bagi (atau hak demi kepentingan) mereka. Selain itu, tidak ada satu pun orang atau perusahaan yang akan menjadi penerima pihak ketiga dari Perjanjian ini. 14.5 PEMBATASAN EKSPOR. SDK INI TUNDUK PADA HUKUM DAN PERATURAN EKSPOR AMERIKA SERIKAT. ANDA HARUS MEMATUHI SEMUA HUKUM DAN PERATURAN EKSPOR DOMESTIK DAN INTERNASIONAL YANG BERLAKU UNTUK SDK. HUKUM INI MENCAKUP PEMBATASAN NEGARA TUJUAN, PENGGUNA AKHIR, DAN PENGGUNAAN AKHIR. 14.6 Hak-hak yang diberikan dalam Perjanjian Lisensi tidak boleh dialihkan atau ditransfer oleh Anda atau Google tanpa persetujuan tertulis sebelumnya dari pihak lainnya. Baik Anda maupun Google tidak diperbolehkan mendelegasikan tanggung jawab atau kewajiban berdasarkan Perjanjian Lisensi tanpa persetujuan tertulis sebelumnya dari pihak lainnya. 14.7 Perjanjian Lisensi dan hubungan Anda dengan Google berdasarkan Perjanjian Lisensi, akan diatur oleh hukum Negara Bagian California terlepas dari pertentangan ketentuan hukum. Anda dan Google setuju untuk tunduk pada wilayah hukum eksklusif pengadilan yang terletak di wilayah Santa Clara, California untuk menyelesaikan masalah hukum yang timbul dari Perjanjian Lisensi. Meski demikian, Anda setuju bahwa Google akan tetap diizinkan untuk mengajukan upaya hukum (atau tipe keringanan hukum setara yang mendesak) di wilayah hukum mana pun. 27 Juli 2021
Download

verify_app_multiplatform_public_20250602.apk