REST API kullanarak "İzlemeye Devam Et" özelliğini entegre etme

book_path: /distribute/other-docs/_book.yaml project_path: /distribute/other-docs/_project.yaml

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

Ön koşullar

  • Öncelikle cihaz üzerinde Engage SDK'ya dayalı entegrasyonu tamamlamanız gerekir. Bu önemli 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 Google Workspace'i de ayarlamanız gerekebilir.
  2. Google Workspace ile ilişkili bir e-posta adresi kullanarak Google Cloud Console'da hesap oluşturun.
  3. Yeni bir proje oluşturun.
  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 dosyayı güvende tutun. İstemcinizin API'de kimliğini doğrulamak için daha sonra bu değere ihtiyacınız olacak.
  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 Ettirme 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ı paket adı
  • accountId: Kullanıcının sisteminizdeki hesabının benzersiz kimliği. Cihaz üzerinde yolda kullanılan accountId ile eşleşmelidir.
  • profileId: Sisteminizdeki hesapta kullanıcının profilinin benzersiz kimliği. Kimlik, cihazdaki 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 gösterir. Bu alanının doldurulması zorunludur.

İstek Metni

Field

Tür

Zorunlu

Açıklama

varlıklar

MediaEntity nesnelerinin listesi

Evet

En fazla 5 içerik varlığı içeren liste. Yalnızca ilk beş öğe saklanır, diğerleri silinir. Kullanıcının tüm öğeleri izlemeyi bitirdiğini belirtmek için boş bir listeye izin verilir.

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.

Entities 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'sinin 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.

Devam ettirme 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. Cihaz üzerinde yolda kullanılan accountId ile eşleşmelidir.
  • profileId: Sisteminizdeki hesapta kullanıcının profilinin benzersiz kimliği. Kimlik, cihazdaki yolda kullanılan profileId ile eşleşmelidir.

clearClusters API'sinin yükünde yalnızca bir alan (reason) bulunur. 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 şartlarına (ör. bir filmin bir bölümünü izleme veya bir bölümü tamamlama) uyun. Ayrıntılı bilgi için Uygulama geliştiriciler için Sonrakini İzle yönergeleri'ne bakın.