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
AccountProfilearası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.
- 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.
- Google Workspace ile ilişkili bir e-posta adresi kullanarak Google Cloud Console'da hesap oluşturun.
- Yeni bir proje oluşturun.
- 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.
- 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.
- 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ılanaccountIdile 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ılanaccountIdile 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.