Google در حال ساخت یک سطح روی دستگاه است که برنامه های کاربران را بر اساس عمودی سازماندهی می کند و یک تجربه همهجانبه جدید را برای مصرف شخصی و کشف محتوای برنامه امکان پذیر می کند. این تجربه تمام صفحه به شرکای توسعهدهنده فرصتی میدهد تا بهترین محتوای غنی خود را در یک کانال اختصاصی خارج از برنامه خود به نمایش بگذارند. این راهنما حاوی دستورالعملهایی برای شرکای توسعهدهنده است تا محتوای دوستیابی خود را با استفاده از Engage SDK برای پر کردن این سطح جدید یکپارچه کنند.
جزئیات یکپارچه سازی
اصطلاحات
این ادغام شامل سه نوع خوشه زیر است: توصیه ، ویژه و ادامه .
خوشههای توصیه ، پیشنهادهای دوستیابی شخصیشده از یک شریک توسعهدهنده را نشان میدهند. این توصیه ها را می توان برای کاربر شخصی سازی کرد.
- یک خوشه توصیه می تواند از
ArticleEntity
،PersonEntity
یاEventEntity
ساخته شود اما ترکیبی از انواع موجودیت های مختلف نباشد.
توصیه های شما ساختار زیر را دارد:
Recommendation Cluster: نمای رابط کاربری که شامل گروهی از توصیههای یک شریک توسعهدهنده است.
Entity: یک شی که یک آیتم را در یک خوشه نشان می دهد. این ادغام برخی از موجودیت هایی را ارائه می دهد که با استفاده از خوشه توصیه ظاهر می شوند:
ArticleEntity : ArticleEntity یک توصیه برای محتوای مبتنی بر متن است که مربوط به دوستیابی است. آیتم ArticleEntity به توسعه دهندگان این امکان را می دهد تا محتوای متنی و تصویری متنوعی را با ابرداده های بیشتر برای بیان اطلاعات به کاربران ارائه دهند.
PersonEntity : PersonEntity نماینده یک شخص است. توصیهها میتواند برجسته کردن یک فرد در آیندهای نزدیک باشد.
EventEntity : EventEntity نشان دهنده رویدادی است که در آینده اتفاق می افتد. زمان شروع رویداد یک بخش مهم از اطلاعات است که باید به کاربران منتقل شود.
- یک خوشه توصیه می تواند از
خوشه Continuation محتوایی را نشان میدهد که اخیراً توسط کاربران چند شریک توسعهدهنده در یک گروه UI واحد درگیر شده است. هر شریک توسعه دهنده مجاز است حداکثر 10 موجودیت را در خوشه Continuation پخش کند.
محتوای ادامه شما می تواند ساختار زیر را داشته باشد:
ArticleEntity : ArticleEntity یک توصیه برای محتوای مبتنی بر متن است که مربوط به دوستیابی است. این موجودیت می تواند برای نشان دادن مقالات خبری ناتمام یا سایر محتوایی که کاربر مایل است از جایی که آن را ترک کرده است به مصرف خود ادامه دهد، استفاده شود.
EventReservationEntity : EventReservationEntity رزرو یک رویداد را نشان میدهد و به کاربران کمک میکند تا رزروهای ملاقات و ملاقات آینده یا در حال انجام را پیگیری کنند.
خوشه Featured یک نمای رابط کاربری است که قهرمان انتخاب شده
GenericFeaturedEntity
را از بسیاری از شرکای توسعه دهنده در یک گروه UI به نمایش می گذارد. یک خوشه ویژه وجود دارد که در نزدیکی بالای رابط کاربری ظاهر شده است، با اولویت بالاتر از همه خوشههای توصیه. هر شریک توسعهدهنده مجاز است یک موجودیت واحد از نوع پشتیبانیشده را در «ویژگیها» با تعداد زیادی نهاد (احتمالاً از انواع مختلف) از چندین برنامهنویس برنامه در خوشه ویژه پخش کند.GenericFeaturedEntity : GenericFeaturedEntity با آیتم توصیه تفاوت دارد زیرا آیتم Featured باید برای یک محتوای برتر از توسعه دهندگان استفاده شود و باید مهمترین محتوایی را نشان دهد که برای کاربران جالب و مرتبط باشد.
قبل از کار
حداقل سطح API: 19
کتابخانه com.google.android.engage:engage-core
به برنامه خود اضافه کنید:
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'
}
خلاصه
طراحی بر اساس اجرای یک سرویس محدود است.
دادههایی که مشتری میتواند منتشر کند مشمول محدودیتهای زیر برای انواع مختلف خوشه است:
نوع خوشه | محدودیت های خوشه ای | حداقل محدودیت موجودیت در یک خوشه | حداکثر محدودیت موجودیت در یک خوشه |
---|---|---|---|
خوشه(های) توصیه | حداکثر 5 | حداقل 5 | حداکثر 25 ( ArticleEntity ، PersonEntity یا EventEntity ) |
خوشه ادامه | حداکثر 1 | حداقل 1 | حداکثر 10 ( ArticleEntity یا EventReservationEntity ) |
خوشه برجسته | حداکثر 1 | حداقل 1 | حداکثر 10 ( GenericFeaturedEntity ) |
مرحله 1: داده های موجودیت را ارائه دهید
SDK موجودیت های مختلفی را برای نشان دادن هر نوع مورد تعریف کرده است. ما از نهادهای زیر برای دسته دوستیابی پشتیبانی می کنیم:
-
GenericFeaturedEntity
-
ArticleEntity
-
PersonEntity
-
EventEntity
-
EventReservationEntity
نمودارهای زیر ویژگی ها و الزامات موجود برای هر نوع را مشخص می کند.
GenericFeaturedEntity
صفت | مورد نیاز | توضیحات | قالب |
---|---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به نهاد موجود در برنامه ارائه دهنده. توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید | اوری |
تصاویر پوستر | مورد نیاز | هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است توجه: در صورت ارائه نشان، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
عنوان | اختیاری | عنوان نهاد. | متن رایگان اندازه متن پیشنهادی: 50 کاراکتر |
توضیحات | اختیاری | یک پاراگراف متنی برای توصیف موجودیت. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: 180 کاراکتر |
لیست زیرنویس | اختیاری | حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر |
نشان ها | اختیاری | هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است. درمان ویژه UX در بالای تصویر/ویدئو، به عنوان مثال به عنوان پوشش نشان روی تصویر
| |
نشان - متن | اختیاری | عنوان برای نشان توجه: متن یا تصویر برای نشان مورد نیاز است | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نشان - تصویر | اختیاری | تصویر کوچک درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو. توجه: متن یا تصویر برای نشان مورد نیاز است | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
دسته بندی های محتوا | اختیاری | دسته بندی محتوا را در موجودیت توضیح دهید. | فهرست Enums برای راهنمایی به بخش دسته بندی محتوا مراجعه کنید. |
ArticleEntity
صفت | مورد نیاز | توضیحات | قالب |
---|---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به نهاد موجود در برنامه ارائه دهنده. توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید | اوری |
عنوان | مورد نیاز | عنوان نهاد. | متن رایگان اندازه متن پیشنهادی: حداکثر 50 کاراکتر |
تصاویر پوستر | اختیاری | هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است توجه: تصویر به شدت توصیه می شود. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
منبع - عنوان | اختیاری | نام نویسنده، سازمان یا گزارشگر | متن رایگان اندازه متن پیشنهادی: زیر 25 کاراکتر |
منبع - تصویر | اختیاری | تصویری از منبع مانند نویسنده، سازمان، گزارشگر | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
توضیحات | اختیاری | یک پاراگراف متنی برای توصیف موجودیت. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: 180 کاراکتر |
لیست زیرنویس | اختیاری | حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر |
نشان ها | اختیاری | هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است. درمان ویژه UX در بالای تصویر/ویدئو، به عنوان مثال به عنوان پوشش نشان روی تصویر
| |
نشان - متن | اختیاری | عنوان برای نشان توجه: متن یا تصویر برای نشان مورد نیاز است | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نشان - تصویر | اختیاری | تصویر کوچک درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو. توجه: متن یا تصویر برای نشان مورد نیاز است | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
زمان انتشار محتوا | اختیاری | این مهر زمانی در میلی ثانیه در زمانی است که محتوا در برنامه منتشر شد/بهروزرسانی شد. | مهر زمانی دوره در میلی ثانیه |
آخرین زمان نامزدی | مشروط الزامی است | مهر زمانی دوره در میلی ثانیه زمانی که کاربر آخرین بار با این موجودیت تعامل داشت. توجه: اگر این موجودیت بخشی از خوشه ادامه باشد، این فیلد ضروری است. | مهر زمانی دوره در میلی ثانیه |
درصد پیشرفت | مشروط الزامی است | درصد محتوای کامل مصرف شده توسط کاربر تا به امروز. توجه: اگر این موجودیت بخشی از خوشه ادامه باشد، این فیلد ضروری است. | مقدار int بین 0 تا 100 شامل. |
دسته بندی محتوا | اختیاری | دسته بندی محتوا را در موجودیت توضیح دهید. | فهرست Enums برای راهنمایی به بخش دسته بندی محتوا مراجعه کنید. |
PersonEntity
صفت | مورد نیاز | توضیحات | قالب |
---|---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به نهاد موجود در برنامه ارائه دهنده. توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید | اوری |
مشخصات - نام | مورد نیاز | نام یا شناسه یا دسته نمایه، به عنوان مثال "John Doe"، "@TeamPixel"، و غیره. | رشته اندازه متن پیشنهادی: حداکثر 50 کاراکتر |
نمایه - آواتار | مورد نیاز | تصویر نمایه یا تصویر آواتار کاربر. توجه: تصویر باید مربع 1:1 باشد. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
نمایه - متن اضافی | اختیاری | متن رایگان مانند دسته پروفایل. | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نمایه - تصویر اضافی | اختیاری | تصویر کوچک مانند نشان تأیید شده. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
تصویر هدر | اختیاری | تصویر هدر را نشان می دهد. باید با تصویر پروفایل متفاوت باشد. اگر تصویر اضافی برای برجسته کردن شخص مانند کارش وجود داشته باشد، میتوان از آن استفاده کرد. توجه: تصویر باید 16:9 باشد. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
محبوبیت - شمارش | اختیاری | تعداد فالوورها یا مقدار محبوبیت را نشان دهید، به عنوان مثال - "3.7 M.". توجه: اگر تعداد و مقدار تعداد هر دو ارائه شده باشد، از شمارش استفاده می شود | رشته اندازه متن توصیه شده: حداکثر 20 کاراکتر برای تعداد + برچسب ترکیب شده است |
محبوبیت - مقدار شمارش | اختیاری | تعداد فالوورها یا ارزش محبوبیت. توجه: اگر برنامه شما نمیخواهد منطقی در مورد نحوه بهینهسازی یک عدد بزرگ برای اندازههای مختلف نمایشگر انجام دهد، مقدار شمارش را ارائه دهید. اگر تعداد و مقدار تعداد هر دو ارائه شده باشد، تعداد به کاربران نمایش داده می شود. | طولانی |
محبوبیت - برچسب | اختیاری | برچسب محبوبیت را مشخص کنید. به عنوان مثال - "پسند". | رشته اندازه متن توصیه شده: حداکثر 20 کاراکتر برای تعداد + برچسب ترکیب شده است |
محبوبیت - بصری | اختیاری | مشخص کنید که این تعامل برای چیست. به عنوان مثال - تصویری که نماد لایک، شکلک را نشان می دهد. می تواند بیش از 1 تصویر ارائه دهد، اگرچه ممکن است همه آنها در همه عوامل شکل نشان داده نشوند. توجه: تصویر باید مربع 1:1 باشد | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
رتبه - حداکثر مقدار | مورد نیاز | حداکثر مقدار مقیاس رتبه بندی. اگر ارزش فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
رتبه - ارزش فعلی | مورد نیاز | ارزش فعلی مقیاس رتبه بندی. اگر حداکثر مقدار رتبه بندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
رتبه بندی - شمارش | اختیاری | تعداد رتبهبندیها برای نهاد. توجه: اگر برنامه شما میخواهد نحوه نمایش آن را برای کاربران کنترل کند، این قسمت را وارد کنید. رشته مختصری را ارائه دهید که می تواند به کاربر نمایش داده شود. برای مثال، اگر تعداد 1,000,000 باشد، از اختصاراتی مانند 1M استفاده کنید تا در اندازههای نمایشگر کوچکتر کوتاه نشود. | رشته |
رتبه بندی - مقدار شمارش | اختیاری | تعداد رتبهبندیها برای نهاد. توجه: اگر نمیخواهید منطق مخفف نمایش را خودتان مدیریت کنید، این فیلد را وارد کنید. اگر تعداد و مقدار تعداد هر دو موجود باشد، از تعداد برای نمایش به کاربران استفاده خواهیم کرد | طولانی |
مکان - کشور | اختیاری | کشوری که فرد در آن قرار دارد یا در حال خدمت است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - شهر | اختیاری | شهری که فرد در آن قرار دارد یا در آن خدمت می کند. | متن رایگان اندازه متن توصیه شده: حداکثر ~ 20 کاراکتر |
مکان - نشانی نمایش | اختیاری | آدرسی که شخص در آن قرار دارد یا در آن خدمت می کند به کاربر نمایش داده می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) جایی که فرد در آن واقع شده یا در حال خدمت است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - ایالت | اختیاری | ایالت (در صورت وجود) جایی که فرد در آن قرار دارد یا در حال خدمت است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) جایی که شخص در آن قرار دارد یا در حال خدمت است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
محل - محله | اختیاری | محله ای (در صورت وجود) که فرد در آن قرار دارد یا در حال خدمت است. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
نشان ها | اختیاری | هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است. | |
نشان - متن | اختیاری | عنوان برای نشان توجه: متن یا تصویر برای نشان مورد نیاز است | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نشان - تصویر | اختیاری | تصویر کوچک درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو. توجه: متن یا تصویر برای نشان مورد نیاز است | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
توضیحات | اختیاری | یک پاراگراف متنی برای توصیف موجودیت. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: 180 کاراکتر |
لیست زیرنویس | اختیاری | حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر |
دسته بندی های محتوا | اختیاری | دسته بندی محتوا را در موجودیت توضیح دهید. | فهرست فهرست های واجد شرایط
برای راهنمایی به بخش دسته بندی محتوا مراجعه کنید. |
EventEntity
صفت | مورد نیاز | توضیحات | قالب |
---|---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به نهاد موجود در برنامه ارائه دهنده. توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید | اوری |
عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر 50 کاراکتر |
زمان شروع | مورد نیاز | مهر زمانی دورانی که انتظار می رود رویداد شروع شود. توجه: این در میلی ثانیه نمایش داده می شود. | مهر زمانی دوره در میلی ثانیه |
حالت رویداد | مورد نیاز | فیلدی برای نشان دادن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود. | تعداد: VIRTUAL، IN_PERSON، یا HYBRID |
تصاویر پوستر | مورد نیاز | هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است توجه: تصویر به شدت توصیه می شود. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
مکان - کشور | مشروط الزامی است | کشوری که رویداد در آن رخ می دهد. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - شهر | مشروط الزامی است | شهری که رویداد در آن اتفاق می افتد. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - نشانی نمایش | مشروط الزامی است | آدرس یا نام محل برگزاری رویداد که باید به کاربر نمایش داده شود. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) مکانی که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - ایالت | اختیاری | ایالت یا استان (در صورت وجود) که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) مکانی که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
محل - محله | اختیاری | محله ای (در صورت وجود) که رویداد در آن برگزار می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
زمان پایان | اختیاری | مهر زمانی دوره ای که انتظار می رود رویداد به پایان برسد. توجه: این در میلی ثانیه نمایش داده می شود. | مهر زمانی دوره در میلی ثانیه |
توضیحات | اختیاری | یک پاراگراف متنی برای توصیف موجودیت. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: 180 کاراکتر |
لیست زیرنویس | اختیاری | حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر |
نشان ها | اختیاری | هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است. | |
نشان - متن | اختیاری | عنوان برای نشان توجه: متن یا تصویر برای نشان مورد نیاز است | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نشان - تصویر | اختیاری | تصویر کوچک درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو. توجه: متن یا تصویر برای نشان مورد نیاز است | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
قیمت - قیمت فعلی | مشروط مورد نیاز است | قیمت فعلی بلیط/گذرنامه برای رویداد. در صورت ارائه قیمت خطی باید ارائه شود. | متن رایگان |
قیمت - StrikethroughPrice | اختیاری | قیمت اصلی بلیط/گذرنامه برای رویداد. | متن رایگان |
فراخوان قیمت | اختیاری | اعلام قیمت برای نمایش تبلیغات، رویداد، تخفیف عضو، در صورت وجود. | متن رایگان اندازه متن توصیه شده: کمتر از 45 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد) |
دسته بندی های محتوا | اختیاری | دسته بندی محتوا را در موجودیت توضیح دهید. | فهرست فهرست های واجد شرایط
برای راهنمایی به بخش دسته بندی محتوا مراجعه کنید. |
EventReservationEntity
صفت | مورد نیاز | توضیحات | قالب |
---|---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به نهاد موجود در برنامه ارائه دهنده. توجه: می توانید از پیوندهای عمیق برای ذکر منبع استفاده کنید. به این سؤالات متداول مراجعه کنید | اوری |
عنوان | مورد نیاز | عنوان نهاد. | رشته اندازه متن پیشنهادی: حداکثر 50 کاراکتر |
زمان شروع | مورد نیاز | مهر زمانی دورانی که انتظار می رود رویداد شروع شود. توجه: این در میلی ثانیه نمایش داده می شود. | مهر زمانی دوره در میلی ثانیه |
حالت رویداد | مورد نیاز | فیلدی برای نشان دادن اینکه آیا رویداد مجازی، حضوری یا هر دو خواهد بود. | تعداد: VIRTUAL، IN_PERSON، یا HYBRID |
مکان - کشور | مشروط الزامی است | کشوری که رویداد در آن رخ می دهد. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - شهر | مشروط الزامی است | شهری که رویداد در آن اتفاق می افتد. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - نشانی نمایش | مشروط مورد نیاز است | آدرس یا نام محل برگزاری رویداد که باید به کاربر نمایش داده شود. توجه: این برای رویدادهایی که IN_PERSON یا HYBRID هستند لازم است | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - آدرس خیابان | اختیاری | آدرس خیابان (در صورت وجود) مکانی که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - ایالت | اختیاری | ایالت یا استان (در صورت وجود) که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
مکان - کد پستی | اختیاری | کد پستی (در صورت وجود) مکانی که رویداد در آن میزبانی می شود. | متن رایگان اندازه متن پیشنهادی: حداکثر ~20 کاراکتر |
محل - محله | اختیاری | محله ای (در صورت وجود) که رویداد در آن برگزار می شود. | متن رایگان اندازه متن توصیه شده: حداکثر ~ 20 کاراکتر |
تصاویر پوستر | اختیاری | هنگامی که چندین تصویر ارائه می شود، تنها 1 تصویر را نشان خواهیم داد. نسبت تصویر پیشنهادی 16:9 است توجه: تصویر به شدت توصیه می شود. اگر نشان ارائه شده است، از فضای ایمن 24 dps در بالا و پایین تصویر اطمینان حاصل کنید | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
زمان پایان | اختیاری | مهر زمانی دوره ای که انتظار می رود رویداد به پایان برسد. توجه: این در میلی ثانیه نمایش داده می شود. | مهر زمانی دوره در میلی ثانیه |
ارائه دهنده خدمات - نام | اختیاری | نام ارائه دهنده خدمات. توجه: متن یا تصویر برای ارائه دهنده خدمات مورد نیاز است. | متن رایگان. به عنوان مثال، نام برگزار کننده رویداد/تور |
ارائه دهنده خدمات - تصویر | اختیاری | آرم/تصویر ارائه دهنده خدمات. توجه: متن یا تصویر برای ارائه دهنده خدمات مورد نیاز است. | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
توضیحات | اختیاری | یک پاراگراف متنی برای توصیف موجودیت. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن پیشنهادی: 180 کاراکتر |
لیست زیرنویس | اختیاری | حداکثر 3 زیرنویس، با هر زیرنویس یک خط متن. توجه: توضیحات یا لیست زیرنویس برای کاربر نمایش داده می شود، نه هر دو. | متن رایگان اندازه متن توصیه شده برای هر زیرنویس: حداکثر 50 کاراکتر |
نشان ها | اختیاری | هر نشان یا متن آزاد (حداکثر 15 کاراکتر) یا تصویر کوچک است. | |
نشان - متن | اختیاری | عنوان برای نشان توجه: متن یا تصویر برای نشان مورد نیاز است | متن رایگان اندازه متن پیشنهادی: حداکثر 15 کاراکتر |
نشان - تصویر | اختیاری | تصویر کوچک درمان ویژه UX، برای مثال به عنوان روکش نشان روی تصویر کوچک تصویر/ویدیو. توجه: متن یا تصویر برای نشان مورد نیاز است | برای راهنمایی به مشخصات تصویر مراجعه کنید. |
شناسه رزرو | اختیاری | شناسه رزرو برای رزرو رویداد. | متن رایگان |
قیمت - قیمت فعلی | مشروط مورد نیاز است | قیمت فعلی بلیط/گذرنامه برای رویداد. در صورت ارائه قیمت خطی باید ارائه شود. | متن رایگان |
قیمت - StrikethroughPrice | اختیاری | قیمت اصلی بلیط/گذرنامه برای رویداد. | متن رایگان |
فراخوان قیمت | اختیاری | اعلام قیمت برای نمایش تبلیغات، رویداد، تخفیف عضو، در صورت وجود. | متن رایگان اندازه متن توصیه شده: کمتر از 45 کاراکتر (متنی که خیلی طولانی است ممکن است بیضی نشان دهد) |
رتبه - حداکثر مقدار | اختیاری | حداکثر مقدار مقیاس رتبه بندی. اگر ارزش فعلی رتبهبندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
رتبه - ارزش فعلی | اختیاری | ارزش فعلی مقیاس رتبه بندی. اگر حداکثر مقدار رتبه بندی نیز ارائه شده باشد، باید ارائه شود. | عدد >= 0.0 |
رتبه بندی - شمارش | اختیاری | تعداد امتیازات این رویداد. توجه: اگر برنامه شما میخواهد نحوه نمایش آن را برای کاربران کنترل کند، این قسمت را وارد کنید. رشته مختصری را ارائه دهید که می تواند به کاربر نمایش داده شود. برای مثال، اگر تعداد 1,000,000 باشد، از اختصاراتی مانند 1M استفاده کنید تا در اندازههای نمایشگر کوچکتر کوتاه نشود. | رشته |
رتبه بندی - مقدار شمارش | اختیاری | تعداد امتیازات این رویداد. توجه: اگر نمیخواهید منطق مخفف نمایش را خودتان مدیریت کنید، این فیلد را وارد کنید. اگر تعداد و مقدار تعداد هر دو موجود باشد، از تعداد برای نمایش به کاربران استفاده خواهیم کرد | طولانی |
دسته بندی های محتوا | اختیاری | دسته بندی محتوا را در موجودیت توضیح دهید. | فهرست فهرست های واجد شرایط
برای راهنمایی به بخش دسته بندی محتوا مراجعه کنید. |
مشخصات تصویر
مشخصات مورد نیاز برای دارایی های تصویر در این جدول آمده است:
نسبت ابعاد | حداقل پیکسل | پیکسل های توصیه شده |
---|---|---|
مربع (1x1) ترجیح داده شده است | 300x300 | 1200x1200 |
منظره (1.91x1) | 600x314 | 1200x628 |
پرتره (4x5) | 480x600 | 960x1200 |
این تصاویر باید در CDN های عمومی میزبانی شوند تا Google بتواند به آنها دسترسی داشته باشد.
فرمت های فایل
PNG، JPG، GIF استاتیک، WebP
حداکثر اندازه فایل
5120 کیلوبایت
توصیه های اضافی
- ناحیه امن تصویر: محتوای مهم خود را 80 درصد در مرکز تصویر قرار دهید.
- از پس زمینه شفاف استفاده کنید تا تصویر به درستی در تنظیمات تم تیره و روشن نمایش داده شود.
دسته بندی محتوا
دسته محتوا به برنامه ها اجازه می دهد تا محتوای متعلق به چندین دسته را منتشر کنند. این نقشه محتوا را با برخی از مقوله های از پیش تعریف شده نشان می دهد:
-
TYPE_EDUCATION
-
TYPE_SPORTS
-
TYPE_MOVIES_AND_TV_SHOWS
-
TYPE_BOOKS
-
TYPE_AUDIOBOOKS
-
TYPE_MUSIC
-
TYPE_DIGITAL_GAMES
-
TYPE_TRAVEL_AND_LOCAL
-
TYPE_HOME_AND_AUTO
-
TYPE_BUSINESS
-
TYPE_NEWS
-
TYPE_FOOD_AND_DRINK
-
TYPE_SHOPPING
-
TYPE_HEALTH_AND_FITENESS
-
TYPE_MEDICAL
-
TYPE_PARENTING
-
TYPE_DATING
این تصاویر باید در CDN های عمومی میزبانی شوند تا Google بتواند به آنها دسترسی داشته باشد.
دستورالعمل استفاده از دسته بندی محتوا
- برخی از نهادها مانند ArticleEntity و GenericFeaturedEntity واجد شرایط استفاده از هر یک از دسته بندی های محتوا هستند. برای نهادهای دیگر مانند EventEntity ، EventReservationEntity ، PersonEntity ، فقط زیرمجموعهای از این دستهها واجد شرایط هستند. قبل از پر کردن فهرست، فهرست دستههای واجد شرایط برای یک نوع نهاد را بررسی کنید.
از نوع موجودیت خاص برای برخی از دستههای محتوا بر روی ترکیبی از موجودیتهای عمومی و دسته محتوا استفاده کنید:
- TYPE_MOVIES_AND_TV_SHOWS - قبل از استفاده از موجودیتهای عمومی، موجودیتهای راهنمای ادغام Watch را بررسی کنید.
- TYPE_BOOKS - قبل از استفاده از موجودیتهای عمومی، EbookEntity را بررسی کنید.
- TYPE_AUDIOBOOKS - قبل از استفاده از موجودیتهای عمومی، AudiobookEntity را بررسی کنید.
- TYPE_SHOPPING - قبل از استفاده از نهادهای عمومی، ShoppingEntity را بررسی کنید.
- TYPE_FOOD_AND_DRINK - قبل از استفاده از موجودیتهای عمومی، موجودیتها را از راهنمای Food Integration بررسی کنید.
قسمت ContentCategory اختیاری است و اگر محتوا به هیچ یک از دستههایی که قبلاً ذکر شد تعلق ندارد، باید خالی بماند.
در صورتی که چندین دسته محتوا ارائه شده است، آنها را به ترتیب مرتبط با محتوا با مرتبط ترین دسته بندی محتوا در ابتدا در لیست ارائه دهید.
مرحله 2: داده های Cluster را ارائه دهید
توصیه میشود کار انتشار محتوا در پسزمینه اجرا شود (مثلاً با استفاده از WorkManager ) و به طور منظم یا بر اساس رویداد برنامهریزی شود (به عنوان مثال، هر بار که کاربر برنامه را باز میکند یا زمانی که کاربر به تازگی چیزی به آن اضافه کرده است. سبد خرید آنها).
AppEngagePublishClient
مسئول انتشار خوشه ها است.
API های زیر برای انتشار خوشه ها در مشتری وجود دارد:
-
isServiceAvailable
-
publishRecommendationClusters
-
publishFeaturedCluster
-
publishContinuationCluster
-
publishUserAccountManagementRequest
-
updatePublishStatus
-
deleteRecommendationsClusters
-
deleteFeaturedCluster
-
deleteContinuationCluster
-
deleteUserManagementCluster
-
deleteClusters
isServiceAvailable
این API برای بررسی اینکه آیا سرویس برای یکپارچه سازی در دسترس است و اینکه آیا محتوا می تواند در دستگاه ارائه شود یا خیر استفاده می شود.
کاتلین
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. } }
جاوا
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
این API برای انتشار لیستی از اشیاء RecommendationCluster
استفاده می شود.
کاتلین
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build() ) .build() )
جاوا
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build()) .build());
هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:
- داده های
RecommendationCluster
موجود از شریک توسعه دهنده حذف شده است. - دادههای درخواست تجزیه و تحلیل میشوند و در خوشه توصیه بهروز ذخیره میشوند.
در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
publishFeaturedCluster
این API برای انتشار لیستی از اشیاء FeaturedCluster
استفاده می شود.
کاتلین
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
جاوا
client.publishFeaturedCluster( new PublishFeaturedClustersRequest.Builder() .addFeaturedCluster( new FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:
- داده های
FeaturedCluster
موجود از شریک توسعه حذف شده است. - داده های درخواست تجزیه و تحلیل می شود و در خوشه ویژه به روز شده ذخیره می شود.
در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
publishContinuationCluster
این API برای انتشار یک شی ContinuationCluster
استفاده می شود.
کاتلین
client.publishContinuationCluster( PublishContinuationClusterRequest.Builder() .setContinuationCluster( ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
جاوا
client.publishContinuationCluster( new PublishContinuationClusterRequest.Builder() .setContinuationCluster( new ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:
- داده های موجود
ContinuationCluster
از شریک توسعه دهنده حذف شده است. - دادههای درخواست تجزیه و تحلیل میشوند و در Continuation Cluster بهروز شده ذخیره میشوند.
در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
publishUserAccountManagementRequest
این API برای انتشار کارت ورود به سیستم استفاده می شود. عمل ورود به سیستم، کاربران را به صفحه ورود به برنامه هدایت میکند تا برنامه بتواند محتوا را منتشر کند (یا محتوای شخصیسازیشدهتری ارائه کند)
فراداده زیر بخشی از کارت ورود به سیستم است -
صفت | مورد نیاز | توضیحات |
---|---|---|
اکشن اوری | مورد نیاز | پیوند عمیق به Action (یعنی به صفحه ورود به برنامه پیمایش میکند) |
تصویر | اختیاری - در صورت عدم ارائه، عنوان باید ارائه شود | تصویر روی کارت نشان داده شده است تصاویر با نسبت ابعاد 16x9 با وضوح 1264x712 |
عنوان | اختیاری - اگر ارائه نشد، تصویر باید ارائه شود | عنوان روی کارت |
متن اقدام | اختیاری | متن نمایش داده شده در CTA (یعنی ورود به سیستم) |
زیرنویس | اختیاری | زیرنویس اختیاری روی کارت |
کاتلین
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());
جاوا
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());
هنگامی که سرویس درخواست را دریافت می کند، اقدامات زیر در یک تراکنش انجام می شود:
- داده های موجود
UserAccountManagementCluster
از شریک توسعه دهنده حذف شده است. - داده های درخواست در خوشه UserAccountManagementCluster به روز شده تجزیه و ذخیره می شود.
در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
updatePublishStatus
اگر به دلایل تجاری داخلی، هیچ یک از خوشهها منتشر نشد، اکیداً توصیه میکنیم وضعیت انتشار را با استفاده از updatePublishStatus API بهروزرسانی کنید. این مهم است زیرا:
- ارائه وضعیت در همه سناریوها، حتی زمانی که محتوا منتشر می شود (وضعیت == منتشر شده)، برای پر کردن داشبوردهایی که از این وضعیت صریح برای انتقال سلامت و سایر معیارهای ادغام شما استفاده می کنند، بسیار مهم است.
- اگر محتوایی منتشر نشود اما وضعیت ادغام خراب نباشد (STATUS == NOT_PUBLISHED)، Google میتواند از ایجاد هشدار در داشبوردهای سلامت برنامه جلوگیری کند. تأیید می کند که محتوا به دلیل یک وضعیت مورد انتظار از دیدگاه ارائه دهنده منتشر نمی شود.
- این به توسعهدهندگان کمک میکند تا بینشهایی درباره زمانی که دادهها منتشر میشوند در مقابل عدم انتشار اطلاعات ارائه کنند.
- ممکن است Google از کدهای وضعیت استفاده کند تا کاربر را وادار کند تا اقدامات خاصی را در برنامه انجام دهد تا بتواند محتوای برنامه را ببیند یا بر آن غلبه کند.
لیست کدهای وضعیت انتشار واجد شرایط عبارتند از:
// 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
اگر محتوا به دلیل وارد نشدن کاربر منتشر نشود، Google انتشار کارت ورود به سیستم را توصیه می کند. اگر به هر دلیلی ارائه دهندگان قادر به انتشار کارت ورود به سیستم نیستند، توصیه می کنیم با کد وضعیت NOT_PUBLISHED_REQUIRES_SIGN_IN با updatePublishStatus API تماس بگیرید.
کاتلین
client.updatePublishStatus( PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build())
جاوا
client.updatePublishStatus( new PublishStatusRequest.Builder() .setStatusCode(AppEngagePublishStatusCode.NOT_PUBLISHED_REQUIRES_SIGN_IN) .build());
deleteRecommendationClusters
این API برای حذف محتوای خوشه های توصیه استفاده می شود.
کاتلین
client.deleteRecommendationClusters()
جاوا
client.deleteRecommendationClusters();
هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه های توصیه حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
deleteFeaturedCluster
این API برای حذف محتوای Featured Cluster استفاده می شود.
کاتلین
client.deleteFeaturedCluster()
جاوا
client.deleteFeaturedCluster();
هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از خوشه ویژه حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
deleteContinuationCluster
این API برای حذف محتوای Continuation Cluster استفاده می شود.
کاتلین
client.deleteContinuationCluster()
جاوا
client.deleteContinuationCluster();
هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از Continuation Cluster حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
deleteUserManagementCluster
این API برای حذف محتوای UserAccountManagement Cluster استفاده می شود.
کاتلین
client.deleteUserManagementCluster()
جاوا
client.deleteUserManagementCluster();
هنگامی که سرویس درخواست را دریافت می کند، داده های موجود را از UserAccountManagement Cluster حذف می کند. در صورت بروز خطا، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
deleteClusters
این API برای حذف محتوای یک نوع خوشه مشخص استفاده می شود.
کاتلین
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build())
جاوا
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build());
هنگامی که سرویس درخواست را دریافت می کند ، داده های موجود را از تمام خوشه های مطابق با انواع خوشه های مشخص شده حذف می کند. مشتریان می توانند یک یا بسیاری از انواع خوشه ها را تصویب کنند. در صورت بروز خطا ، کل درخواست رد می شود و وضعیت موجود حفظ می شود.
رسیدگی به خطا
بسیار توصیه می شود که به نتیجه کار از API های انتشار گوش دهید به گونه ای که می توان یک اقدام پیگیری برای بازیابی و بازگرداندن یک کار موفق انجام داد.
کاتلین
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 } } } }
جاوا
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 } } } });
این خطا به عنوان یک AppEngageException
با علت موجود به عنوان کد خطا بازگردانده می شود.
کد خطا | توجه داشته باشید |
---|---|
SERVICE_NOT_FOUND | این سرویس در دستگاه داده شده در دسترس نیست. |
SERVICE_NOT_AVAILABLE | این سرویس در دستگاه داده شده در دسترس است ، اما در زمان تماس در دسترس نیست (به عنوان مثال ، صریحاً غیرفعال است). |
SERVICE_CALL_EXECUTION_FAILURE | اجرای وظیفه به دلیل مشکلات مربوط به موضوعات انجام نشد. در این حالت ، می توان آن را مجدداً انجام داد. |
SERVICE_CALL_PERMISSION_DENIED | تماس گیرنده مجاز به برقراری تماس خدمات نیست. |
SERVICE_CALL_INVALID_ARGUMENT | این درخواست حاوی داده های نامعتبر است (به عنوان مثال ، بیش از تعداد خوشه مجاز). |
SERVICE_CALL_INTERNAL | خطایی در سمت سرویس وجود دارد. |
SERVICE_CALL_RESOURCE_EXHAUSTED | تماس خدمات بیش از حد مکرر انجام می شود. |
مرحله 3: اهداف پخش را کنترل کنید
علاوه بر ایجاد تماس های API Publish Content از طریق یک کار ، همچنین لازم است که برای دریافت درخواست انتشار محتوا ، یک BroadcastReceiver
را تنظیم کنید.
هدف از اهداف پخش عمدتاً برای فعال سازی مجدد برنامه و مجبور کردن همگام سازی داده ها است. اهداف پخش به گونه ای طراحی نشده است که به طور مکرر ارسال می شود. این تنها هنگامی ایجاد می شود که سرویس ENGAGE تعیین کند که محتوا ممکن است بی رنگ باشد (به عنوان مثال ، یک هفته). به این ترتیب ، اطمینان بیشتری وجود دارد که کاربر می تواند تجربه محتوای تازه ای داشته باشد ، حتی اگر برنامه برای مدت طولانی اجرا نشده باشد.
BroadcastReceiver
باید به دو روش زیر تنظیم شود:
- به صورت پویا نمونه ای از کلاس
BroadcastReceiver
را با استفاده ازContext.registerReceiver()
ثبت کنید. این امکان ارتباط از برنامه هایی را فراهم می کند که هنوز در حافظه زندگی می کنند.
کاتلین
class AppEngageBroadcastReceiver : BroadcastReceiver(){ // Trigger recommendation cluster publish when PUBLISH_RECOMMENDATION broadcast // is received // Trigger featured cluster publish when PUBLISH_FEATURED broadcast is received // Trigger continuation cluster publish when PUBLISH_CONTINUATION 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 Continuation Cluster Publish Intent context.registerReceiver(AppEngageBroadcastReceiver(), IntentFilter(Intents.ACTION_PUBLISH_CONTINUATION)) }
جاوا
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 continuation cluster publish when PUBLISH_CONTINUATION 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 Continuation Cluster Publish Intent context.registerReceiver(new AppEngageBroadcastReceiver(), new IntentFilter(com.google.android.engage.service.Intents.ACTION_PUBLISH_CONTINUATION)); }
- به صورت آماری با برچسب
<receiver>
در پروندهAndroidManifest.xml
خود یک اجرای را اعلام کنید. این امر به برنامه اجازه می دهد تا هنگام اجرا ، اهداف پخش را دریافت کند و همچنین به برنامه اجازه می دهد تا محتوا را منتشر کند.
<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.PUBLISH_CONTINUATION" />
</intent-filter>
</receiver>
</application>
اهداف زیر توسط سرویس ارسال می شود:
-
com.google.android.engage.action.PUBLISH_RECOMMENDATION
توصیه می شود هنگام دریافت این هدف ، تماسpublishRecommendationClusters
را شروع کنید. -
com.google.android.engage.action.PUBLISH_FEATURED
توصیه می شود هنگام دریافت این هدف ، یک تماسpublishFeaturedCluster
کنید. -
com.google.android.engage.action.PUBLISH_CONTINUATION
توصیه می شود هنگام دریافت این هدف ، یک تماس تلفنیpublishContinuationCluster
را شروع کنید.
گردش کار ادغام
برای یک راهنمای گام به گام در مورد تأیید ادغام خود پس از اتمام ، به گردش کار ادغام Engage Developer مراجعه کنید.
سوالات متداول
به Engage SDK که اغلب برای سؤالات متداول پرسیده می شود ، مراجعه کنید.
تماس بگیرید
در صورت وجود هرگونه سؤال در طی فرآیند ادغام ، با ingage-developers@google.com تماس بگیرید.
مراحل بعدی
پس از تکمیل این ادغام ، مراحل بعدی شما به شرح زیر است:
- یک ایمیل برای Engage-develors@google.com ارسال کرده و APK یکپارچه خود را که آماده آزمایش توسط Google است ، ضمیمه کنید.
- Google یک تأیید را انجام می دهد و در داخل کشور بررسی می کند تا اطمینان حاصل شود که ادغام همانطور که انتظار می رود کار می کند. در صورت نیاز به تغییرات ، Google با هرگونه جزئیات لازم با شما تماس می گیرد.
- هنگامی که آزمایش کامل است و هیچ تغییری لازم نیست ، Google با شما تماس می گیرد تا به شما اطلاع دهد که می توانید APK به روز شده و یکپارچه را در فروشگاه Play شروع کنید.
- بعد از اینکه گوگل تأیید کرد که APK به روز شده شما در فروشگاه Play منتشر شده است ، توصیه های شما ، برجسته و خوشه های ادامه ممکن است برای کاربران منتشر و قابل مشاهده باشد.