Google, cihaz üzerinde kullanıcıların cihazlarını ve sektörlere göre uygulamalar Ayrıca kişiselleştirilmiş uygulama içeriği tüketimi için yeni ve etkileyici bir deneyim sunar. keşfedeceğiz. Bu tam ekran deneyimi, geliştirici iş ortaklarına En iyi zengin içeriklerini YouTube dışındaki özel bir kanalda sergileme fırsatı en iyi yoludur.
Bu kılavuz, geliştirici iş ortaklarının hem bu yeni yüzey alanını doldurmak için hem de Engage SDK'sını kullanarak ve Entertainment Space gibi mevcut Google platformlarını kullanabiliriz.
Entegrasyon ayrıntıları
Terminoloji
Bu entegrasyon şu beş küme türünü içerir: Öneri, Öne Çıkan, Alışveriş Sepeti, Alışveriş Listesi, Yeniden Sırala ve Alışveriş Sipariş İzleme.
Öneri kümeleri, bağımsız geliştirici iş ortağı olarak kabul edilir. Bu öneriler, (örneğin, trend olan öğeler). Bunları kullanarak promosyonları, abonelikleri, ürünleri, etkinlikleri, indirimleri, promosyonları ve abonelikleri uygun gördüğünüz şekilde yayınlayabilirsiniz.
Önerileriniz aşağıdaki yapıya sahiptir:
Öneri Kümesi: Bir kullanıcı arayüzü görünümü aynı geliştirici iş ortağından gelen önerilerle ilgilidir.
ShoppingEntity: Kümedeki tek bir öğeyi temsil eden nesne.
Öne Çıkanlar kümesi, çok sayıda fotoğraf arasından seçilen kahraman
ShoppingEntity
'yi gösterir. geliştirici iş ortaklarını tek bir kullanıcı arayüzü gruplandırmasında birleştirin. Tek bir tane Öne Çıkan var üst kısmına yakın bir yerde bulunan ve öncelikli bir şekilde Tüm Öneri kümelerinin üzerinde görünür. Her geliştirici iş ortağı Öne Çıkanlar kümesinde tek bir ShoppingEntity yayınlamasına izin verildi.Alışveriş Sepeti kümesi, çok sayıda satıcının alışveriş sepetlerine geliştirici iş ortakları ile tek bir kullanıcı arayüzü gruplandırmasında kullanıcıları, bekleyen alışveriş sepetleri. Alışveriş Sepeti kümesi, kullanıcı arayüzünün üst kısmına yakın bir yerde, her şeyden öncelikli Öneri kümeleri. Her geliştirici iş ortağının bir Alışveriş Sepeti kümesinde tek
ShoppingCart
var.Alışveriş sepetiniz aşağıdaki yapıyı kullanır:
Alışveriş Sepeti Kümesi: Bir grup alışveriş sepetini içeren kullanıcı arayüzü görünümü birçok geliştirici iş ortağından alışveriş sepeti önizlemesi
ShoppingCart: Alışveriş sepeti önizlemesini temsil eden bir nesne Alışveriş sepetinde gösterilmek üzere tek bir geliştirici iş ortağı için kümesidir.
ShoppingCart
, ve kullanıcının sepetindeki bazı öğelerin resimlerini de içerebilir.
Alışveriş Listesi kümesi, yapılan alışverişlere dair birden fazla geliştirici iş ortağından listelerin tek bir kullanıcı arayüzü grubunda gösterilmesi, kullanıcıların listelerini güncellemek ve tamamlamak için ilgili uygulamaya geri dönün. Bir tek bir Alışveriş Listesi kümesi var.
Reorder (Yeniden sırala) kümesi, önceki siparişlere ait tek bir kullanıcı arayüzü gruplandırmasında birden çok geliştirici iş ortağı ile, kullanıcıların yeniden sıralamaları istenir. Tek bir Yeniden sıralama kümesi var.
Yeniden sıralama kümesi, sipariş ile ilişkilidir ve aşağıdakilerden birini de içermelidir:
- Kullanıcının bir önceki siparişindeki X öğenin resimleri.
- Kullanıcının önceki siparişindeki X öğe için etiketler.
Alışveriş Sipariş İzleme kümesi, beklemede olan Tek bir kullanıcı arayüzünde birçok geliştirici iş ortağından gelen, yakın zamanda tamamlanmış alışveriş siparişleri Bu sayede kullanıcılar siparişlerini izleyebilir.
Gösterilen tek bir ShoppingOrdersTracking kümesi vardır. Kullanıcı arayüzünün üst kısmına yakın bir yerde, Öneriler'in üzerinde öncelikli bir yerleşimle fark edebilirsiniz. Her geliştirici iş ortağının birden fazla yayın yapmasına izin verilir. Shopping OrderTrackingEntity öğelerindeki Alışveriş Sipariş İzleme kümesi.
Shopping OrderTrackingCluster aşağıdaki yapıyı alır:
- ShoppingOrdersTracking Cluster: Birçok geliştirici iş ortağının sipariş takibi önizlemeleri
- ShoppingOrdersTrackingEntity: Bir alışveriş siparişini temsil eden nesne tek bir geliştirici iş ortağı için izleme önizlemesi Alışveriş Sipariş İzleme kümesi. Shopping OrderTrackingEntity, sipariş durumunu ve sipariş zamanını öğrenebilirsiniz. Önerilerimiz: Shopping OrderTrackingEntity için beklenen teslimat süresi, sağlandığında kullanıcılara gösterilir.
Ön çalışma
Minimum API düzeyi: 19
com.google.android.engage:engage-core
kitaplığını uygulamanıza ekleyin:
dependencies {
// Make sure you also include that repository in your project's build.gradle file.
implementation 'com.google.android.engage:engage-core:1.5.2'
}
Daha fazla bilgi için Android'de paket görünürlüğü başlıklı makaleyi inceleyin. 11) bulabilirsiniz.
Özet
Tasarım, hizmet.
Bir müşterinin yayınlayabileceği veriler, farklı için aşağıdaki sınırlara tabidir: küme türleri:
Küme türü | Küme sınırları | Bir kümedeki maksimum varlık sınırları |
---|---|---|
Öneri Kümeleri | En çok 5 | En fazla 25 ShoppingEntity |
Öne Çıkan Küme | En fazla 1 | En fazla 1 ShoppingEntity |
Alışveriş Sepeti Kümesi | En fazla 1 | En fazla 1 ShoppingCart |
Alışveriş Listesi Kümesi | En fazla 1 | En fazla 1 ShoppingListEntity |
Alışveriş Yeniden Sıralama Kümesi | En fazla 1 | En fazla 1 ReorderEntity |
Alışveriş Sipariş İzleme Kümesi | En fazla 3 | En fazla 3 ShoppingOrderTrackingEntity |
1. adım: Öğe verilerini sağlayın
SDK'da her öğe türünü temsil eden farklı varlıklar tanımlanmıştır. İlgili içeriği oluşturmak için kullanılan Alışveriş kategorisi için aşağıdaki varlıklar desteklenir:
ShoppingEntity
ShoppingCart
ShoppingList
Reorder
ShoppingOrderTracking
Aşağıdaki grafiklerde, her tür için kullanılabilir özellikler ve gereksinimler özetlenmektedir.
ShoppingEntity
ShoppingEntity
nesnesi bir ürünü, promosyonu, fırsatı, aboneliği
veya etkinlik ya da geliştirici iş ortaklarının yayınlamak istediği etkinliktir.
ShoppingEntity
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
Poster resimleri | Zorunlu | En az bir resim sağlanmalıdır. | Yardım için Resim Özellikleri'ne bakın. |
İşlem URI'sı | Zorunlu |
Uygulamada sizinle ilgili ayrıntıları gösteren sayfanın derin bağlantısı varlık. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
Başlık | İsteğe bağlı | Tüzel kişinin adı. | Serbest metin Önerilen metin boyutu: 90 karakterden az ( çok uzunsa üç nokta görüntülenebilir) |
Fiyat - geçerli | Koşula bağlı olarak gerekli |
Varlığın mevcut fiyatı. Üstü çizili fiyat sağlanmışsa bu değer de belirtilmelidir. |
Serbest metin |
Fiyat - üstü çizili | İsteğe bağlı | Tüzel kişinin orijinal fiyatı ( Kullanıcı arayüzü. | Serbest metin |
Açıklama metni | İsteğe bağlı | Öğe için tanıtım, etkinlik veya güncellemeyi öne çıkaracak açıklama metni (bu durum söz konusuysa) kullanılabilir. | Serbest metin Önerilen metin boyutu: 45 karakterden kısa ( çok uzunsa üç nokta görüntülenebilir) |
Ek bilgi açıklama metni | İsteğe bağlı | Açıklama metnine ilişkin ayrıntılı metin. | Serbest metin Önerilen metin boyutu: 45 karakterden kısa ( çok uzunsa üç nokta görüntülenebilir) |
Puan (İsteğe Bağlı) - Not: Tüm puanlar standart yıldız derecelendirme sistemimiz kullanılarak görüntülenebilir. | |||
Puan - Maksimum değer | İsteğe bağlı | Derecelendirme ölçeğinin maksimum değeri. Geçerli puan değeri de şu durumlarda sağlanmalıdır: sağlar. |
Sayı >= 0,0 |
Puan - Geçerli değer | İsteğe bağlı | Derecelendirme ölçeğinin mevcut değeri. Maksimum puan değeri de şu ise sağlanmalıdır: sağlar. |
Sayı >= 0,0 |
Puan - Sayı | İsteğe bağlı |
Varlık için puan sayısıdır. Not: Uygulamanız için bu alanı sağlayın sayımın kullanıcılara nasıl görüntüleneceğini kontrol eder. Kısa ve öz bir dize kullanın. Örneğin, sayı 1.000.000 ise kısaltma kullanabilirsiniz. Örneğin 1 milyon gibi. Böylece daha küçük ekran boyutlarında sayı kısaltılmaz. |
Dize |
Puan - Sayı Değeri | İsteğe bağlı | Varlık için puan sayısıdır. Not: Bu alanla ilgili işlem yapmıyorsanız ekran kısaltma mantığını kendiniz çözebilir. Hem Sayım hem de Sayım Değeri varsa kullanıcılara Sayı gösterilir. |
Uzun |
DisplayTimeWindow (İsteğe bağlı) - Bir zaman aralığı ayarlayın belirli bir süre boyunca | |||
Başlangıç Zaman Damgası | İsteğe bağlı |
İçeriğin teşekkür ederiz. Politika ayarlanmazsa içerik, platformda gösterilmeye uygundur. |
Milisaniye cinsinden Epoch zaman damgası |
Bitiş Zaman Damgası | İsteğe bağlı |
İçeriğin artık gösterilmediği dönem zaman damgası sahip olacaksınız. Politika ayarlanmazsa içerik, platformda gösterilmeye uygundur. |
Milisaniye cinsinden Epoch zaman damgası |
ShoppingCart
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
İşlem URI'sı | Zorunlu |
İş ortağının uygulamasındaki alışveriş sepetinin derin bağlantısı. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
Ürün sayısı | Zorunlu |
Alışveriş sepetindeki öğelerin sayısı (yalnızca ürün sayısı değil). Örneğin, alışveriş sepetinde 3 aynı gömlek ve 1 şapka varsa bu sayı 4 olmalıdır. |
Tam sayı >= 1 |
İşlem Metni | İsteğe bağlı |
Alışveriş Sepeti'ndeki düğmenin harekete geçirici mesaj metni (örneğin, Alışveriş Çantanız). Geliştirici herhangi bir işlem metni sunmazsa Sepeti Görüntüle, varsayılan ayardır. Bu özellik 1.1.0 ve sonraki sürümlerde desteklenir. |
Dize |
Başlık | İsteğe bağlı | Alışveriş sepetinin başlığı (örneğin, Alışveriş Çantanız). Geliştirici herhangi bir başlık sağlamazsa Alışveriş sepetiniz varsayılan değerdir. |
Serbest metin Önerilen metin boyutu: 25 karakterden kısa ( çok uzunsa üç nokta görüntülenebilir) |
Alışveriş sepeti resimleri | İsteğe bağlı | Alışveriş sepetindeki her ürünün resmi. Öncelik sırasına göre en fazla 10 resim sağlanabilir; "the" görüntülenen gerçek resim sayısı cihaz formuna bağlıdır faktörü. |
Yardım için Resim Özellikleri'ne bakın. |
Öğe etiketleri | İsteğe bağlı | Alışveriş listesindeki öğelerin etiket listesi. Görüntülenen gerçek etiket sayısı değişiklik gösterir. |
Serbest metin etiketlerinin listesi Önerilen metin boyutu: 20 karakterden az ( çok uzunsa üç nokta görüntülenebilir) |
DisplayTimeWindow (İsteğe bağlı) - Bir zaman aralığı ayarlayın belirli bir süre boyunca | |||
Başlangıç Zaman Damgası | İsteğe bağlı |
İçeriğin teşekkür ederiz. Politika ayarlanmazsa içerik, platformda gösterilmeye uygundur. |
Milisaniye cinsinden Epoch zaman damgası |
Bitiş Zaman Damgası | İsteğe bağlı |
İçeriğin artık gösterilmediği dönem zaman damgası sahip olacaksınız. Politika ayarlanmazsa içerik, platformda gösterilmeye uygundur. |
Milisaniye cinsinden Epoch zaman damgası |
ShoppingList
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
İşlem URI'sı | Zorunlu |
İş ortağının uygulamasındaki alışveriş listesinin derin bağlantısı. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
Ürün sayısı | Zorunlu | Alışveriş listesindeki öğelerin sayısı. | Tam sayı >= 1 |
Başlık | İsteğe bağlı |
Listenin başlığı (örneğin, Alışveriş Listeniz). Geliştirici herhangi bir başlık sağlamazsa Alışveriş listesi varsayılan değerdir. |
Serbest metin Önerilen metin boyutu: 25 karakterden kısa ( çok uzunsa üç nokta görüntülenebilir) |
Öğe etiketleri | Zorunlu | Alışveriş listesindeki öğelerin etiket listesi. En az 1 etiket sağlanmalıdır. En fazla 10 etiket sağlanabilir öncelik sırasına göre sağlanır; görüntülenen gerçek etiket sayısı değişiklik gösterir. |
Serbest metin etiketlerinin listesi Önerilen metin boyutu: 20 karakterden az ( çok uzunsa üç nokta görüntülenebilir) |
ShoppingReorderCluster
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
İşlem URI'sı | Zorunlu |
İş ortağının uygulamasında yeniden sipariş vermek için derin bağlantı. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
İşlem Metni | İsteğe bağlı |
Yeniden Sırala düğmesindeki düğmenin harekete geçirici mesaj metni (örneğin, Tekrar sipariş verin). Geliştirici herhangi bir işlem metni sunmazsa Yeniden sırala seçeneği varsayılan ayardır. Bu özellik 1.1.0 ve sonraki sürümlerde desteklenir. |
Dize |
Ürün sayısı | Zorunlu |
Önceki öğedeki öğe sayısı (yalnızca ürün sayısı değil) sipariş. Örneğin, aynı restoranda 3 küçük kahve ve 1 kruvasan bu sayı 4 olmalıdır. |
Tam sayı >= 1 |
Başlık | Zorunlu | Yeniden verilen öğenin başlığı. | Serbest metin Önerilen metin boyutu: 40 karakterden az ( çok uzunsa üç nokta görüntülenebilir) |
Öğe etiketleri | İsteğe bağlı (Sağlanmamışsa poster resimleri sağlanmalıdır) |
Önceki siparişin öğe etiketlerinin listesi. Öncelik sırasına göre en fazla 10 etiket sağlanabilir; "the" görüntülenen gerçek etiket sayısı cihaz formuna bağlıdır faktörü. |
Serbest metin listesi Etiket başına önerilen metin boyutu: 20 karakterden az (Çok uzun metinde üç nokta gösterilebilir) |
Poster resimleri | İsteğe bağlı (Sağlanmamışsa öğe etiketleri sağlanmalıdır) |
Önceki siparişteki öğelerin resimleri. Öncelik sırasına göre en fazla 10 resim sağlanabilir; "the" görüntülenen gerçek resim sayısı cihaz formuna bağlıdır faktörü. |
Yardım için Resim Özellikleri'ne bakın. |
ShoppingOrderTrackingCluster
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
Başlık | Zorunlu |
Takip edilen paketin/öğelerin kısa başlığı veya takibi sayı. |
Serbest metin Önerilen metin boyutu: 50 karakter (Çok uzun metin üç nokta şekli göster) 'nı inceleyin. |
Sipariş Türü | Zorunlu |
Takip edilen paketin/öğelerin kısa başlığı veya takibi sayı. |
Sıralama: IN_STORE_PICKUP, SAME_DAY_DELIVERY, MULTI_DAY_DELIVERY |
Durum | Zorunlu |
Siparişin mevcut durumu. Örneğin: "Gecikeceğim", "Aktarma sırasında", "Rötarlı", "Gönderildi", "Teslim edildi", "Stokta yok", "Sipariş hazır" |
Serbest metin Önerilen metin boyutu: 25 karakter (Çok uzun metin üç nokta şekli göster) 'nı inceleyin. |
Sipariş Zamanı | Zorunlu |
Siparişin verildiği milisaniye cinsinden sıfır zaman damgası. Beklenen teslimat süresi aralığı varsa sipariş saati gösterilecektir mevcut değil |
Milisaniye cinsinden Epoch zaman damgası |
İşlem URI'sı | Zorunlu |
İş ortağının uygulamasındaki sipariş takibi için derin bağlantı. |
URI |
OrderDeliveryTimeWindow (İsteğe bağlı) - Bir saat belirleyin sipariş tarihinden itibaren takip edilen sipariş penceresi beklenen/gerçek teslimat zamanına yer verilir. | |||
OrderDeliveryTimeWindow - Başlangıç Zamanı | İsteğe bağlı |
Siparişin düzenleneceği/sonrasında milisaniye cinsinden sıfır zaman damgası teslim edilir veya teslim alınmaya hazır olur. |
Milisaniye cinsinden Epoch zaman damgası |
OrderDeliveryTimeWindow - Bitiş Zamanı | İsteğe bağlı |
Siparişin gerçekleşeceği tarihte/öncesinde milisaniye cinsinden sıfır zaman damgası teslim edilir veya teslim alınmaya hazır olur. |
Milisaniye cinsinden Epoch zaman damgası |
Poster resimleri | İsteğe bağlı | Siparişin parçası olan bir öğenin/ürünün resmi. Önerilen en boy oranı 1:1'dir |
Yardım için Resim Özellikleri'ne bakın. |
Ürün sayısı | İsteğe bağlı | Siparişteki öğe sayısı. | Tam sayı >= 1 |
Açıklama | İsteğe bağlı | Sıralamadaki öğeleri açıklayan tek bir metin paragrafı. Not: Açıklama veya altyazı listesi kullanıcıya gösterilir. |
Serbest metin Önerilen metin boyutu: 180 karakter |
Altyazı listesi | İsteğe bağlı | En fazla 3 altyazı ve her altyazıda tek satırlık metin. Not: Açıklama veya altyazı listesi kullanıcıya gösterilir. |
Serbest metin Her altyazı için önerilen metin boyutu: maks. 50 karakter |
Sipariş Değeri - CurrentPrice | İsteğe bağlı | Siparişin mevcut değeri. | Serbest metin |
Sipariş numarası | İsteğe bağlı | Siparişi benzersiz şekilde tanımlamak için kullanılabilecek sipariş numarası/kimliği. |
Serbest metin Önerilen metin boyutu: maksimum 25 karakter |
Takip numarası | İsteğe bağlı | Siparişin verilmesi durumunda siparişin/paket teslimatının takip numarası teslimat gerektirir. |
Serbest metin Önerilen metin boyutu: maksimum 25 karakter |
Resim özellikleri
Resim öğeleri için gerekli özellikler aşağıda listelenmiştir:
En boy oranı | Minimum piksel sayısı | Önerilen piksel sayısı |
---|---|---|
Kare (1x1) Öne çıkan olmayan kümeler için tercih edilir |
300x300 | 1.200x1.200 |
Yatay (1,91x1) Öne çıkan kümeler için tercih ediliyor |
600x314 | 1.200x628 |
Dikey (4x5) | 480x600 | 960 x 1.200 |
Dosya biçimleri
PNG, JPG, statik GIF, WebP
Maksimum dosya boyutu
5.120 KB
Ek öneriler
- Resim güvenli alanı: Önemli içeriğinizi yatay ve dikey yönde ortalanmış olarak görüntüsüdür.
- Resmin ekranda düzgün gösterilebilmesi için şeffaf bir arka plan kullanın. Koyu ve Açık tema ayarları.
2. Adım: Küme verilerini sağlayın
İçerik yayınlama işinin arka planda yürütülmesi önerilir (örneğin, WorkManager kullanarak) düzenlenecek ve düzenli olarak veya etkinlik temelli olarak (örneğin, Kullanıcı uygulamayı açtığında veya kullanıcı sepetine yeni bir ürün eklediğinde).
AppEngageShoppingClient
, alışveriş kümelerini yayınlamaktan sorumludur.
İstemcide küme yayınlama kümeleri için aşağıdaki API'ler kullanılabilir:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishShoppingCart
publishShoppingList
publishShoppingReorderCluster
publishShoppingOrderTrackingCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteShoppingCartCluster
deleteShoppingListCluster
deleteShoppingReorderCluster
deleteShoppingOrderTrackingCluster
deleteUserManagementCluster
deleteClusters
isServiceAvailable
Bu API, hizmetin entegrasyon için uygun olup olmadığını kontrol etmek ve içeriğin cihazda sunulup sunulamayacağını belirler.
Kotlin
client.isServiceAvailable.addOnCompleteListener { task -> if (task.isSuccessful) { // Handle IPC call success if(task.result) { // Service is available on the device, proceed with content publish // calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } }
Java
client.isServiceAvailable().addOnCompleteListener(task - > { if (task.isSuccessful()) { // Handle success if(task.getResult()) { // Service is available on the device, proceed with content // publish calls. } else { // Service is not available, no further action is needed. } } else { // The IPC call itself fails, proceed with error handling logic here, // such as retry. } });
publishRecommendationClusters
Bu API, RecommendationCluster
nesnelerin listesini yayınlamak için kullanılır.
RecommendationCluster
nesnesi aşağıdaki özelliklere sahip olabilir:
Özellik | Şartlar | Açıklama |
---|---|---|
ShoppingEntity listesi | Zorunlu | Aşağıdakiler için önerileri oluşturan ShoppingEntity nesnelerinin bir listesi: yardımcı olabilir. |
Başlık | Zorunlu | Öneri kümesinin başlığı. Önerilen metin boyutu: 25 karakterden kısa ( çok uzunsa üç nokta görüntülenebilir) |
Alt başlık | İsteğe bağlı | Öneri Kümesi alt başlığı. |
İşlem URI'sı | İsteğe bağlı |
İş ortağı uygulamasında kullanıcıların tam listesidir. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .build()) .build())
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Black Friday Deals") .build()) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Mevcut tüm Öneri Kümesi verileri kaldırılır.
- İstekten elde edilen veriler ayrıştırılır ve yeni Öneri Kümelerinde depolanır.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishFeaturedCluster
Bu API, FeaturedCluster
nesnesi yayınlamak için kullanılır.
Kotlin
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() ... .build()) .build())
Java
client.publishFeaturedCluster( new PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( new FeaturedCluster.Builder() ... .build()) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
FeaturedCluster
verileri kaldırılır. - İstekteki veriler ayrıştırılır ve güncellenmiş Öne Çıkan Kümede depolanır.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishShoppingCart
Bu API, ShoppingCartCluster
nesnesi yayınlamak için kullanılır.
Kotlin
client.publishShoppingCart( PublishShoppingCartRequest.Builder() .setShoppingCart( ShoppingCart.Builder() ... .build()) .build())
Java
client.publishShoppingCart( new PublishShoppingCartRequest.Builder() .setShoppingCart( new ShoppingCart.Builder() ... .build()) .build())
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
ShoppingCart
verileri kaldırılır. - İstekten elde edilen veriler ayrıştırılır ve güncellenen Alışveriş Sepeti'nde depolanır Küme.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishShoppingList
Bu API, FoodShoppingList
nesnesi yayınlamak için kullanılır.
Kotlin
client.publishFoodShoppingList( PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( FoodShoppingListEntity.Builder() ... .build()) .build())
Java
client.publishFoodShoppingList( new PublishFoodShoppingListRequest.Builder() .setFoodShoppingList( new FoodShoppingListEntity.Builder() ... .build()) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
FoodShoppingList
verileri kaldırılır. - İstekten elde edilen veriler ayrıştırılır ve güncellenen Alışveriş Listesi'nde depolanır Küme.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishShoppingReorderCluster
Bu API, ShoppingReorderCluster
nesnesi yayınlamak için kullanılır.
Kotlin
client.publishShoppingReorderCluster( PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( ShoppingReorderCluster.Builder() ... .build()) .build())
Java
client.publishShoppingReorderCluster( new PublishShoppingReorderClusterRequest.Builder() .setReorderCluster( new ShoppingReorderCluster.Builder() ... .build()) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
ShoppingReorderCluster
verileri kaldırılır. - İstekten elde edilen veriler ayrıştırılır ve güncellenen Yeniden Sıralama Kümesinde depolanır.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishShoppingOrderTrackingCluster
Bu API, ShoppingOrderTrackingCluster
nesnesi yayınlamak için kullanılır.
Kotlin
client.publishShoppingOrderTrackingCluster( PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( ShoppingOrderTrackingCluster.Builder() ... .build()) .build())
Java
client.publishShoppingOrderTrackingCluster( new PublishShoppingOrderTrackingClusterRequest.Builder() .setShoppingOrderTrackingCluster( new ShoppingOrderTrackingCluster.Builder() ... .build()) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
ShoppingOrderTrackingCluster
verileri: emin olun. - İstekten elde edilen veriler ayrıştırılır ve güncellenen Alışveriş Siparişi'nde depolanır İzleme Kümesi.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
publishUserAccountManagementRequest
Bu API, bir Oturum Açma kartı yayınlamak için kullanılır . Oturum açma işlemi, kullanıcıları şuraya yönlendirir: uygulamanın içerik yayınlayabilmesi (veya daha fazla bilgi sağlayabilmesi için) kişiselleştirilmiş içerik)
Aşağıdaki meta veriler, Oturum Açma Kartının bir parçasıdır:
Özellik | Şartlar | Açıklama |
---|---|---|
İşlem URI'sı | Zorunlu | İşlem için derin bağlantı (ör. uygulamada oturum açma sayfasına gider) |
Resim | İsteğe bağlı: Sağlanmamışsa başlık belirtilmelidir |
Kartta Gösterilen Resim 1264x712 çözünürlüklü, 16x9 en boy oranında resimler |
Başlık | İsteğe bağlı: Sağlanmamışsa resim sağlanmalıdır | Karttaki Başlık |
İşlem Metni | İsteğe bağlı | CTA'da (ör. Oturum Aç) gösterilen metin |
Alt başlık | İsteğe bağlı | Kartta İsteğe Bağlı Alt Başlık |
Kotlin
var SIGN_IN_CARD_ENTITY = SignInCardEntity.Builder() .addPosterImage( Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build() client.publishUserAccountManagementRequest( PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Java
SignInCardEntity SIGN_IN_CARD_ENTITY = new SignInCardEntity.Builder() .addPosterImage( new Image.Builder() .setImageUri(Uri.parse("http://www.x.com/image.png")) .setImageHeightInPixel(500) .setImageWidthInPixel(500) .build()) .setActionText("Sign In") .setActionUri(Uri.parse("http://xx.com/signin")) .build(); client.publishUserAccountManagementRequest( new PublishUserAccountManagementRequest.Builder() .setSignInCardEntity(SIGN_IN_CARD_ENTITY) .build());
Hizmet isteği aldıktan sonra, bir işlem:
- Geliştirici iş ortağındaki mevcut
UserAccountManagementCluster
verileri: emin olun. - İstekten elde edilen veriler ayrıştırılır ve güncellenen UserAccountManagementCluster Kümesi.
Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum elde edilir.
updatePublishStatus
Şirket içi işle ilgili herhangi bir nedenle kümelerden hiçbiri yayınlanmazsa yayınlama durumunu, updatePublishStatus API'si. Bu önemlidir, çünkü :
- İçerik yayınlandığında bile tüm senaryolarda durumu bildirmek (STATUS == YAYINLANDI), bunu kullanan gösterge tablolarının doldurulması için açık durumunu kullanarak entegrasyonunuzun durumunu ve diğer metriklerini aktarın.
- İçerik yayınlanmadıysa ancak entegrasyon durumu bozuk değilse (STATUS == NOT_PUBLISHED) kullanıyorsanız Google, uygulamada uyarıları tetiklemekten kaçınabilir. sağlık kontrol panelleridir. İçeriğin şu nedenden dolayı yayınlanmadığını onaylar: beklenen durumu ifade eder.
- Geliştiricilerin verilerin ne zaman yayınlandığı ve ne zaman yayınlandığı değil.
- Google, kullanıcıları belirli işlemleri yapmaya teşvik etmek için uygulama içeriğini görmelerine veya içeriğin üstesinden gelmelerine yardımcı olur.
Uygun yayınlama durum kodlarının listesi şunlardır :
// Content is published
AppEngagePublishStatusCode.PUBLISHED,
// Content is not published as user is not signed in
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN,
// Content is not published as user is not subscribed
AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SUBSCRIPTION,
// Content is not published as user location is ineligible
AppEngagePublishStatusCode.NOT_PUBLISHED_INELIGIBLE_LOCATION,
// Content is not published as there is no eligible content
AppEngagePublishStatusCode.NOT_PUBLISHED_NO_ELIGIBLE_CONTENT,
// Content is not published as the feature is disabled by the client
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_FEATURE_DISABLED_BY_CLIENT,
// Content is not published as the feature due to a client error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_CLIENT_ERROR,
// Content is not published as the feature due to a service error
// Available in v1.3.1
AppEngagePublishStatusCode.NOT_PUBLISHED_SERVICE_ERROR,
// Content is not published due to some other reason
// Reach out to engage-developers@ before using this enum.
AppEngagePublishStatusCode.NOT_PUBLISHED_OTHER
İçerik, bir kullanıcının giriş yapmaması nedeniyle yayınlanmazsa Google, Oturum Açma kartını yayınlamanızı önerir. Sağlayıcılar herhangi bir nedenle Oturum Açma kartını yayınlayamazsa updatePublishStatus API'sini çağırmanızı öneririz. NOT_PUBLISHED_REQUIRES_SIGN_IN durum koduyla
Kotlin
client.updatePublishStatus( PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build())
Java
client.updatePublishStatus( new PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build());
deleteRecommendationClusters
Bu API, Öneri Kümelerinin içeriğini silmek için kullanılır.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
Hizmet isteği aldığında, mevcut verileri Öneri Kümeleri. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteFeaturedCluster
Bu API, Öne Çıkan Küme'nin içeriğini silmek için kullanılır.
Kotlin
client.deleteFeaturedCluster()
Java
client.deleteFeaturedCluster();
Hizmet isteği aldığında, mevcut verileri Öne Çıkan Küme. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteShoppingCartCluster
Bu API, Alışveriş Sepeti Kümesinin içeriğini silmek için kullanılır.
Kotlin
client.deleteShoppingCartCluster()
Java
client.deleteShoppingCartCluster();
Hizmet isteği aldığında, mevcut verileri Alışveriş Sepeti Kümesi. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteShoppingListCluster
Bu API, Alışveriş Listesi Kümesinin içeriğini silmek için kullanılır.
Kotlin
client.deleteShoppingListCluster()
Java
client.deleteShoppingListCluster();
Hizmet isteği aldığında, mevcut verileri Alışveriş Listesi Kümesi. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteShoppingReorderCluster
Bu API, Alışveriş Yeniden Sıralama Kümesinin içeriğini silmek için kullanılır.
Kotlin
client.deleteShoppingReorderCluster()
Java
client.deleteShoppingReorderCluster();
Hizmet isteği aldığında, mevcut verileri Alışveriş Yeniden Sıralama Kümesi. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteShoppingOrderTrackingCluster
Bu API, Alışveriş Sipariş İzleme Kümesi içeriğini silmek için kullanılır.
Kotlin
client.deleteShoppingOrderTrackingCluster()
Java
client.deleteShoppingOrderTrackingCluster();
Hizmet isteği aldığında, mevcut verileri Shopping Sipariş İzleme Kümesi. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteUserManagementCluster
Bu API, UserAccountManagement Kümesinin içeriğini silmek için kullanılır.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
Hizmet isteği aldığında, mevcut verileri UserAccountManagement Kümesi. Bir hata olması durumunda isteğin tamamı reddedilir ve mevcut durum korunur.
deleteClusters
Bu API, belirli bir küme türünün içeriğini silmek için kullanılır.
Kotlin
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build())
Java
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) ... .build());
Hizmet isteği aldıktan sonra, tüm hizmetlerden mevcut verileri belirtilen küme türleriyle eşleşen kümeler. Müşteriler, tek bir veya daha fazla bulunur. Bir hata olması durumunda, isteğin tamamı reddedilir ve mevcut durumun sürdürülmesini sağlar.
Hata işleme
Örneğin, yayınlanan API'lerin görev sonucunu dinlemeniz önerilir. bir takip eylemi uygulanarak başarılı bir görevi kurtarıp yeniden gönderin.
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster(..) .build()) .addOnCompleteListener { task -> if (task.isSuccessful) { // do something } else { val exception = task.exception if (exception is AppEngageException) { @AppEngageErrorCode val errorCode = exception.errorCode if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) { // do something } } } }
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster(...) .build()) .addOnCompleteListener( task -> { if (task.isSuccessful()) { // do something } else { Exception exception = task.getException(); if (exception instanceof AppEngageException) { @AppEngageErrorCode int errorCode = ((AppEngageException) exception).getErrorCode(); if (errorCode == AppEngageErrorCode.SERVICE_NOT_FOUND) { // do something } } } });
Hata, nedeni bir AppEngageException
olarak döndürülür.
hata kodu.
Hata kodu | Not |
---|---|
SERVICE_NOT_FOUND |
Hizmet, belirtilen cihazda kullanılamıyor. |
SERVICE_NOT_AVAILABLE |
Hizmet belirtilen cihazda kullanılabilir ancak kullanılamıyor (örneğin, açıkça devre dışı bırakılmışsa). |
SERVICE_CALL_EXECUTION_FAILURE |
Görev yürütülemedi, ileti dizisi sorunları nedeniyle başarısız oldu. Bu durumda, tekrar deneyin. |
SERVICE_CALL_PERMISSION_DENIED |
Arayanın hizmet çağrısı yapmasına izin verilmiyor. |
SERVICE_CALL_INVALID_ARGUMENT |
İstek, geçersiz veri içeriyor (örneğin, izin verilenden daha fazla) küme sayısı) ekleyebilirsiniz. |
SERVICE_CALL_INTERNAL |
Hizmet tarafında bir hata oluştu. |
SERVICE_CALL_RESOURCE_EXHAUSTED |
Hizmet çağrısı çok sık yapılıyor. |
3. Adım: Yayın amaçlarını ele alın
Bir iş üzerinden publish Content API çağrıları yapmanın yanı sıra
ayarlamak için gereken
Almak için BroadcastReceiver
içerik yayınlama isteği.
Amaca dayalı yayınların amacı, temel olarak uygulamanın yeniden etkinleştirilmesi ve verilerin zorunlu kılınmasıdır. senkronize edin. Yayın amaçları çok sık gönderilecek şekilde tasarlanmamıştır. Yalnızca Etkileşim Hizmeti içeriğin eski olabileceğini belirlediğinde ( örneğin bir hafta önce oluşturulmuş olmalıdır). Bu şekilde kullanıcının uygulama yalnızca bir kez çalıştırılmamış olsa bile, uzun süre korunuyor.
BroadcastReceiver
aşağıdaki iki şekilde ayarlanmalıdır:
BroadcastReceiver
sınıfının bir örneğiniContext.registerReceiver()
. Bu, uygulamalardan iletişim kurulmasını hale getirebilirsiniz.
Kotlin
class AppEngageBroadcastReceiver : BroadcastReceiver(){ // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION // broadcast is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is // received // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast // is received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast // is received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger shopping order tracking cluster publish when // PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER broadcast is received } fun registerBroadcastReceivers(context: Context){ var context = context context = context.applicationContext // Register Recommendation Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_RECOMMENDATION)) // Register Featured Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_FEATURED)) // Register Shopping Cart Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_CART)) // Register Shopping List Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_LIST)) // Register Reorder Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_REORDER_CLUSTER)) // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER)) }
Java
class AppEngageBroadcastReceiver extends BroadcastReceiver { // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast // is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received // Trigger shopping cart cluster publish when PUBLISH_SHOPPING_CART broadcast is // received // Trigger shopping list cluster publish when PUBLISH_SHOPPING_LIST broadcast is // received // Trigger reorder cluster publish when PUBLISH_REORDER_CLUSTER broadcast is // received // Trigger reorder cluster publish when PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER // broadcast is received } public static void registerBroadcastReceivers(Context context) { context = context.getApplicationContext(); // Register Recommendation Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_RECOMMENDATION)); // Register Featured Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_FEATURED)); // Register Shopping Cart Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_CART)); // Register Shopping List Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_LIST)); // Register Reorder Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_REORDER_CLUSTER)); // Register Shopping Order Tracking Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.shopping.service.Intents.ACTION_PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER)); }
<receiver>
AndroidManifest.xml
dosya Bu, uygulamanın yayın almasına izin verir amaçlarına ulaşmasını sağlar ve ayrıca uygulamanın, uygulama daha iyi olur.
<application>
<receiver
android:name=".AppEngageBroadcastReceiver"
android:exported="true"
android:enabled="true">
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_RECOMMENDATION" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.PUBLISH_FEATURED" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER" />
</intent-filter>
</receiver>
</application>
Aşağıdaki intentler, hizmet:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
. Bu durumdapublishRecommendationClusters
araması başlatmanız önerilir netleştirmeye yardımcı olur.com.google.android.engage.action.PUBLISH_FEATURED
. Bu niyet şu olduğundapublishFeaturedCluster
araması başlatmanız önerilir: alındı.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_CART
. Bu niyet şu olduğundapublishShoppingCart
araması başlatmanız önerilir: alındı.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_LIST
. Bu niyet şu olduğundapublishShoppingList
araması başlatmanız önerilir: alındı.com.google.android.engage.action.shopping.PUBLISH_REORDER_CLUSTER
. Bu niyet şu olduğundapublishReorderCluster
araması başlatmanız önerilir: alındı.com.google.android.engage.action.shopping.PUBLISH_SHOPPING_ORDER_TRACKING_CLUSTER
. Aşağıdaki durumlardapublishShoppingOrderTrackingCluster
araması başlatmanız önerilir: bu niyetin başarılı olduğunu gösterir.
Entegrasyon iş akışı
İşlem tamamlandıktan sonra entegrasyonunuzu doğrulamayla ilgili adım adım açıklamalı kılavuz için Etkileşim kurma geliştirici entegrasyonu iş akışı
SSS
Etkileşim SDK'sıyla İlgili Sık Sorulan Sorular bölümüne bakın. SSS
İletişim
İletişim varsa engagement-developers@google.com entegrasyon sürecinde herhangi bir sorunuz olursa Ekibimiz en kısa sürede yanıt verir yapmasını sağlar.
Sonraki adımlar
Bu entegrasyonu tamamladıktan sonra şu adımları uygulayabilirsiniz:
- Şu adrese e-posta gönder: Engage-developers@google.com adresini ziyaret edin ve Google tarafından test edilmeye hazır entegre APK'nızdır.
- Google, web sitenizin entegrasyonun beklendiği gibi çalıştığından emin olun. Değişiklik gerekirse Google sizinle e-posta gönderin.
- Test tamamlandığında ve değişiklik gerekmiyorsa Google, Güncellenmiş ve entegre APK'yı şurada yayınlamaya başlayabileceğinizi bildirir: Play Store'a gidin.
- Google, güncellenen APK'nızın Play Store, Öneriniz, Öne Çıkan, Alışveriş Sepeti, Alışveriş Listesi, Kümeyi Yeniden Sıralama ve Alışveriş Sipariş İzleme Kümesi kümeler yayınlanabilir ve kullanıcılar tarafından görülebilir.