SDK Kümesi yayınlama yönergeleri

Bu kılavuz, küme yayınlamayla ilgili olarak geliştiricilerin kullanabilirsiniz.

Öneri kümeleri

Küme Başlığı

Kullanıcılara tam olarak aynı hedefe sahip olmaları için benzersiz ve alakalı daha iyi fikir edinebilirsiniz.

İçeriğe göre iyi küme başlıklarına bazı örnekler:

  • Alışverişle ilgili kümeler
    • Yıldırım Fırsatları
    • Haftalık olarak satın alınması gereken ürünler
    • Pixel Buds satın almanızla ilgili
    • Kadın yağmur çizmeleri
  • Sağlık konulu bir dizi kitap
    • Sağlık, Zihin ve gövde
    • Sağlık bölümünde sizin için önerilenler
    • Fitness alanında en çok satanlar

Küme İçeriği

Geliştiricilerin, öneri kümelerini yayınlarken Kullanıcı, geliştiricinin uygulamasında oturum açmıştır.

Kullanıcı oturum açtığında

Kullanıcı, geliştirici uygulamasında oturum açmışsa uygulama veya içerik kümelerinden çıkarılabilir. Çünkü kişiselleştirilmiş ve kullanıcı tarafından oluşturulan içerikler kullanıcıyla daha alakalıysa ve Google yüzeyinden geliştirici uygulamasını ziyaret edin.

  • Kişiselleştirilmiş öneriler yayınlanabilir.
    • Aşağıda, bazı kişiselleştirilmiş öneri örnekleri verilmiştir:
      • Kullanıcının izleme geçmişine göre sizin için seçilenler.
      • Kullanıcının okuma geçmişindeki kitaplara benzer kitaplar.
      • Kullanıcının en sevdiği sanatçıların şarkıları.
  • Kullanıcı tarafından oluşturulan içerik kitaplıkları yayınlanabilir.
    • Kullanıcı tarafından oluşturulan içerik kitaplığına dair bazı örnekleri aşağıda bulabilirsiniz:
      • Kullanıcının geliştirici uygulamasındaki izleme listesi.
      • Kullanıcının geliştiriciden en sevdiği sanatçıların yer aldığı bir liste uygulamasını indirin.
Öneri türü İçerik güncelliği stratejisi İçerik güncelliği kuralı
Kişiselleştirilmiş öneriler

Esnek

Önerileri günde bir kez güncellemenizi öneririz. Kullanıcılar her gün yeni öneriler görebilir.

Çünkü kullanıcılar, sitenizin nasıl bir hizmet veya içerik güncelliği nasıl sağlanacağına, yumuşak.
Kullanıcı tarafından oluşturulan içerik kitaplıkları

Yüksek düzey

Kullanıcılar sayfadan çıktıkça içerik kitaplığını güncellemenizi öneririz. geliştirici uygulaması.

Bu içeriğin, Google Görüntülü Reklam Ağı'nda görüntülenen verilerle Google yüzeyleri. Bunun nedeni, kişiselleştirilmiş önerilerin aksine Kullanıcı da aynı içerikten ibarettir. Proje süresinde yayınlamak kullanıcıların kafasını karıştırır. Bu nedenle, içerik güncelliği stratejisi, katı olmalıdır.

Kullanıcı oturum açmadığında

Kullanıcı geliştirici uygulamasında oturum açmamışsa yine de yayınlamanızı öneririz Chrome Web Mağazası'ndaki geliştirici uygulamasını teşekkür ederiz.

  • Kişiselleştirilmemiş öneri kümeleri yayınlanmalıdır.
    • Aşağıda, kişiselleştirilmemiş önerilerle ilgili bazı örnekler verilmiştir:
      • Bu yıl okunan en popüler 10 kitap.
      • Yeni çıkan filmler.
      • Trend olan podcast'ler.
  • Bir oturum açma kartı yayınlayın.
    • Geliştiriciler, kullanıcıları geliştirici uygulamasında oturum açmaya teşvik etmek için bir oturum açma kartı yayınlamayı seçebilir. Bununla birlikte, öneri kümesi olabilir. Daha fazla bilgi için aşağıdaki bölüme göz atın Oturum açma kartı yayınlama.
Öneri türü İçerik güncelliği stratejisi İçerik güncelliği kuralı
Kişiselleştirilmemiş öneriler

Esnek

Önerileri her ay bir kez güncellemenizi öneririz. değer.

Çünkü kullanıcılar, sitenizin nasıl bir hizmet veya içerik güncelliği nasıl sağlanacağına, yumuşak.
Oturum açma kartı önerileri

Yüksek düzey

Kullanıcılar çıkış yaptıkça oturum açma kartı durumunu güncellemenizi öneririz. emin olun.

Kullanıcılar oturum açtıktan sonra, geliştiricilerin deleteUserManagementCluster() API.

Oturum açma durumunun Google teşekkür ederiz. Kullanıcının Google'ın kendi sayfasında oturum açma kartını görmesi kafa karıştırıcıdır. oturum açtıklarında gösterilir. Bu nedenle, içerik güncelliği, katı olmalıdır.

Devam kümeleri

Geliştiriciler, devamlılık kümelerini yayınlarken Kullanıcı, geliştiricinin uygulamasında oturum açmıştır.

Kullanıcı oturum açtığında

  • Kullanıcı tarafından oluşturulan devam kümeleri yayınlanmalıdır.
    • Kullanıcılar tarafından oluşturulan devamlılık kümelerine dair bazı örnekleri aşağıda bulabilirsiniz:
      • Kullanıcının kaldığı yerden izlemeye devam edin.
      • Kullanıcının kaldığı yerden okumaya devam edin.
Devam türü İçerik güncelliği stratejisi İçerik güncelliği kuralı
Kullanıcı tarafından oluşturulan devam kümeleri

Yüksek düzey

Kullanıcılar sayfadan çıktıkça içerik kitaplığını güncellemenizi öneririz. geliştirici uygulaması.

Bu içeriğin, Google Görüntülü Reklam Ağı'nda görüntülenen verilerle Google platformlarından. Bunun nedeni, kişiselleştirilmiş önerilerin aksine Kullanıcı da aynı içerikten ibarettir. Proje süresinde yayınlamak kullanıcıların kafasını karıştırır. Bu nedenle, içerik güncelliği stratejisi, katı olmalıdır.

Kullanıcı oturum açmadığında

Devam yolculukları, temel olarak oturum açmış kullanıcılara yöneliktir. ancak, oturumu kapalı kullanıcılar için devam kümeleri de yayınlayabilirsiniz. Uygulamanız misafir oturumlarını destekliyorsa.

Kullanıcı Yönetimi Kümesi

Kullanıcı Yönetimi Kümesinin temel amacı, kullanıcıları belirli işlemleri ekleyebilirsiniz. Oturum açma işlemi, kullanıcıları uygulama tabelasına yönlendirir Uygulamanın içerik yayınlayabilmesi (veya daha kişiselleştirilmiş bilgiler sunabilmesi) için sayfada içerik)

Oturum Açma Kartı

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

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

appEngagePublishClient.publishUserAccountManagementRequest(
            new PublishUserAccountManagementRequest.Builder()
                .setSignInCardEntity(SIGN_IN_CARD_ENTITY)
                .build());

Kullanıcılar oturum açtıktan sonra, geliştiricilerin deleteUserManagementCluster() API.

Yayınlama Durumunu Güncelle

Ş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ınlanmadığıyla ilgili bilgi edinmesine yardımcı olur.
  • 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 Oturum Açma kartını yayınlamanızı öneririz. 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());

Küme yayınlama için WorkManager

Şu işlemler için WorkManager'ı kullanmanızı öneririz: çünkü arka plan çalışması için önerilen çözümdür Bu yaklaşımda uygulama hem fırsata dayalı hem de garantili olmalıdır.

  • WorkManager, en kısa sürede arka plan çalışmanızı gerçekleştirir.
  • WorkManager, çalışmanızı çeşitli farklı alanlarla birlikte başlatmanıza (kullanıcı uygulamanızdan ayrılsa bile)

Kullanıcı uygulamadan ayrıldığında bir arka plan başlatmanızı öneririz. öneri kümeleriyle birlikte devam kümeleri yayınlayan bir iş ilanıdır. CEVAP bu mantığı yönetmenin en iyi yolu Activity.onStop() Kullanıcı uygulamadan ayrıldığında.

Önerilerimiz PeriodicWorkRequest kullanarak 24 saatte bir küme yayınlayan yinelenen bir iş planlayabilirsiniz. Bir CANCEL_AND_REENQUEUE politikası uyguluyorsanız geliştiriciler, WorkManager'ın kullanıcı uygulamadan her ayrıldığında güncel veriler sunar. Bu sayede karşılaşılabilecek kullanıcıların eski verileri görmesini engelleyebilir.

Aşağıdaki örnekte bu durum gösterilmektedir:

// Define the PublishClusters Worker requiring input
public class PublishClusters extends Worker {

   public PublishClusters(Context appContext, WorkerParameters workerParams) {
       super(appContext, workerParams);
   }

   @NonNull
   @Override
   public Result doWork() {
       // publish clusters
   }
   ...
}

public static void schedulePublishClusters(Context appContext) {
// Create a PeriodicWorkRequest to schedule a recurring job to update
// clusters at a regular interval
PeriodicWorkRequest publishClustersEntertainmentSpace =
// Define the time for the periodic job
       new PeriodicWorkRequest.Builder(PublishClusters.class, 24, TimeUnit.HOURS)
// Set up a tag for the worker.
// Tags are Unique identifier, which can be used to identify that work
// later in order to cancel the work or observe its progress.
          .addTag("Publish Clusters to Entertainment Space")
          .build();

// Trigger Periodic Job, this will ensure that the periodic job is triggered
// only once since we have defined a uniqueWorkName
WorkManager.getInstance(appContext).enqueueUniquePeriodicWork(
// uniqueWorkName
     "publishClustersEntertainmentSpace",
// If a work with the uniqueWorkName is already running, it will cancel the
// existing running jobs and replace it with the new instance.
// ExistingPeriodicWorkPolicy#CANCEL_AND_REENQUEUE
     ExistingPeriodicWorkPolicy.CANCEL_AND_REENQUEUE,
// Recurring Work Request
publishClustersEntertainmentSpace);

}

Yayın amaçlarını işleme

Bir iş üzerinden publish Content API çağrıları yapmanın yanı sıra ayarlamak için gereken Almak için BroadcastReceiver bir içerik yayınlama isteğidir.

Bununla birlikte, geliştiriciler yalnızca yayınlara bağlı kalmamaya dikkat etmelidir, çünkü yalnızca belirli senaryolarda (çoğunlukla uygulama için ve veri senkronizasyonunu zorunlu kılmayı öğreteceğim. Bu reklamlar yalnızca Etkileşim Hizmet, içeriğin eski olabileceğini belirler. Bu şekilde daha fazla kullanıcının yeni bir içerik deneyimi yaşayacağına dair güven uygulaması uzun süredir açılmamış.

BroadcastReceiver aşağıdaki iki şekilde ayarlanmalıdır:

  • BroadcastReceiver sınıfının bir örneğini Context.registerReceiver(). Bu, uygulamalardan iletişim kurulmasını hale getirebilirsiniz.
  • <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.