TV entegrasyonu kılavuzu için Engage SDK'sı

İzlemeye Devam Et özelliği, bitmemiş videoları ve aynı TV sezonunda izlenecek sonraki bölümleri tek bir kullanıcı arayüzü grubunda birden fazla uygulamadan göstermek için Devam Ettirme kümesinden yararlanır. Bu devamlılık kümesinde bu varlıkları öne çıkarabilirsiniz. Engage SDK'yı kullanarak "İzlemeye Devam Et" deneyimiyle kullanıcı etkileşimini nasıl artıracağınızı öğrenmek için bu kılavuzu inceleyin.

Ön çalışma

Başlamadan önce aşağıdaki adımları tamamlayın:

  1. Hedef API 19 veya üstüne güncelleme

  2. Uygulamanıza com.google.android.engage kitaplığını ekleyin:

    Entegrasyonda kullanılacak ayrı SDK'lar vardır: biri mobil uygulamalar, diğeri ise TV uygulamaları için.

    Mobil

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

    TV

    
      dependencies {
        implementation 'com.google.android.engage:engage-tv:1.0.2
      }
    
  3. AndroidManifest.xml dosyasında Engage hizmet ortamını üretime ayarlayın.

    Mobil

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

    TV

    
    <meta-data
        android:name="com.google.android.engage.service.ENV"
        android:value="PRODUCTION" />
    
  4. TV APK'sı için WRITE_EPG_DATA izni ekleme

    <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" />
    
  5. Planlama için androidx.work gibi bir arka plan hizmeti kullanarak güvenilir içerik yayınlamayı doğrulayın.

  6. Sorunsuz bir izleme deneyimi sunmak için aşağıdaki etkinlikler gerçekleştiğinde "izlemeye devam et" verilerini yayınlayın:

    1. İlk Giriş: Bir kullanıcı ilk kez giriş yaptığında, görüntüleme geçmişinin hemen kullanılabilmesi için verileri yayınlayın.
    2. Profil Oluşturma veya Geçiş (Çok Profilli Uygulamalar): Uygulamanız birden fazla profili destekliyorsa kullanıcı profil oluşturduğunda veya profiller arasında geçiş yaptığında verileri yayınlayın.
    3. Video Oynatma Kesintisi: Kullanıcıların kaldıkları yerden devam etmesine yardımcı olmak için videoyu duraklattıklarında veya durdurduklarında ya da oynatma sırasında uygulamadan çıktıklarında verileri yayınlayın.
    4. İzlemeye Devam Etme Bölmesi Güncellemeleri (Destekleniyorsa): Kullanıcı, İzlemeye Devam Etme bölmesinden bir öğeyi kaldırdığında güncellenmiş verileri yayınlayarak bu değişikliği yansıtın.
    5. Videoyu Tamamlama:
      1. Filmler için tamamlanan filmi İzlemeye Devam Et tepsisinden kaldırın. Film bir serinin parçasıysa kullanıcıların ilgisini canlı tutmak için bir sonraki filmi ekleyin.
      2. Bölümler için, tamamlanmış bölümü kaldırın ve varsa serideki sonraki bölümü ekleyerek izleyicileri izlemeye devam etmeye teşvik edin.

Örnek kod

Bu örnek uygulama, geliştiricilerin Google'a kişiselleştirilmiş kullanıcı verileri göndermek için video keşif API'leriyle nasıl entegrasyon yapabileceğini gösterir. Örnek uygulama ayrıca hem mobil hem de TV uygulamalarına içe aktarılabilen ortak bir modülün nasıl oluşturulacağını, yayınlama ve silme API'lerinin ne zaman çağrılacağını ve yayınlama ile silme API'lerini çağırmak için Workers'ın nasıl kullanılacağını da gösterir.

Entegrasyon

AccountProfile

Google TV'de kişiselleştirilmiş bir "izlemeye devam et" deneyimine izin vermek için hesap ve profil bilgilerini sağlayın. AccountProfile'ı kullanarak şunları sağlayabilirsiniz:

  1. Hesap kimliği: Kullanıcının uygulamanızdaki hesabını temsil eden benzersiz tanımlayıcı. Bu, gerçek hesap kimliği veya uygun şekilde karartılmış bir sürüm olabilir.

  2. Profil kimliği (isteğe bağlı): Uygulamanız tek bir hesapta birden fazla profili destekliyorsa belirli kullanıcı profili için benzersiz bir tanımlayıcı (gerçek veya karartılmış) sağlayın.

// If your app only supports account
val accountProfile = AccountProfile.Builder()
    .setAccountId("your_users_account_id")
    .build()

// If your app supports both account and profile
val accountProfile = AccountProfile.Builder()
    .setAccountId("your_users_account_id")
    .setProfileId("your_users_profile_id")
    .build()

Varlık oluşturma

SDK, her öğe türünü temsil etmek için farklı öğeler tanımlamıştır. Devamlılık kümesi aşağıdaki varlıkları destekler:

  1. MovieEntity
  2. TvEpisodeEntity
  3. LiveStreamingVideoEntity
  4. VideoClipEntity

Bu öğeler için platforma özel URI'leri ve poster resimlerini belirtin.

Ayrıca, henüz yapmadıysanız her platform (ör. Android TV, Android veya iOS) için oynatma URI'leri oluşturun. Bu nedenle, kullanıcı her platformda izlemeye devam ettiğinde uygulama, video içeriğini oynatmak için hedeflenmiş bir oynatma URI'si kullanır.

// Required. Set this when you want continue watching entities to show up on
// Google TV
val playbackUriTv = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_ANDROID_TV)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_tv"))
    .build()

// Required. Set this when you want continue watching entities to show up on
// Google TV Android app, Entertainment Space, Playstore Widget
val playbackUriAndroid = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_ANDROID_MOBILE)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_android"))
    .build()

// Optional. Set this when you want continue watching entities to show up on
// Google TV iOS app
val playbackUriIos = PlatformSpecificUri.Builder()
    .setPlatformType(PlatformType.TYPE_IOS)
    .setActionUri(Uri.parse("https://www.example.com/entity_uri_for_ios"))
    .build()

val platformSpecificPlaybackUris =
    Arrays.asList(playbackUriTv, playbackUriAndroid, playbackUriIos)

Poster resimleri için URI ve piksel boyutları (yükseklik ve genişlik) gerekir. Birden fazla poster resmi sağlayarak farklı form faktörlerini hedefleyin ancak tüm resimlerin 16:9 en boy oranını ve "İzlemeye Devam Et" öğesinin doğru şekilde gösterilmesi için minimum 200 piksel yüksekliği koruduğunu doğrulayın. Bu özellikle Google'ın Entertainment Space'inde önemlidir. Yüksekliği 200 pikselden az olan resimler gösterilmeyebilir.

val images = Arrays.asList(
    Image.Builder()
        .setImageUri(Uri.parse("http://www.example.com/entity_image1.png"))
        .setImageHeightInPixel(300)
        .setImageWidthInPixel(169)
        .build(),
    Image.Builder()
        .setImageUri(Uri.parse("http://www.example.com/entity_image2.png"))
        .setImageHeightInPixel(640)
        .setImageWidthInPixel(360)
        .build()
    // Consider adding other images for different form factors
)
MovieEntity

Bu örnekte, gerekli tüm alanları içeren bir MovieEntity nasıl oluşturulacağı gösterilmektedir:

val movieEntity = MovieEntity.Builder()
   .setWatchNextType(WatchNextType.TYPE_CONTINUE)
   .setName("Movie name")
   .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
   .addPosterImages(images)
   // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
   .setLastEngagementTimeMillis(1701388800000)
   // Suppose the duration is 2 hours, it is 72000000 in milliseconds
   .setDurationMills(72000000)
   // Suppose last playback offset is 1 hour, 36000000 in milliseconds
   .setLastPlayBackPositionTimeMillis(36000000)
   .build()

Türler ve içerik derecelendirmeleri gibi ayrıntılar sağladığınızda Google TV, içeriğinizi daha dinamik şekillerde sergileyebilir ve doğru izleyicilerle buluşturabilir.

val genres = Arrays.asList("Action", "Science fiction")
val rating1 = RatingSystem.Builder().setAgencyName("MPAA").setRating("PG-13").build()
val contentRatings = Arrays.asList(rating1)
val movieEntity = MovieEntity.Builder()
    ...
    .addGenres(genres)
    .addContentRatings(contentRatings)
    .build()

Daha kısa bir geçerlilik süresi belirtmediğiniz sürece öğeler 60 gün boyunca otomatik olarak kullanılabilir durumda kalır. Yalnızca öğenin bu varsayılan süreden önce kaldırılması gerekiyorsa özel bir geçerlilik sonu ayarlayın.

// Set the expiration time to be now plus 30 days in milliseconds
val expirationTime = DisplayTimeWindow.Builder()
    .setEndTimestampMillis(now().toMillis()+2592000000).build()
val movieEntity = MovieEntity.Builder()
    ...
    .addAvailabilityTimeWindow(expirationTime)
    .build()
TvEpisodeEntity

Bu örnekte, gerekli tüm alanları içeren bir TvEpisodeEntity nasıl oluşturulacağı gösterilmektedir:

val tvEpisodeEntity = TvEpisodeEntity.Builder()
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Episode name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(72000000) // 2 hours in milliseconds
    // 45 minutes and 15 seconds in milliseconds is 2715000
    .setLastPlayBackPositionTimeMillis(2715000)
    .setEpisodeNumber("2")
    .setSeasonNumber("1")
    .setShowTitle("Title of the show")
    .build()

Bölüm numarası dizesi (ör. "2") ve sezon numarası dizesi (ör. "1"), "İzlemeye devam et" kartında gösterilmeden önce uygun biçime genişletilir. Bunların sayısal bir dize olması gerektiğini unutmayın. "e2", "episode 2", "s1" veya "season 1" yazmayın.

Belirli bir TV programının tek bir sezonu varsa sezon numarasını 1 olarak ayarlayın.

İzleyicilerin Google TV'de içeriğinizi bulma olasılığını en üst düzeye çıkarmak için türler, içerik derecelendirmeleri ve stok durumu zaman aralıkları gibi ek veriler sağlamayı düşünebilirsiniz. Bu ayrıntılar, görüntüleme ve filtreleme seçeneklerini iyileştirebilir.

val genres = Arrays.asList("Action", "Science fiction")
val rating1 = RatingSystem.Builder().setAgencyName("MPAA").setRating("PG-13").build()
val contentRatings = Arrays.asList(rating1)
val tvEpisodeEntity = TvEpisodeEntity.Builder()
    ...
    .addGenres(genres)
    .addContentRatings(contentRatings)
    .setSeasonTitle("Season Title")
    .setShowTitle("Show Title")
    .build()
VideoClipEntity

Aşağıda, gerekli tüm alanları içeren bir VideoClipEntity oluşturma örneği verilmiştir.

VideoClipEntity, YouTube videosu gibi kullanıcı tarafından oluşturulan bir klibi temsil eder.

val videoClipEntity = VideoClipEntity.Builder()
    .setPlaybackUri(Uri.parse("https://www.example.com/uri_for_current_platform")
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Video clip name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(600000) //10 minutes in milliseconds
    .setLastPlayBackPositionTimeMillis(300000) //5 minutes in milliseconds
    .addContentRating(contentRating)
    .build()

İsteğe bağlı olarak oluşturucu, oluşturucu resmi, oluşturulma zamanı (milisaniye cinsinden) veya kullanılabilirlik zaman aralığını ayarlayabilirsiniz .

LiveStreamingVideoEntity

Aşağıda, tüm zorunlu alanları içeren bir LiveStreamingVideoEntity oluşturma örneği verilmiştir.

val liveStreamingVideoEntity = LiveStreamingVideoEntity.Builder()
    .setPlaybackUri(Uri.parse("https://www.example.com/uri_for_current_platform")
    .setWatchNextType(WatchNextType.TYPE_CONTINUE)
    .setName("Live streaming name")
    .addPlatformSpecificPlaybackUri(platformSpecificPlaybackUris)
    .addPosterImages(images)
    // Timestamp in millis for sample last engagement time 12/1/2023 00:00:00
    .setLastEngagementTimeMillis(1701388800000)
    .setDurationMills(72000000) //2 hours in milliseconds
    .setLastPlayBackPositionTimeMillis(36000000) //1 hour in milliseconds
    .addContentRating(contentRating)
    .build()

İsteğe bağlı olarak, canlı yayın öğesi için başlangıç zamanını, yayıncıyı, yayıncı simgesini veya kullanılabilirlik zaman aralığını ayarlayabilirsiniz.

Özellikler ve şartlar hakkında ayrıntılı bilgi için API referansına bakın.

Devamlılık kümesi verileri sağlama

AppEngagePublishClient, Devam Ettirme kümesini yayınlamaktan sorumludur. publishContinuationCluster() nesnesi yayınlamak için publishContinuationCluster() yöntemini kullanırsınız.ContinuationCluster

Öncelikle, hizmetin entegrasyona uygun olup olmadığını kontrol etmek için isServiceAvailable() işlevini kullanmanız gerekir.

client.publishContinuationCluster(
    PublishContinuationClusterRequest
        .Builder()
        .setContinuationCluster(
            ContinuationCluster.Builder()
                .setAccountProfile(accountProfile)
                .addEntity(movieEntity1)
                .addEntity(movieEntity2)
                .addEntity(tvEpisodeEntity1)
                .addEntity(tvEpisodeEntity2)
                .setSyncAcrossDevices(true)
                .build()
        )
        .build()
)

Hizmet isteği aldığında tek bir işlemde aşağıdaki işlemler gerçekleşir:

  • Geliştirici iş ortağından alınan mevcut ContinuationCluster verileri kaldırılır.
  • İstekten gelen veriler ayrıştırılır ve güncellenen ContinuationCluster içinde saklanır.

Hata durumunda isteğin tamamı reddedilir ve mevcut durum korunur.

Yayınlama API'leri, ekleme/güncelleme API'leridir. Mevcut içeriğin yerini alır. ContinuationCluster'daki belirli bir öğeyi güncellemeniz gerekiyorsa tüm öğeleri yeniden yayınlamanız gerekir.

ContinuationCluster verileri yalnızca yetişkin hesapları için sağlanmalıdır. Yalnızca AccountProfile bir yetişkine ait olduğunda yayınlayın.

Cihazlar arası senkronizasyon

SyncAcrossDevices işareti, kullanıcının ContinuationCluster verilerinin TV, telefon, tablet gibi cihazlar arasında senkronize edilip edilmeyeceğini kontrol eder. Cihazlar arası senkronizasyon varsayılan olarak devre dışıdır.

Değerler:

  • true: Sorunsuz bir izleme deneyimi için ContinuationCluster verileri kullanıcının tüm cihazlarında paylaşılır. En iyi cihazlar arası deneyim için bu seçeneği kullanmanızı kesinlikle öneririz.
  • false: ContinuationCluster verileri, mevcut cihazla sınırlıdır.

Medya uygulaması, cihazlar arası senkronizasyonu etkinleştirmek/devre dışı bırakmak için net bir ayar sunmalıdır. Kullanıcıya avantajları açıklayın ve kullanıcının tercihini bir kez saklayıp publishContinuationCluster'da buna göre uygulayın.

// Example to allow cross device syncing.
client.publishContinuationCluster(
    PublishContinuationClusterRequest
        .Builder()
        .setContinuationCluster(
            ContinuationCluster.Builder()
                .setAccountProfile(accountProfile)
                .setSyncAcrossDevices(true)
                .build()
        )
        .build()
)

Cihazlar arası özelliğimizden en iyi şekilde yararlanmak için uygulamanın kullanıcı izni aldığını doğrulayın ve SyncAcrossDevices özelliğini true olarak ayarlayın. Bu sayede içerikler cihazlar arasında sorunsuz bir şekilde senkronize edilebilir. Böylece daha iyi bir kullanıcı deneyimi ve daha fazla etkileşim sağlanır. Örneğin, bu özelliği uygulayan bir iş ortağı, içeriği birden fazla cihazda gösterildiği için "izlemeye devam et" tıklamalarında %40 artış elde etti.

Video Discovery verilerini silme

Bir kullanıcının verilerini standart 60 günlük saklama süresinden önce Google TV sunucusundan manuel olarak silmek için client.deleteClusters() yöntemini kullanın. Hizmet, isteği aldıktan sonra hesap profili veya hesabın tamamı için mevcut tüm video keşfi verilerini siler.

DeleteReason numaralandırması, veri silme nedenini tanımlar. Aşağıdaki kod, oturum kapatıldığında "İzlemeye devam et" verilerini kaldırır.


// If the user logs out from your media app, you must make the following call
// to remove continue watching data from the current google TV device,
// otherwise, the continue watching data will persist on the current
// google TV device until 60 days later.
client.deleteClusters(
    DeleteClustersRequest.Builder()
        .setAccountProfile(AccountProfile())
        .setReason(DeleteReason.DELETE_REASON_USER_LOG_OUT)
        .setSyncAcrossDevices(true)
        .build()
)

Test

Engage SDK entegrasyonunun doğru şekilde çalıştığını doğrulamak için doğrulama uygulamasını kullanın. Doğrulama uygulaması, verilerinizi doğrulamanıza ve yayın amaçlarının düzgün şekilde işlendiğini onaylamanıza yardımcı olacak araçlar sunar.

Yayınlama API'sini çağırdıktan sonra doğrulama uygulamasını kontrol ederek verilerinizin doğru şekilde yayınlandığını onaylayın. Devamlılık kümeniz, uygulamanın arayüzünde ayrı bir satır olarak gösterilmelidir.

  • Engage Service Flag'i yalnızca uygulamanızın Android Manifest dosyasındaki üretim dışı derlemeler için ayarlayın.
  • Engage Verify uygulamasını yükleyip açın.
  • isServiceAvailable false ise etkinleştirmek için "Aç/Kapat" düğmesini tıklayın.
  • Yayınlamaya başladığınızda yayınlanan verileri otomatik olarak görüntülemek için uygulamanızın paket adını girin.
  • Uygulamanızda aşağıdaki işlemleri test edin:
    • Oturum açın.
    • Profiller arasında geçiş yapın(varsa).
    • Bir videoyu başlatıp duraklatın veya ana sayfaya dönün.
    • Video oynatılırken uygulamayı kapatın.
    • "İzlemeye Devam Et" satırından bir öğeyi kaldırma (destekleniyorsa)
  • Her işlemden sonra uygulamanızın publishContinuationClusters API'sini çağırdığını ve verilerin doğrulama uygulamasında doğru şekilde gösterildiğini onaylayın.
  • Doğrulama uygulaması, doğru şekilde uygulanmış öğeler için yeşil bir "Her Şey Tamam" onay işareti gösterir.

    Doğrulama Uygulaması Başarı Ekran Görüntüsü
    1. şekil. Verification App Success
  • Doğrulama uygulaması, sorunlu varlıkları işaretler.

    Doğrulama Uygulaması Hatası Ekran Görüntüsü
    Şekil 2. Doğrulama Uygulaması Hatası
  • Hatalı öğelerle ilgili sorunları gidermek için TV kumandanızı kullanarak doğrulama uygulamasında öğeyi seçip tıklayın. Belirli sorunlar, incelemeniz için kırmızı renkte vurgulanarak gösterilir (aşağıdaki örneğe bakın).

    Doğrulama Uygulaması hata ayrıntıları
    3.şekil Doğrulama Uygulaması Hata Ayrıntıları

REST API

Engage SDK, iOS ve Roku TV gibi Android olmayan platformlarda tutarlı bir "izlemeye devam et" deneyimi sunmak için REST API'si sağlar. API, geliştiricilerin Android dışı platformlardan kayıtlı kullanıcılar için "Devam Eden İzlemeler" durumunu güncellemesine olanak tanır.

Ön koşullar

  • Öncelikle cihaz üzerinde Engage SDK'ya dayalı entegrasyonu tamamlamanız gerekir. Bu kritik adım, Google'ın kullanıcı kimliği ile uygulamanızın AccountProfile arasında gerekli ilişkilendirmeyi oluşturur.
  • API Erişimi ve Kimlik Doğrulama: API'yi Google Cloud projenizde görüntülemek ve etkinleştirmek için izin verilenler listesi sürecinden geçmeniz gerekir. Tüm API istekleri için kimlik doğrulama gerekir.

Erişim elde etme

Google Cloud Console'unuzda API'yi görüntülemek ve etkinleştirmek için hesabınızın kayıtlı olması gerekir.

  1. Google Workspace müşteri kimliği kullanılabilir olmalıdır. Kullanılamıyorsa API'yi çağırmak için kullanmak istediğiniz Google Hesaplarının yanı sıra bir Google Workspace hesabı da oluşturmanız gerekebilir.
  2. Google Workspace ile ilişkili bir e-posta adresi kullanarak Google Cloud Console'da hesap oluşturun.
  3. Yeni proje oluşturma
  4. API kimlik doğrulaması için bir hizmet hesabı oluşturun. Hizmet hesabını oluşturduktan sonra iki öğeniz olur:
    • Bir hizmet hesabı kimliği.
    • Hizmet hesabı anahtarınızın bulunduğu bir JSON dosyası. Bu dosyanın güvenliğini sağlayın. Daha sonra istemcinizin API'de kimliğini doğrulamak için bu dosyaya ihtiyacınız olacaktır.
  5. Workspace ve ilişkili Google Hesapları artık REST API'lerini kullanabilir. Değişiklik yayıldıktan sonra, API'nin hizmet hesaplarınız tarafından çağrılmaya hazır olup olmadığı konusunda bilgilendirilirsiniz.
  6. Yetkilendirilmiş API çağrısı yapmaya hazırlanmak için bu adımları uygulayın.

Devam Eden Yayınlar Kümesi Yayınlama

Video Discovery verilerini yayınlamak için aşağıdaki söz dizimini kullanarak publishContinuationCluster API'sine bir POST isteği gönderin.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/publishContinuationCluster

Nerede:

  • package_name: Medya sağlayıcı paketinin adı
  • accountId: Kullanıcının sisteminizdeki hesabının benzersiz kimliği. Cihazdaki yolda kullanılan accountId ile eşleşmelidir.
  • profileId: Kullanıcının sisteminizdeki hesapta bulunan profilinin benzersiz kimliği. Kimlik, cihaz üzerindeki yolda kullanılan profileId ile eşleşmelidir.

Profil içermeyen hesabın URL'si:

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/publishContinuationCluster

İsteğin yükü entities alanında gösterilir. entities MovieEntity veya TVEpisodeEntity olabilen içerik öğelerinin listesini temsil eder. Bu zorunlu bir alandır.

İstek Metni

Field

Tür

Zorunlu

Açıklama

varlıklar

MediaEntity nesnelerinin listesi

Evet

İçerik öğeleri listesi (en fazla 5). Yalnızca ilk beş öğe korunur, geri kalanı silinir. Kullanıcının tüm öğeleri izlemeyi bitirdiğini belirtmek için boş liste gönderilebilir.

entities alanı, movieEntity ve tvEpisodeEntity değerlerini içeriyor.

Field

Tür

Zorunlu

Açıklama

movieEntity

MovieEntity

Evet

ContinuationCluster içindeki bir filmi temsil eden nesne.

tvEpisodeEntity

TvEpisodeEntity

Evet

ContinuationCluster içindeki bir TV bölümünü temsil eden nesne.

Varlıklar dizisindeki her nesne,ortak ve türe özgü alanlarla birlikte MovieEntity ve TvEpisodeEntity olmak üzere mevcut MediaEntity türlerinden biri olmalıdır.

Aşağıdaki kod snippet'inde, publishContinuationCluster API'si için istek gövdesi yükü gösterilmektedir.

{
  "entities": [
    {
      "movieEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "Movie1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/movie1_img1.png",
          "http://www.example.com/movie1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 5400000,
        "last_play_back_position_time_millis": 3241111
      }
    },
    {
      "tvEpisodeEntity": {
        "watch_next_type": "WATCH_NEXT_TYPE_CONTINUE",
        "name": "TV SERIES EPISODE 1",
        "platform_specific_playback_uris": [
          "https://www.example.com/entity_uri_for_android",
          "https://www.example.com/entity_uri_for_iOS"
        ],
        "poster_images": [
          "http://www.example.com/episode1_img1.png",
          "http://www.example.com/episode1_imag2.png"
        ],
        "last_engagement_time_millis": 864600000,
        "duration_millis": 1800000,
        "last_play_back_position_time_millis": 2141231,
        "episode_display_number": "1",
        "season_number": "1",
        "show_title": "title"
      }
    }
  ]
}

Video keşfi verilerini silme

Video keşfi verilerini kaldırmak için clearClusters API'yi kullanın.

Öğeleri video keşfi verilerinden kaldırmak için POST URL'sini kullanın. Devamlılık kümesi verilerini silmek için aşağıdaki söz dizimini kullanarak clearClusters API'ye bir POST isteği gönderin.

https://tvvideodiscovery.googleapis.com/v1/packages/{package_name}/accounts/{account_id}/profiles/{profile_id}/clearClusters

Nerede:

  • package_name: Medya sağlayıcı paket adı.
  • accountId: Kullanıcının sisteminizdeki hesabının benzersiz kimliği. Cihazdaki yolda kullanılan accountId ile eşleşmelidir.
  • profileId: Kullanıcının sisteminizdeki hesapta bulunan profilinin benzersiz kimliği. Kimlik, cihaz üzerindeki yolda kullanılan profileId ile eşleşmelidir.

clearClusters API'sinin yükünde yalnızca bir alan bulunur: reason. Bu alan, verilerin kaldırılma nedenini belirten bir DeleteReason içerir.

{
  "reason": "DELETE_REASON_LOSS_OF_CONSENT"
}

Test

Verileri başarıyla yayınladıktan sonra, hedef Google platformlarındaki (ör. Google TV, Android ve iOS Google TV mobil uygulamaları) "İzlemeye Devam Et" satırında beklenen içeriğin göründüğünü doğrulamak için bir kullanıcı test hesabı kullanın.

Test sırasında birkaç dakikalık makul bir yayılma gecikmesine izin verin ve izleme koşullarına (ör. bir filmin bir bölümünü izleme veya bir bölümü tamamlama) uyun. Ayrıntılar için Uygulama geliştiriciler için Sonrakini İzle kuralları'na bakın.

İndir

İndirmeden önce aşağıdaki hüküm ve koşulları kabul etmeniz gerekir.

Hükümler ve Koşullar

Bu, Android Yazılım Geliştirme Kiti Lisans Sözleşmesi'dir

1. Giriş

1.1 Android Yazılım Geliştirme Kiti (Lisans Sözleşmesi'nde "SDK" olarak anılacak ve özellikle Android sistem dosyalarını, paketlenmiş API'ları ve Google API'ları eklentilerini içerecek şekilde), Lisans Sözleşmesi'nin şartlarına tabi olarak size lisanslanmıştır. Lisans Sözleşmesi, SDK'yı kullanımınızla ilgili olarak sizinle Google arasında yasal olarak bağlayıcı bir sözleşme teşkil eder. 1.2 "Android", zaman zaman güncellenen şu URL'de bulunan Android Açık Kaynak Projesi kapsamında kullanıma sunulan, cihazlar için Android yazılım yığınını ifade eder: https://source.android.com/. 1.3 "Uyumlu uygulama", (i) Android uyumluluk web sitesinde (https://source.android.com/compatibility) bulunabilen ve zaman zaman güncellenebilen ve (ii) Android Uyumluluk Test Paketi'ni (CTS) başarıyla geçen tüm Android cihazları ifade eder. 1.4 "Google", Delaware Eyaleti, ABD yasaları uyarınca kurulmuş ve ana iş yeri 1600 Amphitheatre Parkway, Mountain View, CA 94043, ABD adresinde bulunan ABD yasaları uyarınca faaliyet gösteren Google LLC anlamına gelir.

2. Lisans Sözleşmesi'ni Kabul Etme

2.1 SDK'yı kullanmak için öncelikle Lisans Sözleşmesi'ni kabul etmeniz gerekir. Lisans Sözleşmesi'ni kabul etmeden SDK'yı kullanamazsınız. 2.2 Bu SDK'yı kabul etme seçeneğini tıklayarak ve/veya kullanarak, Lisans Sözleşmesi'nin şartlarını kabul etmiş olursunuz. 2.3 ABD'nin veya ikamet ettiğiniz ya da SDK'yı kullandığınız ülke de dahil olmak üzere diğer ülkelerin yasaları uyarınca SDK'yı almanız yasaklanmış bir kişiyseniz SDK'yı kullanamaz ve Lisans Sözleşmesi'ni kabul edemezsiniz. 2.4 İşvereniniz veya diğer bir tüzel kişi adına Lisans Sözleşmesi'ne tabi olmayı kabul ediyorsanız, işvereniniz veya benzeri tüzel kişinin söz konusu tüzel kişi adına Sözleşme'ye tabi olması konusunda tam yasal yetkiye sahip olduğunuzu beyan ve temin edersiniz. Gerekli yetkiye sahip değilseniz işvereniniz veya başka bir tüzel kişi adına Lisans Sözleşmesi'ni kabul edemez ya da SDK'yı kullanamazsınız.

3. Google'dan SDK Lisansı

3.1 Lisans Sözleşmesi'nin şartlarına tabi olarak, Google size, SDK'yı yalnızca Android'in uyumlu uygulamalarına yönelik uygulamalar geliştirmek amacıyla kullanmanız için sınırlı, dünya çapında geçerli, telifsiz, devredilemez, münhasır olmayan ve alt lisansı verilemez bir lisans verir. 3.2 Bu SDK'yı başka platformlar için (Android'in uyumlu olmayan uygulamaları dahil) uygulama geliştirmek veya başka bir SDK geliştirmek amacıyla kullanamazsınız. Bu SDK'nın bu amaç için kullanılmaması şartıyla, Android'in uyumsuz uygulamaları da dahil olmak üzere başka platformlar için uygulama geliştirmekte özgürsünüz. 3.3 Google'ın veya üçüncü tarafların, SDK'da bulunan Fikri Mülkiyet Hakları dahil olmak üzere SDK ile ilgili tüm yasal haklara, unvanlara ve menfaatlere sahip olduğunu kabul edersiniz. "Fikri Mülkiyet Hakları" patent kanunu, telif hakkı kanunu, ticari sır kanunu, ticari marka kanunu ve diğer tüm mülkiyet hakları kapsamındaki tüm haklar anlamına gelir. Google, size açıkça sunulmayan tüm hakları saklı tutar. 3.4 SDK'yı Lisans Sözleşmesi'nde açıkça izin verilmeyen herhangi bir amaçla kullanamazsınız. Geçerli üçüncü taraf lisanslarının gerektirdiği kapsam dışında, SDK'yı veya SDK'nın herhangi bir bölümünü kopyalayamaz (yedekleme amaçları hariç), üzerinde değişiklik yapamaz, uyarlayamaz, yeniden dağıtamaz, derlemesini çözemez, tersine mühendislik yapamaz, SDK'yı parçalara ayıramaz veya SDK'nın herhangi bir bölümünü türev çalışmalar oluşturamazsınız. 3.5 Açık kaynak yazılım lisansı altında lisanslanmış SDK bileşenlerinin kullanımı, çoğaltılması ve dağıtımı, Lisans Sözleşmesi'ne değil, yalnızca ilgili açık kaynak yazılım lisansının şartlarına tabidir. 3.6 Google'ın sağladığı SDK'nın biçiminin ve yapısının size önceden bildirimde bulunulmaksızın değişebileceğini ve SDK'nın gelecekteki sürümlerinin, SDK'nın önceki sürümlerinde geliştirilen uygulamalarla uyumlu olmayabileceğini kabul edersiniz. Google'ın, SDK'yı (veya SDK'daki herhangi bir özelliği) size veya genel olarak kullanıcılara sunmayı, önceden bildirimde bulunmaksızın, yalnızca Google'ın şahsi karar verme yetkisiyle (kalıcı veya geçici olarak) durdurabileceğini kabul edersiniz. 3.7 Lisans Sözleşmesi'ndeki hiçbir madde size Google'ın ticari adları, ticari markaları, hizmet markaları, logoları, alan adları veya diğer belirleyici marka özelliklerinden hiçbirini kullanma hakkı vermez. 3.8 SDK'ya eklenmiş veya SDK'nın içinde bulunan mülkiyet hakkı bildirimlerini (telif hakkı ve ticari marka bildirimleri dahil) kaldırmayacağınızı, gizlemeyeceğinizi veya değiştirmeyeceğinizi kabul edersiniz.

4. SDK'yı Kullanımınız

4.1 Google, SDK'yı kullanarak geliştirdiğiniz yazılım uygulamaları için, söz konusu uygulamalarda bulunan tüm fikri mülkiyet hakları da dahil olmak üzere, Lisans Sözleşmesi kapsamında sizden (veya lisans verenlerinizden) herhangi bir hak, unvan ya da menfaat elde etmediğini kabul eder. 4.2 SDK'yı yalnızca (a) Lisans Sözleşmesi ve (b) (veri veya yazılımların Amerika Birleşik Devletleri'ne/Devletleri'nden diğer ilgili ülkelere/ülkelerden ihracı ile alakalı tüm yasalar da dahil olmak üzere) ilgili yargı alanındaki geçerli herhangi bir yasa, yönetmelik veya genel olarak kabul edilmiş uygulamalar ve yönergeler tarafından izin verilen amaçlar doğrultusunda kullanmayı kabul edersiniz. 4.3 Genel kullanıcılar için uygulama geliştirmek üzere SDK'yı kullanmanız durumunda söz konusu kullanıcıların gizliliğini ve yasal haklarını koruyacağınızı kabul edersiniz. Kullanıcıların kullanıcı adlarını, şifrelerini veya diğer giriş ya da kişisel bilgilerini size sunması halinde, kullanıcılara bu bilgilerin uygulamanız için kullanılabilir olacağını bildirmeniz ve yasal olarak yeterli düzeyde gizlilik bildirimi ve koruması sağlamanız gerekir. Uygulamanız, kullanıcılar tarafından sağlanan kişisel veya hassas bilgileri saklıyorsa bunu güvenli bir şekilde yapmalıdır. Kullanıcı uygulamanıza Google Hesabı bilgileri verirse, uygulamanız bu bilgileri yalnızca kullanıcının Google Hesabına erişmek için ve kullanıcının izin verdiği ölçüde sınırlı amaçlarla kullanabilir. 4.4 SDK ile uygulama geliştirme ve dağıtma dahil olmak üzere operatör, iletişimini bozan, zararı veya diğer mobil iletişimlerini kesintiye uğratacak ya da bunlara yetkisiz şekilde erişecek, ancak herhangi bir şekilde sınırlı olmayan şekilde operatör, iletişim veya erişim ya da erişim izni vermeyeceğinizi kabul edersiniz. 4.5 Android ve/veya Android uygulamalarını kullanarak oluşturduğunuz, aktardığınız veya görüntülediğiniz her türlü veri, içerik ya da kaynak konusunda Google'ın size veya üçüncü bir tarafa karşı hiçbir sorumluluğunun olmadığını (ve Google'ın bu tür Veri, İçerik veya Kaynaklardan) ve bunu yaparak gerçekleştirdiğiniz eylemlerin sonuçlarından (Google'ın uğrayabileceği her tür kayıp ve hasar dahil olmak üzere) tek başınıza sorumlu olduğunuzu (ve Google'ın bu Sözleşme'nin, Sözleşme'nin, Sözleşme'nin, Sözleşme'sinin veya üçüncü tarafla ilgili herhangi bir ihlalinden, zararından veya ihlalinden sorumlu tutulabileceğini)

5. Geliştirici Kimlik Bilgileriniz

5.1 Size Google tarafından verilebilecek veya kendiniz seçebileceğiniz herhangi bir geliştirici kimlik bilgisinin gizliliğini korumaktan sorumlu olduğunuzu ve geliştirici kimlik bilgileriniz kapsamında geliştirilen tüm uygulamalardan yalnızca sizin sorumlu olduğunuzu kabul edersiniz.

6. Gizlilik ve Bilgiler

6.1 Google sürekli olarak yenilik yapmak ve SDK'yı iyileştirmek için benzersiz tanımlayıcı, ilişkili IP adresi, yazılımın sürüm numarası ve SDK'da hangi araçların ve/veya hizmetlerin kullanıldığı ile bunların nasıl kullanıldığı hakkında bilgiler de dahil ancak bunlarla sınırlı olmamak üzere belirli kullanım istatistiklerini yazılımdan toplayabilir. Bu bilgilerden herhangi biri toplanmadan önce SDK sizi bilgilendirecek ve izninizi isteyecektir. İzin vermezseniz bilgiler toplanmaz. 6.2 Toplanan veriler, SDK'yı iyileştirmek amacıyla toplu olarak incelenir ve Google'ın Gizlilik Politikası'na (https://policies.google.com/privacy) uygun şekilde korunur. 6.3 Anonimleştirilmiş ve birleştirilmiş veri kümeleri, SDK'yı iyileştirmek amacıyla Google iş ortaklarıyla paylaşılabilir.

7. Üçüncü Taraf Uygulamaları

7.1 SDK'yı bir üçüncü tarafın geliştirdiği ya da üçüncü bir tarafın sağladığı veri, içeriğe veya kaynaklara erişen uygulamaları çalıştırmak için kullanırsanız bu uygulamalardan, verilerden, içeriklerden veya kaynaklardan Google'ın sorumlu olmadığını kabul edersiniz. Bu tür üçüncü taraf uygulamaları üzerinden erişebileceğiniz tüm verilerin, içeriğin veya kaynakların yalnızca bu uygulamaları oluşturan kişinin sorumluluğunda olduğunu ve söz konusu üçüncü taraf uygulamalarının, verilerinin, içeriklerinin veya kaynaklarının kullanımı veya bunlara erişim nedeniyle oluşabilecek kayıp ya da zararlardan Google'ın sorumlu olmadığını kabul edersiniz. 7.2 Bu tür bir üçüncü taraf uygulaması aracılığıyla size sunulan verilerin, içeriğin ve kaynakların, sağlayıcıların (veya onlar adına diğer kişi veya şirketlerin) fikri mülkiyet haklarıyla korunuyor olabileceğini unutmamalısınız. İlgili sahiplerden özel olarak izin almadığınız sürece bu verileri, içeriği veya kaynakları (tamamen veya kısmen) değiştiremezsiniz, kiraya veremezsiniz, kiralayamaz, ödünç veremez, satamaz, dağıtamaz veya bunlara dayalı türev çalışmalar oluşturamazsınız. 7.3 Bu tür üçüncü taraf uygulamalarını, verilerini, içeriklerini veya kaynaklarını kullanmanızın, ilgili üçüncü taraf ve sizin aranızda farklı şartlara tabi olabileceğini kabul edersiniz. Bu durumda, Lisans Sözleşmesi bu üçüncü taraflarla olan yasal ilişkinizi etkilemez.

8 Android API'lerini kullanma

8.1 Google Veri API'ları 8.1.1 Google'dan veri almak için herhangi bir API kullanmanız halinde, verilerin Google'a veya verileri sağlayan taraflara (ya da onlar adına hareket eden diğer kişi veya şirketlere) ait fikri mülkiyet haklarıyla korunabileceğini kabul edersiniz. Bu tür API'lerden herhangi birini kullanımınız ek Hizmet Şartları'na tabi olabilir. İlgili Hizmet Şartları tarafından izin verilmedikçe, bu verileri (tamamen veya kısmen) değiştiremezsiniz, kiraya veremezsiniz, finansal kiralamayla veremezsiniz, ödünç veremez, satamaz, dağıtamaz veya bu verileri temel alan türev çalışmalar oluşturamazsınız. 8.1.2 Bir kullanıcının verilerini Google'dan almak için zaman API'sinden veri almak üzere herhangi bir API kullanıyorsanız, verileri yalnızca kullanıcının açık izniyle ve kullanıcının bunu yapma izni verdiği sınırlı amaçlarla alacağınızı kabul edersiniz. https://developer.android.com/reference/android/business/Recognition'da Veri İşleme için Ek Sözleşme'yi kullanabilirsiniz. Aşağıdaki URL'de belirtilen Android Recognition Service API'yi kullanırsanız: https://developer.android.com/reference/android/speech/Recognition, Google'ın Veri İşleme Şartları'na tabi olan Veri İşleme Hizmet API'sini Veri İşleyicisi'nden zaman güncelliyor. Kabul et seçeneğini tıklayarak, Google'ın Veri İşleyen olduğu Ürünler için Veri İşleme Eki şartlarını kabul etmiş olursunuz.

9. Lisans Sözleşmesi'nin Feshi

9.1 Lisans Sözleşmesi, tarafınızdan veya Google tarafından aşağıda belirtilen şekilde feshedilinceye kadar yürürlükte kalacaktır. 9.2 Lisans Sözleşmesi'ni feshetmek isterseniz SDK'yı ve ilgili geliştirici kimlik bilgilerini kullanmayı bırakarak bunu yapabilirsiniz. 9.3 Google aşağıdaki durumlarda sizinle olan Lisans Sözleşmesi'ni istediği zaman feshedebilir: (A) Lisans Sözleşmesi'nin herhangi bir hükmünü ihlal etmeniz durumunda; (B) Google'ın yasa gereği bunu yapması gerektiğinde; veya (C) Google'ın SDK'nın belirli bölümlerini (API'ler gibi) size sunduğu iş ortağı, Google ile ilişkisini sonlandırdıysa veya SDK'nın belirli bölümlerini artık size sunmadığına karar verirse SDK'nın belirli bölümlerini artık size sunmadığı veya SDK'nın belirli bölümlerini artık size sunmamaya karar verdiği takdirde, SDK'nın bazı bölümlerini Google'ın şahsi karar verme yetkisiyle veya yalnızca size Google tarafından ticari olarak kullanma olanağınız yoksa, SDK'nın hizmetleri veya belirli parçalarını artık Google'dan ticari amaçla kullanmamanız halinde Google'ın SDK'yı ticari olarak veya yalnızca size sağladığına karar verebilir. 9.4 Lisans Sözleşmesi sona erdiğinde, sizin ve Google'ın yararlandığı, tabi olduğunuz (veya Lisans Sözleşmesi yürürlükteyken zaman içinde tahakkuk eden) ya da süresiz olarak devam edeceği belirtilen tüm yasal haklar, yükümlülükler ve sorumluluklar bu iptalden etkilenmeyecek ve 14.7 numaralı paragraftaki yükümlülükler bu tür haklar için kesin olarak geçerli olmaya devam edecektir.

10. GARANTİLERİN REDDİ

10.1 SDK'YI KULLANMA RİSKİNİN YALNIZCA SİZE AİT OLDUĞUNU, SDK'NIN GOOGLE TARAFINDAN HERHANGİ BİR GARANTİ OLMAKSIZIN "OLDUĞU GİBİ" VE "MEVCUT OLDUĞU GİBİ" SAĞLANDIĞINI AÇIKÇA ANLAR VE KABUL EDERSİNİZ. 10.2 SDK'YI KULLANIMINIZ VE SDK'NIN KULLANMASIYLA İNDİRİLEN YA DA BAŞKA ŞEKİLDE ELDE EDİLEN MALZEMENİN KENDİ REDDİ SİZE AİTTİR VE CİHAZINIZDAKİ VERİLERİN VEYA DİĞER VERİLERİN YA DA SONUÇLARINDAN YALNIZCA SİZ SORUMLULUĞUNUZ VARDIR. 10.3 GOOGLE, ZIMNİ GARANTİLER VE SATILABİLİRLİK, BÖLÜMÜN UYGUNLUK KOŞULLARI DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE, AÇIK VEYA ZIMNİ HERHANGİ BİR GARANTİ VE KOŞULU AÇIKÇA REDDEDER.

11. SORUMLULUĞUN SINIRLANDIRILMASI

11.1 GOOGLE, YAN KURULUŞLARI, BAĞLI KURULUŞLARI VE LİSANS VERENLERİN HERHANGİ BİR DOĞRU, DOLAYLI, ARIZİ, ARIZİ VEYA HERHANGİ BİR SORUMLULUK TARAFINDAN SORUMLU DEĞİL, SÖZ KONUSU OLDUĞUNDA

12. Tazminat

12.1 Telif hakkı Sözleşmesi'nin izin verdiği azami ölçüde; telif hakkı ile ilişkili telif hakkı, ticari marka veya ilgili ticari marka haklarıyla, iştiraklerini ve ilgili yöneticilerini, yetkililerini, çalışanlarını ve aracılarını, her türlü hak talebi, dava, dava veya davaya karşı müdafaa etmeyi, bunları tazmin etmeyi ve masun tutmayı kabul edersiniz.

13. Lisans Sözleşmesi'ndeki Değişiklikler

13.1 Google, SDK'nın yeni sürümlerini dağıtırken Lisans Sözleşmesi'nde değişiklik yapabilir. Bu değişiklikler yapıldığında Google, SDK'nın kullanıma sunulduğu web sitesinde Lisans Sözleşmesi'nin yeni bir sürümünü yayınlar. 14.1 Lisans Sözleşmesi, Google ile aranızdaki tüm yasal sözleşmeyi oluşturur ve SDK'yı (Google'ın size ayrı bir yazılı sözleşme ile sağlayabileceği hizmetler hariç) kullanımınızı düzenler ve SDK'ya ilişkin olarak Google ile aranızdaki tüm eski sözleşmelerin tamamen yerini alır. 14.2 Google’ın, Lisans Sözleşmesi'nde (ya da uygulanacak herhangi bir yasa kapsamında Google lehine olan şartlarda) yer alan herhangi bir yasal hakkı veya telafiyi yürürlüğe koymaması ya da uygulamamasının, Google’ın haklarından resmen feragat ettiği anlamına gelmeyeceğini ve bu hakların veya telafilerin Google için geçerli olmaya devam edeceğini kabul edersiniz. 14.3 Bu konuda karar vermeye yetkili olan herhangi bir mahkeme, Lisans Sözleşmesi'nin herhangi bir hükmünün geçersiz olduğuna karar verirse, söz konusu hüküm, Lisans Sözleşmesi'nin geri kalan kısmını etkilemeden Lisans Sözleşmesi'nden çıkarılır. Lisans Sözleşmesi'nin geri kalan hükümleri, geçerli ve uygulanabilir olmaya devam eder. 14.4 Google’ın ana şirket olduğu şirketler grubu üyelerinin Lisans Sözleşmesi'nin üçüncü taraf lehtarları olduğunu ve bu gibi şirketlerin, Lisans Sözleşmesi'nin kendilerine çıkar sağlayan (ya da kendi lehlerine olan) her türlü hükmünü doğrudan uygulamaya ve bunlardan yararlanmaya yetkili olduklarını kabul edersiniz. Bunun dışında, hiçbir şahıs ya da şirket Lisans Sözleşmesi'nin üçüncü taraf lehtarı olamaz. 14.5 İHRACAT KISITLAMALARI. SDK, BİRLEŞİK DEVLETLER İHRACAT YASALARI VE DÜZENLEMELERİNE TABİDİR. SDK'YA UYGULANAN TÜM ULUSAL VE ULUSLARARASI İHRACAT YASALARI İLE DÜZENLEMELERE UYMANIZ GEREKMEKTEDİR. BU YASALAR VARIŞ NOKTALARI, SON KULLANICILAR VE SON KULLANIMLA İLGİLİ KISITLAMALAR İÇERMEKTEDİR. 14.6 Lisans Sözleşmesi'nde belirtilen haklar, üçüncü taraflardan önceden yazılı onay alınmadıkça siz veya Google tarafından bir başkasına tahsis edilemez veya aktarılamaz. Ne sizin ne de Google'ın, diğer tarafın yazılı onayı olmadan Lisans Sözleşmesi kapsamındaki sorumlulukları ve yükümlülükleriyle ilgili yetki verme izni vardır. 14.7 Lisans Sözleşmesi ve Lisans Sözleşmesi kapsamında Google ile olan ilişkiniz, yasa uyuşmazlığı hükümlerine bakılmaksızın, Kaliforniya Eyaleti kanunlarına tabi olacaktır. Siz ve Google, Lisans Sözleşmesi'nden doğacak her türlü yasal meselenin çözümüne ilişkin olarak Kaliforniya, Santa Clara bölgesinde yer alan mahkemelerin münhasır yargı yetkisine tabi olmayı kabul etmektesiniz. Bununla birlikte, Google’ın başka ülke mahkemelerine de ihtiyati tedbirler (ya da benzer acil yasal çözümler) için başvurabileceğini kabul edersiniz. 27 Temmuz 2021
indirin

verify_app_multiplatform_public_20250602.apk