تنشئ Google سطحًا على الجهاز ينظم بيانات المستخدمين التطبيقات حسب المجالات وتوفّر تجربة غامرة جديدة لاستهلاك محتوى التطبيق المخصَّص والاكتشاف. توفِّر تجربة ملء الشاشة هذه للشركاء من المطوّرين فرصة لعرض أفضل المحتوى الوافي في قناة مخصصة خارج عن التطبيق.ويحتوي هذا الدليل على تعليمات للشركاء من المطوّرين دمج محتوى المواعدة الخاص بهم، باستخدام حزمة تطوير البرامج (SDK) الخاصة بالتفاعل مع هذه التطبيقات ومساحة السطح.
تفاصيل عملية الدمج
المصطلحات
تشمل عملية الدمج هذه أنواع المجموعات الثلاثة التالية: الاقتراح مميزة، ومتابعة.
تعرض مجموعات الاقتراحات اقتراحات مواعدة مخصّصة. من شريك مطور فردي. يمكن تنفيذ هذه الاقتراحات المخصصة للمستخدم.
- يمكن أن تتألف مجموعة الاقتراحات من
ArticleEntity
أوPersonEntity
أوEventEntity
ولكن ليس مزيجًا من أنواع مختلفة من الكيانات.
تأخذ توصياتك البنية التالية:
مجموعة الاقتراحات: طريقة عرض لواجهة مستخدم تحتوي على مجموعة من الاقتراحات من شريك المطوّرين نفسه
الكيان: هو كائن يمثّل عنصرًا واحدًا في مجموعة. هذا النمط التكامل يقدم بعض الكيانات التي ستظهر باستخدام مجموعة الاقتراحات:
ArticleEntity: يمثل ArticleEntity توصية بشأن المحتوى النصي المرتبط بالمواعدة عنصر ArticleEntity تتيح للمطوّرين تقديم مجموعة متنوّعة من المحتوى النصي والصور بمزيد من بيانات التعريف لتوضيح المعلومات للمستخدمين.
كيان الشخص: يمثل الكيان الشخصي شخصًا. تشير رسالة الأشكال البيانية حقًا، تسليط الضوء على شخص في مرحلة المواعدة والعملاء المحتملين.
EventEntity: يمثل EventEntity حدثًا في المستقبلية. وقت بدء الحدث هو جزء مهم من المعلومات يجب نقله إلى المستخدمين.
- يمكن أن تتألف مجموعة الاقتراحات من
تعرض مجموعة المتابعة المحتوى الذي تفاعل معه المستخدمون مؤخرًا من عدّة شركاء مطوّرين في مجموعة واحدة من واجهة المستخدم كل شريك مطوِّر سنسمح لهم ببث 10 كيانات كحدّ أقصى خلال مرحلة المتابعة. تجميع.
يمكن أن يتخذ المحتوى اللاحق البنية التالية:
ArticleEntity: يمثل ArticleEntity توصية بشأن المحتوى النصي المرتبط بالمواعدة يمكن استخدام هذا الكيان تمثّل مقالات إخبارية غير مكتملة أو محتوى آخر قد يستخدمه الاستمرار في استخدامه من حيث تركوه.
EventBookEntity: يمثل EventserveEntity. الحجز لأحد الأحداث ويساعد المستخدمين على تتبع الأحداث القادمة أو الجارية حجوزات أحداث المواعدة واللقاءات.
المجموعة مميزة هي طريقة عرض واجهة مستخدم تُظهر البطل الذي تم اختياره
GenericFeaturedEntity
من العديد من الشركاء المطوّرين في مجموعة واحدة من واجهة المستخدم هناك مجموعة عنقودية واحدة مميزة، تظهر بالقرب من أعلى مجموعة واجهة مستخدم لها موضع أولوية أعلى من كل مجموعات الاقتراحات على كل يُسمح لشريك المطوّرين ببث كيان واحد من منصة متوافقة مميزة، مع العديد من الكيانات (التي يحتمل أن تكون من أنواع مختلفة) من العديد من مطوري تطبيقات في المجموعة "المميزة".publicFeaturedEntity: يختلف عن GenericFeaturedEntity عن يجب استخدام بند التوصية في هذا العنصر المميز لعنصر المحتوى الأكثر رواجًا من المطوّرين، ويجب أن يمثّل المحتوى محتوى مهم سيكون مثيرًا للاهتمام وذا صلة بالمستخدمين.
المرحلة التمهيدية
الحد الأدنى لمستوى واجهة برمجة التطبيقات: 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
السمة | المتطلب | الوصف | التنسيق |
---|---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب |
رابط لصفحة في التطبيق يؤدي إلى الكيان في تطبيق الموفّر ملاحظة: يمكنك استخدام الروابط لصفحات معيّنة في عملية تحديد المصدر. يُرجى مراجعة هذه الأسئلة الشائعة. |
معرّف موارد منتظم (URI) |
صور الملصق | مطلوب | سنعرض صورة واحدة فقط عند توفير صور متعددة. نسبة العرض إلى الارتفاع المقترَحة هي 16:9. ملاحظة: في حال توفير شارة، احرص على توفير مساحة آمنة قدرها 24 درجة. عدد Dps في كل من أعلى الصورة وأسفلها |
راجِع مواصفات الصور للحصول على إرشادات. |
العنوان | اختياري | عنوان الكيان. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 50 حرفًا |
الوصف | اختياري | فقرة واحدة من النص لوصف الكيان. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 180 حرفًا |
قائمة الترجمة | اختياري | ما يصل إلى 3 ترجمات، مع كل عنوان فرعي يحتوي على سطر واحد من النص. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح لكل عنوان فرعي: الحدّ الأقصى 50 حرفًا |
الشارات | اختياري | تكون كل شارة عبارة عن نص مجاني (15 حرفًا كحد أقصى) أو صورة صغيرة. معالجة خاصة لتجربة المستخدم في أعلى الصورة أو الفيديو، على سبيل المثال كشارة تراكب على الصورة
|
|
شارة - نص | اختياري | عنوان الشارة ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحد أقصى |
شارة - صورة | اختياري | صورة صغيرة معالجة خاصة لتجربة المستخدم، على سبيل المثال تراكب الشارة على الصورة أو الفيديو صورة مصغّرة. ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
راجِع مواصفات الصور للحصول على إرشادات. |
فئات المحتوى | اختياري | قدِّم وصفًا لفئة المحتوى في العنصر. | قائمة التعدادات يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات |
ArticleEntity
السمة | المتطلب | الوصف | التنسيق |
---|---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب |
رابط لصفحة في التطبيق يؤدي إلى الكيان في تطبيق الموفّر ملاحظة: يمكنك استخدام الروابط لصفحات معيّنة في عملية تحديد المصدر. يُرجى مراجعة هذه الأسئلة الشائعة. |
معرّف موارد منتظم (URI) |
العنوان | مطلوب | عنوان الكيان. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 50 حرفًا كحد أقصى |
صور الملصق | اختياري | سنعرض صورة واحدة فقط عند توفير صور متعددة. نسبة العرض إلى الارتفاع المقترَحة هي 16:9. ملاحظة: ننصح بشدة باستخدام الصورة. إذا كانت الشارة ضمان مساحة آمنة تبلغ 24 نقطة في الثانية في كل من الجزء العلوي والسفلي من مصوّر |
راجِع مواصفات الصور للحصول على إرشادات. |
المصدر - العنوان | اختياري | اسم المؤلف أو المؤسسة أو المراسل الصحفي | حقل التعبئة النصّية الحرّة حجم النص المقترَح: أقل من 25 حرفًا |
المصدر - صورة | اختياري | صورة للمصدر، مثل المؤلف أو المؤسسة أو المراسل الصحفي | راجِع مواصفات الصور للحصول على إرشادات. |
الوصف | اختياري | فقرة واحدة من النص لوصف الكيان. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 180 حرفًا |
قائمة الترجمة | اختياري | ما يصل إلى 3 ترجمات، مع كل عنوان فرعي يحتوي على سطر واحد من النص. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح لكل عنوان فرعي: الحدّ الأقصى 50 حرفًا |
الشارات | اختياري | تكون كل شارة عبارة عن نص مجاني (15 حرفًا كحد أقصى) أو صورة صغيرة. معالجة خاصة لتجربة المستخدم في أعلى الصورة أو الفيديو، على سبيل المثال كشارة تراكب على الصورة
|
|
شارة - نص | اختياري | عنوان الشارة ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحد أقصى |
شارة - صورة | اختياري | صورة صغيرة معالجة خاصة لتجربة المستخدم، على سبيل المثال تراكب الشارة على الصورة أو الفيديو صورة مصغّرة. ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
راجِع مواصفات الصور للحصول على إرشادات. |
وقت نشر المحتوى | اختياري | هذا هو الطابع الزمني للحقبة بالمللي ثانية عندما كان المحتوى نشر / تحديث في التطبيق. | الطابع الزمني للحقبة بالمللي ثانية |
وقت التفاعل الأخير | مطلوب بشكل مشروط | الطابع الزمني للحقبة بالمللي ثانية عندما تفاعل المستخدم مع هذا الكيان آخر مرة. ملاحظة: يجب ملء هذا الحقل إذا كان هذا الكيان جزءًا من مجموعة المتابعة. |
الطابع الزمني للحقبة بالمللي ثانية |
النسبة المئوية للتقدم | مطلوب بشكل مشروط | النسبة المئوية للمحتوى الكامل الذي شاهده المستخدم حتى الآن. ملاحظة: يجب ملء هذا الحقل إذا كان هذا الكيان جزءًا من مجموعة المتابعة. |
قيمة عدد صحيح تتراوح بين 0 و100 ضمنًا. |
فئات المحتوى | اختياري | قدِّم وصفًا لفئة المحتوى في العنصر. | قائمة التعدادات يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات |
PersonEntity
السمة | المتطلب | الوصف | التنسيق |
---|---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب |
رابط لصفحة في التطبيق يؤدي إلى الكيان في تطبيق الموفّر ملاحظة: يمكنك استخدام الروابط لصفحات معيّنة في عملية تحديد المصدر. يُرجى مراجعة هذه الأسئلة الشائعة. |
معرّف موارد منتظم (URI) |
الملف الشخصي - الاسم | مطلوب | اسم الملف الشخصي أو رقم تعريفه أو اسم معرِّفه، مثل "سامح رضا" أو " @TeamPixel" وما إلى ذلك | سلسلة حجم النص المقترَح: 50 حرفًا كحد أقصى |
الملف الشخصي - الصورة الرمزية | مطلوب |
صورة الملف الشخصي أو الصورة الرمزية للمستخدم ملاحظة: يجب أن تكون صورة مربّعة 1:1. |
راجِع مواصفات الصور للحصول على إرشادات. |
الملف الشخصي - نص إضافي | اختياري | نص حر مثل الاسم المعرِّف للملف الشخصي. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحدٍ أقصى |
الملف الشخصي - صورة إضافية | اختياري | صورة صغيرة مثل شارة إثبات القناة. | راجِع مواصفات الصور للحصول على إرشادات. |
صورة العنوان | اختياري |
يمثل صورة العنوان. يجب أن تكون مختلفة عن صورة الملف الشخصي. ويمكن استخدام ذلك في حال توفُّر صورة إضافية للمساعدة في إبراز شخص يحب عمله. ملاحظة: يجب أن تكون الصورة بنسبة 16:9. إذا تم توفير شارة، ضمان مساحة آمنة تبلغ 24 نقطة في الثانية في أعلى الصورة وأسفلها |
راجِع مواصفات الصور للحصول على إرشادات. |
الرواج - العدد | اختياري |
تشير إلى عدد المتابعين أو قيمة الشعبية، على سبيل المثال - "3.7 م." ملاحظة: في حال توفير كلّ من قيمة العدّ وقيمة العدد، سيتم استخدام العدد. |
سلسلة حجم النص المقترَح: 20 حرفًا كحدٍ أقصى للعدد + التصنيف مجتمعة |
مدى الرواج - قيمة العدد | اختياري | عدد المتابعين أو قيمة الرواج. ملاحظة: قدِّم "قيمة العدد" إذا كان تطبيقك لا يريد ذلك. للتعامل مع المنطق بشأن كيفية تحسين عدد كبير أحجام العرض المختلفة. إذا تم توفير كل من قيمة العدد والعدد، يتم عرض العدد للمستخدمين. |
الصيغة الطويلة |
مدى الرواج - التصنيف | اختياري | حدد تصنيف الشعبية. على سبيل المثال، "المعجبون". | سلسلة حجم النص المقترَح: 20 حرفًا كحدٍ أقصى للعدد + التصنيف مجتمعة |
مدى الرواج - مرئي | اختياري |
حدد الغرض من التفاعل. على سبيل المثال، تعرض صورة رمز الإعجابات والرموز التعبيرية يمكن تقديم أكثر من صورة واحدة، ولكن قد لا تظهر كلها على بعض الصور من أشكال الأجهزة. ملاحظة: يجب أن تكون صورة مربّعة 1:1 |
راجِع مواصفات الصور للحصول على إرشادات. |
التقييم - أقصى قيمة | مطلوب | تمثّل هذه السمة القيمة القصوى لمقياس التقييم. يجب تقديمه إذا كانت القيمة الحالية للتقييم هي أيضًا المقدَّمة |
العدد >= 0.0 |
التقييم - القيمة الحالية | مطلوب | القيمة الحالية لمقياس التقييم. يجب تقديمه إذا كانت قيمة الحد الأقصى للتقييم أيضًا هي المقدَّمة |
العدد >= 0.0 |
التقييم - العدد | اختياري | تمثّل هذه السمة عدد تقييمات العنصر. ملاحظة: يُرجى إدخال هذا الحقل إذا كان تطبيقك يريد. للتحكم في كيفية عرضه للمستخدمين. تقديم السلسلة الموجزة التي يمكن عرضها للمستخدم. على سبيل المثال، إذا كان العد 1000000، ضع في اعتبارك استخدام اختصارات مثل 1M، بحيث لا تم اقتطاعه على أحجام العرض الأصغر. |
سلسلة |
التقييم - قيمة العدد | اختياري | تمثّل هذه السمة عدد تقييمات العنصر. ملاحظة: يُرجى إدخال هذا الحقل إذا كنت لا تريد التعامل مع هذا الحقل. منطق عرض اختصار العرض بنفسك. إذا كانت قيمة العدّ والعدد موجودة، سنستخدم العدد لعرضه للمستخدمين |
الصيغة الطويلة |
الموقع الجغرافي - البلد | اختياري | البلد الذي يقيم فيه الشخص أو يخدمه. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - المدينة | اختياري | المدينة التي يعمل فيها الشخص أو التي يخدمها. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع - العنوان المعروض | اختياري | سيتم عرض العنوان الذي يوجد فيه الشخص أو يقدم الخدمات له المستخدم. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - عنوان الشارع | اختياري | عنوان الشارع (إن وُجد) الذي يقع فيه الشخص أو بين الأطراف. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الولاية | اختياري | الولاية (إذا كان ذلك منطبقًا) التي يقيم فيها الشخص أو يقدّم الخدمة | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الرمز البريدي | اختياري | تمثّل هذه السمة الرمز البريدي (إذا كان ذلك منطبقًا) لمكان الشخص أو مكان تقديم الخدمات. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - حي | اختياري | الحي (إن وُجد) الذي يقع فيه الشخص أو يقدم خدماته. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الشارات | اختياري |
تكون كل شارة عبارة عن نص مجاني (15 حرفًا كحد أقصى) أو صورة صغيرة. |
|
شارة - نص | اختياري | عنوان الشارة ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحد أقصى |
شارة - صورة | اختياري | صورة صغيرة معالجة خاصة لتجربة المستخدم، على سبيل المثال تراكب الشارة على الصورة أو الفيديو صورة مصغّرة. ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
راجِع مواصفات الصور للحصول على إرشادات. |
الوصف | اختياري | فقرة واحدة من النص لوصف الكيان. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 180 حرفًا |
قائمة الترجمة | اختياري | ما يصل إلى 3 ترجمات، مع كل عنوان فرعي يحتوي على سطر واحد من النص. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح لكل عنوان فرعي: الحدّ الأقصى 50 حرفًا |
فئات المحتوى | اختياري | قدِّم وصفًا لفئة المحتوى في العنصر. | قائمة التعدادات المؤهَّلة
يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات |
EventEntity
السمة | المتطلب | الوصف | التنسيق |
---|---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب |
رابط لصفحة في التطبيق يؤدي إلى الكيان في تطبيق الموفّر ملاحظة: يمكنك استخدام الروابط لصفحات معيّنة في عملية تحديد المصدر. يُرجى مراجعة هذه الأسئلة الشائعة. |
معرّف موارد منتظم (URI) |
العنوان | مطلوب | عنوان الكيان. | سلسلة حجم النص المقترَح: 50 حرفًا كحد أقصى |
وقت البدء | مطلوب |
الطابع الزمني للحقبة التي كان من المتوقّع أن يبدأ فيها الحدث ملاحظة: سيتم تمثيل ذلك بالملي ثانية. |
الطابع الزمني للحقبة بالمللي ثانية |
وضع الحدث | مطلوب | حقل للإشارة إلى ما إذا كان الحدث سيكون افتراضيًا أو بالحضور الشخصي أو كليهما. |
التعداد: VIRTUAL أو IN_PERSON أو HYBRID |
صور الملصق | مطلوب | سنعرض صورة واحدة فقط عند توفير صور متعددة. نسبة العرض إلى الارتفاع المقترَحة هي 16:9. ملاحظة: ننصح بشدة باستخدام الصورة. إذا كانت الشارة ضمان مساحة آمنة تبلغ 24 نقطة في الثانية في كل من الجزء العلوي والسفلي من مصوّر |
راجِع مواصفات الصور للحصول على إرشادات. |
الموقع الجغرافي - البلد | مطلوب بشكل مشروط | البلد الذي ستقام فيه الفعالية. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - المدينة | مطلوب بشكل مشروط | المدينة التي ستقام فيها الفعالية. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع - العنوان المعروض | مطلوب بشكل مشروط | العنوان أو اسم المكان الذي ستقام فيه الفعالية والذي من المفترض أن عرضها للمستخدم. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - عنوان الشارع | اختياري | عنوان الشارع (إن وُجد) للموقع الجغرافي الذي تقام فيه الفعالية تتم استضافتها. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الولاية | اختياري | الولاية أو المقاطعة (إن وُجدت) التي يُقام فيها الحدث مستضافة. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الرمز البريدي | اختياري | الرمز البريدي (إذا كان ذلك منطبقًا) للموقع الجغرافي الذي تقام فيه الفعالية مستضافة. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - حي | اختياري | تمثّل هذه السمة الحي الذي يستضيف الفعالية (إذا كان ذلك منطبقًا). | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
وقت الانتهاء | اختياري |
الطابع الزمني للحقبة التي كان من المتوقّع أن ينتهي فيها الحدث ملاحظة: سيتم تمثيل ذلك بالملي ثانية. |
الطابع الزمني للحقبة بالمللي ثانية |
الوصف | اختياري | فقرة واحدة من النص لوصف الكيان. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 180 حرفًا |
قائمة الترجمة | اختياري | ما يصل إلى 3 ترجمات، مع كل عنوان فرعي يحتوي على سطر واحد من النص. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح لكل عنوان فرعي: الحدّ الأقصى 50 حرفًا |
الشارات | اختياري |
تكون كل شارة عبارة عن نص مجاني (15 حرفًا كحد أقصى) أو صورة صغيرة. |
|
شارة - نص | اختياري | عنوان الشارة ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحد أقصى |
شارة - صورة | اختياري | صورة صغيرة معالجة خاصة لتجربة المستخدم، على سبيل المثال تراكب الشارة على الصورة أو الفيديو صورة مصغّرة. ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
راجِع مواصفات الصور للحصول على إرشادات. |
السعر - السعر الحالي | مطلوب بشكل مشروط |
السعر الحالي للتذكرة/البطاقة الخاصة بالفعالية يجب تقديمه في حال تقديم سعر مشطوب. |
حقل التعبئة النصّية الحرّة |
السعر - سعر مشطوب | اختياري | تمثّل هذه السمة السعر الأصلي للتذكرة/البطاقة الخاصة بالفعالية. | حقل التعبئة النصّية الحرّة |
وسيلة شرح السعر | اختياري | وسيلة شرح للسعر لإبراز عرض ترويجي أو فعالية أو خصم مخصّص للمشتركين، في حال توفّره | حقل التعبئة النصّية الحرّة حجم النص المقترَح: أقل من 45 حرفًا (النص الطويل جدًا) قد تظهر علامات حذف) |
فئات المحتوى | اختياري | قدِّم وصفًا لفئة المحتوى في العنصر. | قائمة التعدادات المؤهَّلة
يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات |
EventReservationEntity
السمة | المتطلب | الوصف | التنسيق |
---|---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب |
رابط لصفحة في التطبيق يؤدي إلى الكيان في تطبيق الموفّر ملاحظة: يمكنك استخدام الروابط لصفحات معيّنة في عملية تحديد المصدر. يُرجى مراجعة هذه الأسئلة الشائعة. |
معرّف موارد منتظم (URI) |
العنوان | مطلوب | عنوان الكيان. | سلسلة حجم النص المقترَح: 50 حرفًا كحد أقصى |
وقت البدء | مطلوب |
الطابع الزمني للحقبة التي كان من المتوقّع أن يبدأ فيها الحدث ملاحظة: سيتم تمثيل ذلك بالملي ثانية. |
الطابع الزمني للحقبة بالمللي ثانية |
وضع الحدث | مطلوب | حقل للإشارة إلى ما إذا كان الحدث سيكون افتراضيًا أو بالحضور الشخصي أو كليهما. |
التعداد: VIRTUAL أو IN_PERSON أو HYBRID |
الموقع الجغرافي - البلد | مطلوب بشكل مشروط | البلد الذي ستقام فيه الفعالية. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - المدينة | مطلوب بشكل مشروط | المدينة التي ستقام فيها الفعالية. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع - العنوان المعروض | مطلوب بشكل مشروط | العنوان أو اسم المكان الذي ستقام فيه الفعالية والذي من المفترض أن عرضها للمستخدم. ملاحظة: هذا الإجراء مطلوب للأحداث التي تتضمن IN_PERSON أو الهجين |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - عنوان الشارع | اختياري | عنوان الشارع (إن وُجد) للموقع الجغرافي الذي تقام فيه الفعالية تتم استضافتها. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الولاية | اختياري | الولاية أو المقاطعة (إن وُجدت) التي يُقام فيها الحدث مستضافة. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - الرمز البريدي | اختياري | الرمز البريدي (إذا كان ذلك منطبقًا) للموقع الجغرافي الذي تقام فيه الفعالية مستضافة. | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
الموقع الجغرافي - حي | اختياري | تمثّل هذه السمة الحي الذي يستضيف الفعالية (إذا كان ذلك منطبقًا). | حقل التعبئة النصّية الحرّة حجم النص المقترَح: 20 حرفًا تقريبًا |
صور الملصق | اختياري | سنعرض صورة واحدة فقط عند توفير صور متعددة. نسبة العرض إلى الارتفاع المقترَحة هي 16:9. ملاحظة: ننصح بشدة باستخدام الصورة. إذا كانت الشارة ضمان مساحة آمنة تبلغ 24 نقطة في الثانية في كل من الجزء العلوي والسفلي من مصوّر |
راجِع مواصفات الصور للحصول على إرشادات. |
وقت الانتهاء | اختياري |
الطابع الزمني للحقبة التي كان من المتوقّع أن ينتهي فيها الحدث ملاحظة: سيتم تمثيل ذلك بالملي ثانية. |
الطابع الزمني للحقبة بالمللي ثانية |
مقدم الخدمة - الاسم | اختياري |
اسم مُقدِّم الخدمة. ملاحظة: يجب إدخال نص أو صورة للخدمة. المستخدم. |
نص حر. على سبيل المثال، اسم منظِّم أو جولة الحدث |
مقدِّم الخدمة - صورة | اختياري |
شعار/صورة مقدّم الخدمة ملاحظة: يجب إدخال نص أو صورة للخدمة. المستخدم. |
راجِع مواصفات الصور للحصول على إرشادات. |
الوصف | اختياري | فقرة واحدة من النص لوصف الكيان. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 180 حرفًا |
قائمة الترجمة | اختياري | ما يصل إلى 3 ترجمات، مع كل عنوان فرعي يحتوي على سطر واحد من النص. ملاحظة: سيتم استخدام قائمة الوصف أو قائمة الترجمة للمستخدم وليس كليهما. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح لكل عنوان فرعي: الحدّ الأقصى 50 حرفًا |
الشارات | اختياري |
تكون كل شارة عبارة عن نص مجاني (15 حرفًا كحد أقصى) أو صورة صغيرة. |
|
شارة - نص | اختياري | عنوان الشارة ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
حقل التعبئة النصّية الحرّة حجم النص المقترَح: 15 حرفًا كحد أقصى |
شارة - صورة | اختياري | صورة صغيرة معالجة خاصة لتجربة المستخدم، على سبيل المثال تراكب الشارة على الصورة أو الفيديو صورة مصغّرة. ملاحظة: يجب إدخال نص أو صورة للحصول على الشارة. |
راجِع مواصفات الصور للحصول على إرشادات. |
رقم تعريف الحجز | اختياري | رقم تعريف الحجز لحجز الحدث. | حقل التعبئة النصّية الحرّة |
السعر - السعر الحالي | مطلوب بشكل مشروط |
السعر الحالي للتذكرة/البطاقة الخاصة بالفعالية يجب تقديمه في حال تقديم سعر مشطوب. |
حقل التعبئة النصّية الحرّة |
السعر - سعر مشطوب | اختياري | تمثّل هذه السمة السعر الأصلي للتذكرة/البطاقة الخاصة بالفعالية. | حقل التعبئة النصّية الحرّة |
وسيلة شرح السعر | اختياري | وسيلة شرح للسعر لإبراز عرض ترويجي أو فعالية أو خصم مخصّص للمشتركين، في حال توفّره | حقل التعبئة النصّية الحرّة حجم النص المقترَح: أقل من 45 حرفًا (النص الطويل جدًا) قد تظهر علامات حذف) |
التقييم - أقصى قيمة | اختياري | تمثّل هذه السمة القيمة القصوى لمقياس التقييم. يجب تقديمه إذا كانت القيمة الحالية للتقييم هي أيضًا المقدَّمة |
العدد >= 0.0 |
التقييم - القيمة الحالية | اختياري | القيمة الحالية لمقياس التقييم. يجب تقديمه إذا كانت قيمة الحد الأقصى للتقييم أيضًا هي المقدَّمة |
العدد >= 0.0 |
التقييم - العدد | اختياري | تمثّل هذه السمة عدد التقييمات الخاصة بالحدث. ملاحظة: يُرجى إدخال هذا الحقل إذا كان تطبيقك يريد. للتحكم في كيفية عرضه للمستخدمين. تقديم السلسلة الموجزة التي يمكن عرضها للمستخدم. على سبيل المثال، إذا كان العد 1000000، ضع في اعتبارك استخدام اختصارات مثل 1M، بحيث لا تم اقتطاعه على أحجام العرض الأصغر. |
سلسلة |
التقييم - قيمة العدد | اختياري | تمثّل هذه السمة عدد التقييمات الخاصة بالحدث. ملاحظة: يُرجى إدخال هذا الحقل إذا كنت لا تريد التعامل مع هذا الحقل. منطق عرض اختصار العرض بنفسك. إذا كانت قيمة العدّ والعدد موجودة، سنستخدم العدد لعرضه للمستخدمين |
الصيغة الطويلة |
فئات المحتوى | اختياري | قدِّم وصفًا لفئة المحتوى في العنصر. | قائمة التعدادات المؤهَّلة
يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات |
مواصفات الصور
يتضمّن هذا الجدول المواصفات المطلوبة لمواد عرض الصور:
نسبة العرض إلى الارتفاع | الحد الأدنى لعدد وحدات البكسل | وحدات البكسل المقترَحة |
---|---|---|
مربّع (1x1) المفضّل |
300 × 300 | 1200 × 1200 |
أفقي (1.91×1) | 600 × 314 | 1200 × 628 |
العمودية (4×5) | 480×600 | 960 × 1200 |
يجب استضافة الصور على شبكات توصيل محتوى (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 أو EventBookEntity أو PersonEntity أو مجموعة فرعية فقط من هذه الفئات مؤهلة. التحقق من قائمة الفئات المؤهلة نوع الكيان قبل تعبئة القائمة.
استخدِم نوع الكيان المعيّن لبعض فئات المحتوى بدلاً من تركيبة. الكيانات العامة وContentCategory:
- TYPE_AVERAGES_AND_TV_SHOWS - اطلع على الكيانات من مشاهدة دليل الدمج قبل استخدام الكيانات العامة.
- TYPE_BOOKS - اطلع على EbookEntity قبل استخدام الكيانات العامة.
- TYPE_AUDIOBOOKS - الاطلاع على كيان الكتاب المسموع قبل باستخدام الكيانات العامة.
- TYPE_SHOPPING - تسجيل المغادرة ShoppingEntity قبل باستخدام الكيانات العامة.
- TYPE_FOOD_AND_DRINK - الاطّلاع على الكيانات من دليل دمج الطعام قبل استخدام الكيانات العامة.
يعد حقل ContentCategory حقلاً اختياريًا وينبغي تركه فارغًا إذا كانت لا ينتمي المحتوى إلى أي من الفئات المذكورة أعلاه.
في حال توفير فئات محتوى متعددة، أدرِجها بالترتيب. مدى صلتها بالمحتوى مع إدراج فئة المحتوى الأكثر صلة أولاً في القائمة.
الخطوة 2: تقديم بيانات المجموعة
ننصحك بتنفيذ مهمة نشر المحتوى في الخلفية. (على سبيل المثال، استخدام WorkManager) وجدولتها بشكل منتظم أو على أساس حدث (على سبيل المثال، في كل مرة يفتح المستخدم التطبيق أو عندما يضيف المستخدم للتو شيئًا إلى سلة التسوق).
تقع على عاتق AppEngagePublishClient
مسؤولية نشر المجموعات.
تتوفّر واجهات برمجة التطبيقات التالية لنشر المجموعات في الجهاز العميل:
isServiceAvailable
publishRecommendationClusters
publishFeaturedCluster
publishContinuationCluster
publishUserAccountManagementRequest
updatePublishStatus
deleteRecommendationsClusters
deleteFeaturedCluster
deleteContinuationCluster
deleteUserManagementCluster
deleteClusters
isServiceAvailable
تُستخدم واجهة برمجة التطبيقات هذه للتحقق مما إذا كانت الخدمة متاحة للدمج ما إذا كان من الممكن عرض المحتوى على الجهاز أم لا.
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
تُستخدَم واجهة برمجة التطبيقات هذه لنشر قائمة تتضمّن عناصر RecommendationCluster
.
Kotlin
client.publishRecommendationClusters( PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build() ) .build() )
Java
client.publishRecommendationClusters( new PublishRecommendationClustersRequest.Builder() .addRecommendationCluster( new RecommendationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .setTitle("Top Picks For You") .build()) .build());
عندما تتلقى الخدمة الطلب، يتم تنفيذ الإجراءات التالية خلال معاملة واحدة:
- وستتم إزالة بيانات
RecommendationCluster
الحالية من الشريك المطوّر. - تحليل البيانات من الطلب وتخزينها في التوصية المعدّلة المجموعة.
في حالة حدوث خطأ، يتم رفض الطلب بأكمله وتكون الحالة الحالية هي وصيانته.
publishFeaturedCluster
تُستخدَم واجهة برمجة التطبيقات هذه لنشر قائمة تتضمّن عناصر FeaturedCluster
.
Kotlin
client.publishFeaturedCluster( PublishFeaturedClusterRequest.Builder() .setFeaturedCluster( FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
Java
client.publishFeaturedCluster( new PublishFeaturedClustersRequest.Builder() .addFeaturedCluster( new FeaturedCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
عندما تتلقى الخدمة الطلب، يتم تنفيذ الإجراءات التالية خلال معاملة واحدة:
- وستتم إزالة بيانات
FeaturedCluster
الحالية من الشريك المطوّر. - يتم تحليل البيانات من الطلب وتخزينها في "المجموعة المميزة" المعدّلة.
في حالة حدوث خطأ، يتم رفض الطلب بأكمله وتكون الحالة الحالية هي وصيانته.
publishContinuationCluster
تُستخدَم واجهة برمجة التطبيقات هذه لنشر عنصر ContinuationCluster
.
Kotlin
client.publishContinuationCluster( PublishContinuationClusterRequest.Builder() .setContinuationCluster( ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build())
Java
client.publishContinuationCluster( new PublishContinuationClusterRequest.Builder() .setContinuationCluster( new ContinuationCluster.Builder() .addEntity(entity1) .addEntity(entity2) .build()) .build());
عندما تتلقى الخدمة الطلب، يتم تنفيذ الإجراءات التالية خلال معاملة واحدة:
- وستتم إزالة بيانات
ContinuationCluster
الحالية من الشريك المطوّر. - يتم تحليل البيانات من الطلب وتخزينها في مجلد Continuation المعدّل المجموعة.
في حالة حدوث خطأ، يتم رفض الطلب بأكمله وتكون الحالة الحالية هي وصيانته.
publishUserAccountManagementRequest
تُستخدم واجهة برمجة التطبيقات هذه لنشر بطاقة تسجيل الدخول . يوجه إجراء تسجيل الدخول المستخدمين إلى صفحة تسجيل الدخول إلى التطبيق حتى يتمكن التطبيق من نشر المحتوى (أو تقديم المزيد من محتوى مخصّص)
البيانات الوصفية التالية هي جزء من بطاقة تسجيل الدخول:
السمة | المتطلب | الوصف |
---|---|---|
معرّف الموارد المنتظم (URI) الحركة | مطلوب | رابط لصفحة في التطبيق (أي الانتقال إلى صفحة تسجيل الدخول إلى التطبيق) |
صورة | اختياري - يجب توفير العنوان في حال عدم تقديمه |
الصورة المعروضة على البطاقة صور بنسبة عرض إلى ارتفاع تبلغ 16×9 بدقة 1264×712 |
العنوان | اختياري - يجب تقديم الصورة إذا لم يتم توفيرها | العنوان على البطاقة |
نص الإجراء | اختياري | النص المعروض في عبارة الحث على اتخاذ إجراء (أي تسجيل الدخول) |
العنوان الفرعي | اختياري | عنوان فرعي اختياري على البطاقة |
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());
عندما تتلقى الخدمة الطلب، يتم تنفيذ الإجراءات التالية خلال معاملة واحدة:
- بيانات
UserAccountManagementCluster
الحالية من الشريك المطوّر هي تمت إزالته. - يتم تحليل البيانات الواردة من الطلب وتخزينها في ملف المجموعة UserAccountManagementCluster.
في حالة حدوث خطأ، يتم رفض الطلب بأكمله وتكون الحالة الحالية هي وصيانته.
updatePublishStatus
وإذا لم يتم نشر أي من المجموعات لأي سبب داخلي للنشاط التجاري، فإننا ننصحك بشدة بتعديل حالة النشر باستخدام updatePublishStatus في واجهة برمجة التطبيقات. وهذا أمر مهم للأسباب التالية :
- توفير حالة المحتوى في جميع الحالات، حتى عند نشر المحتوى (الحالة == تم النشر)، أمر بالغ الأهمية لتعبئة لوحات البيانات التي تستخدم هذه والحالة الصريحة لتوضيح حالة الدمج والمقاييس الأخرى.
- إذا لم يتم نشر أي محتوى ولكن لم تكن حالة الدمج معطّلة (STATUS == NOT_HOSTED)، يمكن أن تتجنب 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 ننصحك بنشر بطاقة تسجيل الدخول إذا لم يتمكن مزودو الخدمة لأي سبب من لنشر بطاقة تسجيل الدخول، ننصحك بالاتصال واجهة برمجة التطبيقات updatePublishStatus مع رمز الحالة ليس_المنشور (NOT_HOSTED_REQUIRES_SIGN_IN)
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
تُستخدَم واجهة برمجة التطبيقات هذه لحذف محتوى مجموعات الاقتراحات.
Kotlin
client.deleteRecommendationClusters()
Java
client.deleteRecommendationClusters();
عندما تتلقّى الخدمة الطلب، تزيل البيانات الحالية من مجموعات الاقتراحات: في حالة حدوث خطأ، يتم رفض الطلب بأكمله يتم الحفاظ على الحالة الحالية.
deleteFeaturedCluster
يتم استخدام واجهة برمجة التطبيقات هذه لحذف محتوى "المجموعة المميزة".
Kotlin
client.deleteFeaturedCluster()
Java
client.deleteFeaturedCluster();
عندما تتلقّى الخدمة الطلب، تزيل البيانات الحالية من المجموعة المميزة. في حالة حدوث خطأ، يتم رفض الطلب بأكمله الاحتفاظ بحالته الحالية.
deleteContinuationCluster
يتم استخدام واجهة برمجة التطبيقات هذه لحذف محتوى مجموعة Continuation Cluster.
Kotlin
client.deleteContinuationCluster()
Java
client.deleteContinuationCluster();
عندما تتلقّى الخدمة الطلب، تزيل البيانات الحالية من مجموعة المتابعة في حالة حدوث خطأ، يتم رفض الطلب بأكمله يتم الحفاظ على الحالة الحالية.
deleteUserManagementCluster
يتم استخدام واجهة برمجة التطبيقات هذه لحذف محتوى مجموعة UserAccountManagement.
Kotlin
client.deleteUserManagementCluster()
Java
client.deleteUserManagementCluster();
عندما تتلقّى الخدمة الطلب، تزيل البيانات الحالية من المجموعة UserAccountManagement. في حالة حدوث خطأ، يتم التعامل مع الطلب بأكمله الرفض والحفاظ على الحالة الحالية.
deleteClusters
تُستخدَم واجهة برمجة التطبيقات هذه لحذف محتوى نوع مجموعة معيّن.
Kotlin
client.deleteClusters( DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build())
Java
client.deleteClusters( new DeleteClustersRequest.Builder() .addClusterType(ClusterType.TYPE_CONTINUATION) .addClusterType(ClusterType.TYPE_FEATURED) .addClusterType(ClusterType.TYPE_RECOMMENDATION) .build());
عندما تتلقى الخدمة الطلب، تزيل البيانات الحالية من المجموعات العنقودية المطابقة لأنواع المجموعات العنقودية المحددة. يمكن للعملاء اختيار تمرير أحد أو والعديد من أنواع المجموعات العنقودية. في حالة حدوث خطأ، يتم رفض الطلب بأكمله الاحتفاظ بحالته الحالية.
خطأ أثناء المعالجة
ننصحك بشدّة بالاستماع إلى نتيجة المَهمّة من واجهات برمجة التطبيقات الخاصة بالنشر، مثل يمكن اتخاذ إجراء متابعة لاسترداد مهمة ناجحة وإعادة إرسالها.
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 } } } });
يتم عرض الخطأ على أنّه 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: التعامل مع أهداف البث
وبالإضافة إلى إجراء طلبات البيانات من واجهة برمجة التطبيقات للمحتوى المنشور من خلال إحدى المهام، يتم أيضًا
مطلوبة لإعداد
BroadcastReceiver
لاستلام الإشعارات
طلب نشر المحتوى.
إنّ الهدف من أهداف البث هو بشكل أساسي إعادة تفعيل التطبيقات وفرض فرض البيانات. المزامنة. إنّ الأهداف المتعلقة بالبث ليست مصمّمة ليتم إرسالها بشكل متكرّر. إنه فقط يتم تشغيله عندما تحدد خدمة Engage أن المحتوى قد يكون قديمًا (على سبيل المثال منذ أسبوع مثلاً). بهذه الطريقة، تكون هناك ثقة أكبر في أنه يمكن للمستخدم تجربة محتوى جديدة، حتى إذا لم يتم تنفيذ التطبيق لفترة زمنية طويلة.
يجب إعداد جهاز BroadcastReceiver
بالطريقتَين التاليتَين:
- التسجيل ديناميكيًا لمثيل فئة
BroadcastReceiver
باستخدامContext.registerReceiver()
ويتيح ذلك التواصل من خلال التطبيقات. التي لا تزال حية في الذاكرة.
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 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)) }
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 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 SDK لمعرفة الأسئلة الشائعة
معلومات الاتصال
معلومات التواصل Engage-developers@google.com إذا كانت هناك لأي أسئلة أثناء عملية الدمج.
الخطوات التالية
بعد إكمال عملية الدمج هذه، ستكون خطواتك التالية هي التالية:
- إرسال رسالة إلكترونية إلى engagement-developers@google.com و إرفاق حِزمة APK المدمجة التي تكون جاهزة للاختبار من Google.
- تُجري Google عملية تحقق وتراجع المراجعات داخليًا للتأكد من أنّ والتكامل كما هو متوقع. إذا لزم الأمر، سيتواصل معك فريق Google. بأي تفاصيل ضرورية.
- عند اكتمال الاختبار وعدم الحاجة إلى إجراء أي تغييرات، تتواصل معك Google من أجل يمكنك بدء نشر حزمة APK المعدّلة والمتكاملة متجر Play.
- بعد أن تتأكد Google من نشر ملف APK المُعدَّل على "متجر Play" والاقتراح والمحتوى المميّز والمتابعة قد يتم نشر المجموعات العنقودية ومرئية للمستخدمين.