مواعدة حزمة تطوير البرامج (SDK) للتفاعل: تعليمات الدمج الفني التابع لجهة خارجية

تنشئ Google سطحًا على الجهاز ينظم بيانات المستخدمين التطبيقات حسب المجالات وتوفّر تجربة غامرة جديدة لاستهلاك محتوى التطبيق المخصَّص والاكتشاف. توفِّر تجربة ملء الشاشة هذه للشركاء من المطوّرين فرصة لعرض أفضل المحتوى الوافي في قناة مخصصة خارج عن التطبيق.ويحتوي هذا الدليل على تعليمات للشركاء من المطوّرين دمج محتوى المواعدة الخاص بهم، باستخدام حزمة تطوير البرامج (SDK) الخاصة بالتفاعل مع هذه التطبيقات ومساحة السطح.

تفاصيل عملية الدمج

المصطلحات

تشمل عملية الدمج هذه أنواع المجموعات الثلاثة التالية: الاقتراح مميزة، ومتابعة.

  • تعرض مجموعات الاقتراحات اقتراحات مواعدة مخصّصة. من شريك مطور فردي. يمكن تنفيذ هذه الاقتراحات المخصصة للمستخدم.

    • يمكن أن تتألف مجموعة الاقتراحات من ArticleEntity أو PersonEntity أو EventEntity ولكن ليس مزيجًا من أنواع مختلفة من الكيانات.

    تأخذ توصياتك البنية التالية:

    • مجموعة الاقتراحات: طريقة عرض لواجهة مستخدم تحتوي على مجموعة من الاقتراحات من شريك المطوّرين نفسه

    • الكيان: هو كائن يمثّل عنصرًا واحدًا في مجموعة. هذا النمط التكامل يقدم بعض الكيانات التي ستظهر باستخدام مجموعة الاقتراحات:

      • ArticleEntity: يمثل ArticleEntity توصية بشأن المحتوى النصي المرتبط بالمواعدة عنصر ArticleEntity تتيح للمطوّرين تقديم مجموعة متنوّعة من المحتوى النصي والصور بمزيد من بيانات التعريف لتوضيح المعلومات للمستخدمين.

        الشكل 1: واجهة مستخدم تعرض كيان مقالة واحدًا ضمن مجموعة الاقتراحات.
      • كيان الشخص: يمثل الكيان الشخصي شخصًا. تشير رسالة الأشكال البيانية حقًا، تسليط الضوء على شخص في مرحلة المواعدة والعملاء المحتملين.

        الشكل 2: واجهة مستخدم تعرض كيان شخص واحدًا داخل يتم تجميع التوصيات.
      • EventEntity: يمثل EventEntity حدثًا في المستقبلية. وقت بدء الحدث هو جزء مهم من المعلومات يجب نقله إلى المستخدمين.

        الشكل 3: واجهة مستخدم تعرض كيان حدث واحدًا ضمن مجموعة التوصيات.
  • تعرض مجموعة المتابعة المحتوى الذي تفاعل معه المستخدمون مؤخرًا من عدّة شركاء مطوّرين في مجموعة واحدة من واجهة المستخدم كل شريك مطوِّر سنسمح لهم ببث 10 كيانات كحدّ أقصى خلال مرحلة المتابعة. تجميع.

    يمكن أن يتخذ المحتوى اللاحق البنية التالية:

    • ArticleEntity: يمثل ArticleEntity توصية بشأن المحتوى النصي المرتبط بالمواعدة يمكن استخدام هذا الكيان تمثّل مقالات إخبارية غير مكتملة أو محتوى آخر قد يستخدمه الاستمرار في استخدامه من حيث تركوه.

      الشكل 6. واجهة مستخدم تعرض عنصر ArticleEntity واحدًا داخل مجموعة استمرارية.
    • EventBookEntity: يمثل EventserveEntity. الحجز لأحد الأحداث ويساعد المستخدمين على تتبع الأحداث القادمة أو الجارية حجوزات أحداث المواعدة واللقاءات.

      الشكل 8. واجهة مستخدم تعرض صورة واحدة EventserveEntity ضمن مجموعة متابعة.
  • المجموعة مميزة هي طريقة عرض واجهة مستخدم تُظهر البطل الذي تم اختياره GenericFeaturedEntity من العديد من الشركاء المطوّرين في مجموعة واحدة من واجهة المستخدم هناك مجموعة عنقودية واحدة مميزة، تظهر بالقرب من أعلى مجموعة واجهة مستخدم لها موضع أولوية أعلى من كل مجموعات الاقتراحات على كل يُسمح لشريك المطوّرين ببث كيان واحد من منصة متوافقة مميزة، مع العديد من الكيانات (التي يحتمل أن تكون من أنواع مختلفة) من العديد من مطوري تطبيقات في المجموعة "المميزة".

    • publicFeaturedEntity: يختلف عن GenericFeaturedEntity عن يجب استخدام بند التوصية في هذا العنصر المميز لعنصر المحتوى الأكثر رواجًا من المطوّرين، ويجب أن يمثّل المحتوى محتوى مهم سيكون مثيرًا للاهتمام وذا صلة بالمستخدمين.

      الشكل 12: واجهة مستخدم تعرض "مجموعة مميّزة" مع قائمة بالكيانات المميزة العامة

المرحلة التمهيدية

الحد الأدنى لمستوى واجهة برمجة التطبيقات: 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 كيانات مختلفة لتمثيل كل نوع من أنواع العناصر. نحن ندعم الكيانات التالية لفئة التعارف:

  1. GenericFeaturedEntity
  2. ArticleEntity
  3. PersonEntity
  4. EventEntity
  5. 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 حرفًا

فئات المحتوى اختياري قدِّم وصفًا لفئة المحتوى في العنصر.

قائمة التعدادات المؤهَّلة

  • TYPE_HEALTH_AND_FITENESS (مثال - مدرّب يوغا/لياقة بدنية)
  • TYPE_home_AND_auto (مثال - سباك)
  • TYPE_SPORTS (مثال - مشغّل)
  • الكتابة

يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات

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 حرفًا (النص الطويل جدًا) قد تظهر علامات حذف)

فئات المحتوى اختياري قدِّم وصفًا لفئة المحتوى في العنصر.

قائمة التعدادات المؤهَّلة

  • TYPE_UPDATES_AND_TV_SHOWS (مثال - سينما)
  • TYPE_DIGITAL_GAMES (مثال - الرياضة الإلكترونية)
  • TYPE_MUSIC (مثال - حفلة موسيقية)
  • TYPE_TRAVEL_AND_LOCAL (مثال - جولة، مهرجان)
  • TYPE_HEALTH_AND_FITENESS (مثال - حصة يوغا)
  • TYPE_EDUCATION (مثال - الصف)
  • TYPE_SPORTS (مثال - لعبة كرة قدم)
  • TYPE_DATABLE (مثال - لقاء)

يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات

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، بحيث لا تم اقتطاعه على أحجام العرض الأصغر.

سلسلة
التقييم - قيمة العدد اختياري

تمثّل هذه السمة عدد التقييمات الخاصة بالحدث.

ملاحظة: يُرجى إدخال هذا الحقل إذا كنت لا تريد التعامل مع هذا الحقل. منطق عرض اختصار العرض بنفسك. إذا كانت قيمة العدّ والعدد موجودة، سنستخدم العدد لعرضه للمستخدمين

الصيغة الطويلة
فئات المحتوى اختياري قدِّم وصفًا لفئة المحتوى في العنصر.

قائمة التعدادات المؤهَّلة

  • TYPE_UPDATES_AND_TV_SHOWS (مثال - سينما)
  • TYPE_DIGITAL_GAMES (مثال - الرياضة الإلكترونية)
  • TYPE_MUSIC (مثال - حفلة موسيقية)
  • TYPE_TRAVEL_AND_LOCAL (مثال - جولة، مهرجان)
  • TYPE_HEALTH_AND_FITENESS (مثال - حصة يوغا)
  • TYPE_EDUCATION (مثال - الصف)
  • TYPE_SPORTS (مثال - لعبة كرة قدم)
  • TYPE_DATABLE (مثال - لقاء)

يُرجى الاطّلاع على قسم "فئة المحتوى". للحصول على إرشادات

مواصفات الصور

يتضمّن هذا الجدول المواصفات المطلوبة لمواد عرض الصور:

نسبة العرض إلى الارتفاع الحد الأدنى لعدد وحدات البكسل وحدات البكسل المقترَحة

مربّع (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 من الوصول إليها. معهم.

إرشادات حول استخدام فئات المحتوى

  1. تكون بعض الكيانات مثل ArticleEntity وGenericFeaturedEntity مؤهلاً لاستخدام أي من فئات المحتوى. بالنسبة لكيانات أخرى مثل EventEntity أو EventBookEntity أو PersonEntity أو مجموعة فرعية فقط من هذه الفئات مؤهلة. التحقق من قائمة الفئات المؤهلة نوع الكيان قبل تعبئة القائمة.
  2. استخدِم نوع الكيان المعيّن لبعض فئات المحتوى بدلاً من تركيبة. الكيانات العامة وContentCategory:

    • TYPE_AVERAGES_AND_TV_SHOWS - اطلع على الكيانات من مشاهدة دليل الدمج قبل استخدام الكيانات العامة.
    • TYPE_BOOKS - اطلع على EbookEntity قبل استخدام الكيانات العامة.
    • TYPE_AUDIOBOOKS - الاطلاع على كيان الكتاب المسموع قبل باستخدام الكيانات العامة.
    • TYPE_SHOPPING - تسجيل المغادرة ShoppingEntity قبل باستخدام الكيانات العامة.
    • TYPE_FOOD_AND_DRINK - الاطّلاع على الكيانات من دليل دمج الطعام قبل استخدام الكيانات العامة.
  3. يعد حقل ContentCategory حقلاً اختياريًا وينبغي تركه فارغًا إذا كانت لا ينتمي المحتوى إلى أي من الفئات المذكورة أعلاه.

  4. في حال توفير فئات محتوى متعددة، أدرِجها بالترتيب. مدى صلتها بالمحتوى مع إدراج فئة المحتوى الأكثر صلة أولاً في القائمة.

الخطوة 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" والاقتراح والمحتوى المميّز والمتابعة قد يتم نشر المجموعات العنقودية ومرئية للمستخدمين.