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 deneyim, geliştirici iş ortaklarının En iyi zengin içeriklerini YouTube dışındaki özel bir kanalda sergileme fırsatı en iyi yoludur.
Bu belge, geliştirici iş ortaklarının Engage SDK'sını kullanarak sosyal medya içeriğini kullanarak yeni bir alan oluşturun.
Entegrasyon ayrıntıları
Aşağıdaki bölümde entegrasyon ayrıntıları açıklanmaktadır.
Terminoloji
Öneri kümeleri, bir kullanıcıdan gelen kişiselleştirilmiş önerileri gösterir. geliştirici iş ortağınız.
Önerileriniz aşağıdaki yapıya göre yapılır:
Öneri Kümesi: Bir öneri grubu içeren kullanıcı arayüzü görünümü aynı geliştirici iş ortağından gelir.
Her Öneri Kümesi, aşağıdaki iki öneri kümesinden varlıklar :
- DikeyMedyaVarlıkı
- SosyalYayınÖğesi
PortraitMediaEntity, yayın için 1 dikey resim içermelidir. Profil ve Etkileşimle ilgili meta veriler isteğe bağlıdır.
Gönderi
- Resim dikey modda ve Zaman Damgası'nda veya
- Dikey modda resim + metin içeriği ve Zaman Damgası
Profil
- Avatar, ad veya herkese açık kullanıcı adı, ek resim
Etkileşim
- Yalnızca sayı ve etiket ya da
- Sayı ve görsel (simge)
SocialPostEntity; profil, yayın ve etkileşimle ilgili meta verileri içerir.
Profil
- Avatar, ad veya herkese açık kullanıcı adı, ek metin, ek resim
Gönderi
- Metin ve Zaman Damgası veya
- Rich media (resim veya zengin URL) ve Timestamp veya
- Metin ve rich media (resim veya zengin URL) ve Zaman Damgası veya
- Video önizlemesi (küçük resim ve süre) ve Zaman Damgası
Etkileşimler
- Sayı ve etiket veya
- Sayı ve görsel (simge)
Ö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'
}
Ö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 minimum varlık sınırları | Bir kümedeki maksimum varlık sınırları |
---|---|---|---|
Öneri Kümeleri | En çok 5 | En az 5 (PortraitMediaEntity veya
SocialPostEntity ) |
En fazla 25 (PortraitMediaEntity veya
SocialPostEntity ) |
1. adım: Öğe verilerini sağlayın
SDK'da her öğe türünü temsil eden farklı varlıklar tanımlanmıştır. SDK Sosyal kategorisi için aşağıdaki varlıkları destekler:
PortraitMediaEntity
SocialPostEntity
Aşağıdaki grafiklerde, her tür için kullanılabilir özellikler ve gereksinimler özetlenmektedir.
PortraitMediaEntity
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
İşlem URI'si | Zorunlu |
Sağlayıcı uygulamasındaki varlığa derin bağlantı. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
İlgili meta verileri yayınlayın (zorunlu) | |||
Resimler | Zorunlu |
Resimler dikey en boy oranında olmalıdır. Birden fazla resim sağlandığında kullanıcı arayüzünde yalnızca 1 resim gösterilebilir. Ancak, kullanıcı arayüzü, doğru olan sayfada daha fazla görüntü olduğuna dair uygulamasını indirin. Yayın bir videoysa sağlayıcı, yayının video resim olarak gösterilir. |
Yardım için Resim Özellikleri'ne bakın. |
Metin içeriği | İsteğe bağlı | Bir yayının, güncellemenin vb. ana metni | Dize (en fazla 140 karakter önerilir) |
Zaman damgası | İsteğe bağlı | Yayının yayınlandığı zaman. | Milisaniye cinsinden Epoch zaman damgası |
Video içeriği | İsteğe bağlı | Yayın bir video mu? | Boole |
Video süresi | İsteğe bağlı | Videonun milisaniye cinsinden süresi. | Uzun |
Profille ilgili meta veriler (İsteğe bağlı) | |||
Ad | Zorunlu | Profil adı veya kimliği ya da herkese açık kullanıcı adı, ör. "Can Doğru", "@TeamPixel" | Dize(en fazla 25 karakter önerilir) |
Avatar | Zorunlu |
Kullanıcının profil resmi veya avatar resmi. Kare 1:1 resim |
Yardım için Resim Özellikleri'ne bakın. |
Ek Resim | İsteğe bağlı |
Profil rozeti. örneğin, doğrulama rozeti Kare 1:1 resim |
Yardım için Resim Özellikleri'ne bakın. |
Etkileşimlerle ilgili meta veriler (İsteğe bağlı) 'nı inceleyin. | |||
Sayı | İsteğe bağlı |
Etkileşimlerin sayısını belirtin (ör. "3, 7 M."). Not: Hem Sayı hem de Sayı Değeri sağlanırsa Adet kullanılacak |
Dize Önerilen metin boyutu: Sayı + etiket için maksimum 20 karakter birleşik |
Sayı Değeri | İsteğe bağlı | Değer olarak etkileşimlerin sayısı. Not: Sayı yerine Sayı Değerini sağlayın uygulamanız, büyük bir sayının ne kadar büyük bir sayı farklı ekran boyutları için optimize edilmelidir. İkisi de Sayıysa ve Sayı Değeri sağlanır, Sayı kullanılır. |
Uzun |
Etiket | İsteğe bağlı | Etkileşim etiketinin ne için olduğunu belirtin. Örneğin - "Beğenilenler". | Dize Önerilen metin boyutu: Sayı + etiket için maksimum 20 karakter birleşik |
Görsel | İsteğe bağlı |
Etkileşimin ne için olduğunu belirtin. Örneğin - Gösterilen resim Beğenme simgesi, emoji. 1'den fazla resim eklenebilir ancak bunların tümü, tüm resimlerde gösterilmeyebilir olabilir. Not: Kare 1:1 resim olmalıdır. |
Yardım için Resim Özellikleri'ne bakın. |
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ı |
SocialPostEntity
Özellik | Şartlar | Açıklama | Biçim |
---|---|---|---|
İşlem URI'si | Zorunlu |
Sağlayıcı uygulamasındaki varlığa derin bağlantı. Not: İlişkilendirme için derin bağlantılar kullanabilirsiniz. Bu SSS'ye bakın 'nı inceleyin. |
URI |
İlgili meta verileri yayınlayın (zorunlu) TextContent, Image veya WebContent özelliklerinden en az biri gereklidir |
|||
Resimler | İsteğe bağlı |
Resimler dikey en boy oranında olmalıdır. Birden fazla resim sağlandığında kullanıcı arayüzünde yalnızca 1 resim gösterilebilir. Ancak, kullanıcı arayüzü, doğru olan sayfada daha fazla görüntü olduğuna dair uygulamasını indirin. Yayın bir videoysa sağlayıcı, yayının video resim olarak gösterilir. |
Yardım için Resim Özellikleri'ne bakın. |
Metin içeriği | İsteğe bağlı | Bir yayının, güncellemenin vb. ana metni | Dize (en fazla 140 karakter önerilir) |
Video İçeriği (İsteğe bağlı) | |||
Süre | Zorunlu | Videonun milisaniye cinsinden süresi. | Uzun |
Resim | Zorunlu | Video içeriğinin önizleme resmi. | Yardım için Resim Özellikleri'ne bakın. |
Bağlantı Önizleme (İsteğe Bağlı) | |||
Bağlantı Önizlemesi - Başlık | Zorunlu | Web sayfası içeriğinin başlığını belirten metin | Dize |
Bağlantı Önizleme - Ana Makine Adı | Zorunlu | Web sayfası sahibini belirten metin, ör. "INSIDER" | Dize |
Bağlantı Önizleme - Resim | İsteğe bağlı | Web içeriği için hero resim | Yardım için Resim Özellikleri'ne bakın. |
Zaman damgası | İsteğe bağlı | Yayının yayınlandığı zaman. | Milisaniye cinsinden Epoch zaman damgası |
Profille ilgili meta veriler (İsteğe bağlı) | |||
Ad | Zorunlu | Profil adı veya kimliği ya da herkese açık kullanıcı adı. Ör. "Can Doğru", "@TeamPixel". | Dize(en fazla 25 karakter önerilir) |
Ek Metin | İsteğe bağlı |
Profil kimliği, herkese açık kullanıcı adı veya ek meta veri olarak kullanılabilir Örneğin, "@John-Doe", "5 milyon takipçi", "İlginizi çekebilecekler", "Trendler", "5 yeni yayın" |
Dize(en fazla 40 karakter önerilir) |
Avatar | Zorunlu |
Kullanıcının profil resmi veya avatar resmi. Kare 1:1 resim |
Yardım için Resim Özellikleri'ne bakın. |
Ek Resim | İsteğe bağlı |
Profil rozeti (ör. doğrulama rozeti) Kare 1:1 resim |
Yardım için Resim Özellikleri'ne bakın. |
Etkileşimlerle ilgili meta veriler (İsteğe bağlı) 'nı inceleyin. | |||
Sayı | Zorunlu | Etkileşimlerin sayısını belirtin (ör. "3, 7 M"). | Dize (sayı + etiket toplamı için en fazla 20 karakter önerilir) |
Etiket |
İsteğe bağlı Sağlanmamışsa Visual sağlanmalıdır. |
Etkileşimin ne için olduğunu belirtin. Örneğin - "Beğenilenler". | Dize (sayı + etiket toplamı için en fazla 20 karakter önerilir) |
Görsel |
İsteğe bağlı Sağlanmamışsa Etiket sağlanmalıdır. |
Etkileşimin ne için olduğunu belirtin. Örneğin, Beğeniler simgesi ve emojinin gösterildiği resim. 1'den fazla resim eklenebilir ancak bunların tümü, tüm resimlerde gösterilmeyebilir olabilir. Kare 1:1 resim |
Yardım için Resim Özellikleri'ne bakın. |
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ı |
Resim özellikleri
Google'ın erişebilmesi için resimlerin herkese açık CDN'lerde barındırılması gerekir. oluşturabilirsiniz.
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ı yeni bir hesabı takip ettiğinde)
AppEngageSocialClient
, sosyal kümeleri yayınlamaktan sorumludur.
İstemcide küme yayınlamak için aşağıdaki API'lerden yararlanabilirsiniz:
isServiceAvailable
publishRecommendationClusters
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
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
nesnelerinin listesini yayınlamak için kullanılır.
RecommendationCluster
nesnesi aşağıdaki özelliklere sahip olabilir:
Özellik | Şartlar | Açıklama |
---|---|---|
SocialPostEntity veya PortraitMediaEntity listesi | Zorunlu | Bunun için önerileri oluşturan varlıkların listesi Öneri Kümesi. Tek bir kümedeki varlıklar aynı olmalıdır türü. |
Başlık | Zorunlu | Öneri kümesinin başlığı (örneğin, En yeni ekleyebilirsiniz). Ö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("Latest from your friends") .build()) .build())
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Latest from your friends") .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.
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.
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_RECOMMENDATION) ... .build())
Java
client.deleteClusters( new DeleteClustersRequest.Builder() .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.
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
bir içerik yayınlama isteğidir.
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.
class AppEngageBroadcastReceiver extends BroadcastReceiver {
// Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION 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));
}
<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>
</receiver>
</application>
Aşağıdaki amaçlar, hizmet:
com.google.android.engage.action.PUBLISH_RECOMMENDATION
. Aşağıdaki durumlardapublishRecommendationClusters
araması başlatmanız önerilir: unutmayın.
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 sizinle iletişime 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 Öneriniz için kümeler yayınlanacak ve şu kullanıcılar tarafından görülebilecek: yardımcı olur.