التوثيق · بوابة Apps Kit SDK

إدارة التطبيقات

تطبيقاتي (لوحة التحكم)

صفحة تطبيقاتي (/ أو /apps) هي الصفحة التي تظهر بعد تسجيل الدخول، والمركز الرئيسي لجميع التطبيقات التي يديرها فريقك.

1782302134914-MY_APPS_DASHBOARD_IMAGE.png

جدول التطبيقات. يعرض كل صف: رقمًا تسلسليًا، وأيقونة التطبيق (أو صورة رمزية بحرف إذا لم تُرفع أيقونة) مع اسمه ومعرّف الحزمة، والعلامة التجارية المسندة إليه، والمتجر (أيقونة منصة iOS/Android/Amazon)، وإصدار SDK الحالي (قابل للفرز)، ونقطة تبيّن حالة الإعدادات الافتراضية (خضراء مع عبارة "تمت الإضافة" إذا أُنشئت إعدادات افتراضية للتطبيق، ورمادية مع عبارة "لم تتم الإضافة" خلاف ذلك)، وتاريخ الإنشاء (قابل للفرز)، وعمود الإجراءات.

البحث والتصفية. يصفّي مربع البحث النتائج حسب الاسم أو الحزمة أثناء الكتابة. ويمكن الجمع بين البحث وعوامل تصفية منفصلة بقوائم منسدلة للعلامة التجارية والمتجر وإصدار SDK (عبر شريط التصفية). ويُستخدم للتنقل بين الصفحات تذييل مخصص يعرض "عرض X–Y من Z" مع محدد لعدد الصفوف في الصفحة وأزرار التنقل ⟨ ‹ › ⟩، بدلًا من أداة تقسيم الصفحات المدمجة في الجدول.

قائمة الإجراءات. تتيح قائمة النقاط الثلاث في كل صف خيارات تعديل وإنشاء نسخة وحذف، وفقًا لصلاحياتك (راجع حدود الخطة وصلاحيات العرض المشترك أدناه).

حدود الخطة والتطبيقات المقفلة. تحدد خطة اشتراكك الحد الأقصى لعدد التطبيقات التي يمكنك امتلاكها (maxApps). إذا تجاوز عدد تطبيقاتك الحالي هذا الحد — مثلًا بعد الانتقال إلى خطة أدنى — يظهر شريط تحذير كهرماني أعلى الصفحة بالنص: "لقد تجاوزت الحد المسموح للتطبيقات — تم استخدام X/Y من التطبيقات"، مع شريط تقدم صغير وزر ترقية الخطة يؤدي إلى صفحة الاشتراك.

1782302787888-MY_APPS_LOCKED_BANNER_IMAGE.png

عند تجاوز الحد، لا تختار البوابة التطبيقات التي ستقفلها عشوائيًا، بل تُبقي تطبيقاتك الأقدم (حسب تاريخ الإنشاء) متاحة للاستخدام حتى بلوغ حد خطتك، وتقفل كل تطبيق أُنشئ بعد ذلك. وتصبح قائمة الإجراءات للتطبيق المقفل محدودة الخيارات: عند النقر على زر النقاط الثلاث، لا يظهر سوى عنوان "مقفل" مع التوضيح "هذا التطبيق خارج حدود خطتك. احذفه لإتاحة مكان لتطبيق آخر"، بالإضافة إلى خيار "حذف التطبيق" باللون الأحمر إذا كانت لديك صلاحية الحذف. لا يتوفر خيارا تعديل وإنشاء نسخة للصفوف المقفلة؛ والطريقة الوحيدة لاستعادة الوصول إلى تطبيق مقفل هي حذف تطبيقات أخرى لإتاحة مكان له، أو ترقية خطتك.

زر الإنشاء. لا يمكن النقر على زر + إنشاء تطبيق إلا إذا كانت خطتك لا تزال تسمح بإضافة تطبيقات (canCreateApp()). وإذا بلغت الحد المسموح، يُستبدل الزر بمؤشر استخدام صغير ("تم استخدام X/Y من التطبيقات") ورابط "🔒 ترقية الخطة" يؤدي إلى صفحة الاشتراك.

العرض المشترك/عرض المتعاون. إذا كنت تعرض هذه الصفحة بعد التبديل إلى حساب آخر أو ضمن حساب مشترك (راجع قائمة الحساب أعلاه)، يجلب الجدول أيضًا صلاحياتك المحددة لذلك الحساب (عبر /rights/user-permissions) ويستخدمها للتحكم في إتاحة التعديل والحذف وإنشاء نسخة لكل صف. فقد تتمكن، مثلًا، من عرض التطبيقات وتعديلها دون حذفها، بحسب الصلاحيات التي منحك إياها مالك المورد.

إضافة تطبيق جديد

يؤدي النقر على + إنشاء تطبيق إلى فتح نموذج التطبيق في وضع "الإنشاء" ضمن نافذة منبثقة وسط الشاشة ذات تخطيط عمودي.

1782302898843-CREATE_APP_MODAL_IMAGE.png

الحقول:

  • الأيقونة — اختيارية. يظهر مربع رفع كبير في الأعلى يحمل عبارة "رفع صورة" حتى تختار ملفًا؛ والأنواع المقبولة هي JPEG وPNG وGIF.
  • المتجر — اختيار مطلوب باستخدام أزرار الاختيار: Apple App Store أو Google Play أو Amazon App Store (تُحمّل الخيارات ديناميكيًا من الخادم الخلفي، مع استخدام هذه الخيارات الثلاثة بديلًا إذا فشل الطلب).
  • الاسم — مطلوب، من 4 إلى 70 حرفًا.
  • معرّف الحزمة (Package / Bundle ID) — مطلوب، ويجب أن يبدأ بـ com. (يُتحقق منه باستخدام النمط com.*).
  • URL — مطلوب عند الإنشاء. يؤدي اختيار Google Play متجرًا إلى تعبئة https://play.google.com/store/apps/details?id={package} تلقائيًا؛ ويؤدي اختيار Apple App Store إلى تعبئة العنوان الأساسي https://apps.apple.com/ تلقائيًا. يمكنك تعديل URL يدويًا بعد التعبئة التلقائية، كما أن تغيير الحزمة أثناء اختيار Google Play يُبقي URL المعبّأ تلقائيًا متزامنًا معها.
  • العلامة التجارية — قائمة منسدلة بالعلامات التجارية الموجودة لديك.

يستدعي إرسال النموذج نقطة نهاية إنشاء التطبيق، ثم يُنشأ التطبيق دون إعداد أي شبكة وساطة إعلانية أو وحدات إعلانية؛ ويمكنك إعدادها بعد ذلك من داخل تفاصيل التطبيق. يؤدي النقر على إلغاء إلى إغلاق النافذة دون حفظ.

تعديل تطبيق أو إنشاء نسخة منه (النافذة السريعة)

يؤدي اختيار تعديل من قائمة إجراءات أحد الصفوف إلى فتح مكوّن النموذج نفسه في وضع "التعديل"، لكن بتخطيط أفقي مدمج من صف واحد بدلًا من تخطيط الإنشاء العمودي: الأيقونة (مع زر صغير على شكل قلم فوقها لاستبدالها)، والاسم، وحقل الحزمة للقراءة فقط، وحقل URL للقراءة فقط، والقائمة المنسدلة للعلامة التجارية، وزر الحفظ. يصبح حقلا الحزمة وURL للقراءة فقط بشكل دائم بعد إنشاء التطبيق (لا يمكنك تغيير معرّف حزمة التطبيق أو عنوانه في المتجر بعد الإنشاء؛ ويمكنك تغيير اسمه وأيقونته وعلامته التجارية فقط). يخضع هذا الصف للتحقق من صلاحية canUpdate، التي تُستمد في سياق الحساب المشترك/المتعاون من الصلاحيات الممنوحة لك على معلومات التطبيق.

1782304075424-EDIT_APP_ROW_IMAGE.png

يؤدي اختيار إنشاء نسخة إلى فتح نسخة ثانية من نموذج وضع الإنشاء، مع تعبئة الحقول مسبقًا من التطبيق الأصلي وإلحاق .copy باسم الحزمة لتجنب التعارض مع الأصل. يمكنك بعد ذلك تعديل ما تشاء (الاسم والأيقونة والعلامة التجارية) قبل حفظه كتطبيق جديد تمامًا. ولا تُنسخ إعدادات الوساطة الإعلانية أو الوحدات الإعلانية أو أي من إعدادات تفاصيل التطبيق الأخرى؛ بل تبدأ النسخة دون هذه الإعدادات، تمامًا مثل أي تطبيق جديد.

تفاصيل التطبيق

ينقلك فتح تطبيق (عبر تطبيقاتي ← تعديل، أو بالنقر على صف التطبيق نفسه) إلى تفاصيل التطبيق، وهي الصفحة الأكثر تعقيدًا في البوابة، ومنها تُضبط كيفية عمل SDK الفعلية لهذا التطبيق.

1782304315827-APP_DETAILS_OVERVIEW_IMAGE.png

وضع الإنتاج مقابل وضع التطوير. يتيح مفتاح تبديل أعلى الصفحة التنقل بالصفحة كاملة بين إعدادات الإنتاج (Live) والتطوير (Dev). يُضبط كل قسم أدناه — الوساطة الإعلانية، والوحدات الإعلانية، والمواضع، وخيارات العرض، وMMP، والترويج للميزات، والإعدادات — بشكل منفصل لكل وضع، مما يتيح لك تجهيز التغييرات واختبارها في وضع التطوير دون التأثير في الإعدادات الفعّالة حاليًا في تطبيقك المنشور. ويتيح زرا تطبيق إعدادات الإنتاج على التطوير وتطبيق إعدادات التطوير على الإنتاج نسخ إعدادات أحد الوضعين بالكامل إلى الآخر بإجراء واحد (وهو مفيد لنقل إعدادات تطوير مختبرة إلى الإنتاج، أو إعادة ضبط التطوير ليطابق الإنتاج قبل اختبار شيء جديد).

1782306938946-APP_DETAILS_LIVE_DEV_TOGGLE_IMAGE.png

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

تُنظّم بقية الصفحة في أقسام قابلة للتوسيع، بالترتيب التالي:

معلومات التطبيق

بيانات التعريف الأساسية للتطبيق: الاسم، ومعرّف الحزمة، والمتجر، والأيقونة، والعلامة التجارية المسندة إليه. وهي في الأساس الحقول نفسها الموجودة في نموذج إنشاء/تعديل التطبيق، وتُعرض هنا لتسهيل الوصول إليها.

1782307208052-APP_INFO_SECTION_IMAGE.png

اختيار الوساطة الإعلانية

اختر شبكة الوساطة الإعلانية المستخدمة لهذا التطبيق/الوضع (مثل شبكة تعمل بأسلوب الشلال الإعلاني، أو AppLovin MAX). وهذا الاختيار شرط لإتاحة الأقسام التالية: فحتى تختار شبكة وساطة هنا، تظل أقسام الوحدات الإعلانية ومواضع الإعلانات والوحدات الإعلانية للمواضع أدناه مقفلة، لأنها تعتمد على معرفة SDK الخاص بالشبكة وتنسيق وحداتها الإعلانية التي تُعدّ الإعدادات لها.

1782310845399-MEDIATION_SELECTION_IMAGE.png

إضافة وحدات إعلانية

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

1782311592620-ADD_AD_UNITS_IMAGE.png

مواضع الإعلانات

عرّف مواضع مسماة: وهي الأماكن المنطقية داخل تطبيقك أو لعبتك التي يمكن أن يظهر فيها إعلان (مثل "اكتمال المستوى" أو "بانر القائمة الرئيسية"). تُعرض هذه المواضع في شبكة مرقمة يمكنك إضافة عناصر إليها أو إعادة تسميتها. ولأن أسماء المواضع تحتاج عادةً إلى مطابقة الثوابت في الشيفرة المصدرية لتطبيقك، تدعم البوابة استيراد قائمة المواضع بالكامل وتصديرها كملف تعداد enum بلغة Kotlin (.kt)، مما يتيح إبقاء قاعدة الشيفرة وإعدادات البوابة متزامنتين دون إعادة الكتابة يدويًا.

1782311785860-AD_PLACEHOLDERS_IMAGE.png

الوحدات الإعلانية لمواضع الإعلانات

شبكة ربط تظهر فيها المواضع على أحد المحورين وأشكال الإعلانات (بيني / بانر / مدمج مع المحتوى / بمكافأة) على المحور الآخر. ولكل تقاطع، تختار الوحدة الإعلانية المحددة (من الوحدات المضافة أعلاه) التي ستُستخدم لعرض الإعلانات في ذلك الموضع.

ومن الجدير بالذكر أن الترويج المتبادل يظهر أيضًا خيارًا قابلًا للتحديد في هذه الشبكة إلى جانب وحدات شبكات الإعلانات الفعلية. ويعني اختياره لموضع معين أن ذلك الموضع لن يعرض أي إعلان مدفوع من شبكة إعلانية، بل سيعرض بدلًا منه مادة ترويجية لتطبيق آخر من تطبيقاتك، وفقًا لما أعددته ضمن الحملات. وهذه هي الآلية التي تربط ميزة الحملات بمواضع عرض الإعلانات الفعلية داخل تطبيقاتك.

1782367790413-AD_UNITS_FOR_PLACEHOLDERS_IMAGE.png

خيارات عرض الإعلانات

تحكّم في تجربة التحميل لكل شكل إعلاني: هل تريد إظهار مربع حوار للتحميل أو تأثير وميض أثناء جلب الإعلان، وما المهلة القصوى للانتظار قبل إيقاف المحاولة. وتتوفر للإعلانات البينية خيارات إضافية لمنطق تشغيلها تتجاوز مجرد توقيت العرض؛ إذ يمكنك اختيار تشغيلها عند النقر، أو بعد فاصل زمني، أو بالجمع بين الاثنين، أو بناءً على الانتقال بين المشاهد داخل التطبيق. ولكل وضع تشغيل معلماته القابلة للضبط (مثل الفاصل الزمني أو عدد النقرات).

1782368043152-AD_DISPLAY_OPTIONS_IMAGE.png

شاشات الاشتراك المدفوع لمواضع التطبيق

اربط أحد قوالب شاشات الاشتراك المدفوع لديك (المصممة ضمن ميزة قوالب شاشات الاشتراك المدفوع — راجع قسم شاشات الاشتراك المدفوع المخصص لاحقًا في هذا الدليل) مباشرةً بمواضع هذا التطبيق، حتى يعرف SDK أي شاشة يعرضها عندما يطلب تطبيقك ذلك.

1789744952981-app-details-paywalls-for-placeholders.png

يتحكم مفتاح مفعّل الرئيسي في تشغيل الميزة بالكامل أو إيقافها لهذا التطبيق. بعد تفعيلها، يربط كل صف شاشة اشتراك مدفوع واحدة بمواضع التطبيق (المعرّفة سابقًا ضمن مواضع الإعلانات) التي يجب أن تظهر فيها: ابحث عن الشاشة بالاسم، ثم استخدم + إضافة موضع لربط موضع واحد أو أكثر بها. ويظهر كل موضع مرتبط على شكل وسم قابل للإزالة مع شارة عدد صغيرة. ولا يمكن ربط الموضع إلا بشاشة اشتراك مدفوع واحدة في كل مرة؛ وإسناده إلى شاشة أخرى يزيله تلقائيًا من الشاشة السابقة.

بخلاف بقية تفاصيل التطبيق، لا يرتبط هذا الربط تحديدًا ارتباطًا صارمًا بوضع الإنتاج أو التطوير المحدد أعلى الصفحة. فالتطبيق المثبّت فعليًا لا يحمل هوية "إنتاج" أو "تطوير" خاصة به؛ وهذا التمييز مجرد وسيلة إدارية لتسهيل تجهيز الإعدادات. لذا، بمجرد ربط شاشة اشتراك مدفوع بموضع في أيٍّ من الوضعين وحفظه، يمكن للأجهزة الفعلية العثور على هذا الربط واستخدامه؛ ولا تحتاج إلى تكرار الربط نفسه في الوضع الآخر لمجرد إتاحته في بيئة الإنتاج.

اختيار MMP

اربط شريك قياس الأجهزة المحمولة (MMP) — وتشمل الخيارات Adjust وAppsFlyer وFirebase وCost Center وSolar Engine — وفعّل أو عطّل الإبلاغ عن إيرادات الإعلانات لكل شكل إعلاني على حدة، لتصل أحداث إيرادات الإعلانات إلى منظومة الإسناد والتحليلات لديك إلى جانب بقية بيانات التثبيت والتفاعل.

1782368201027-MMP_SELECTION_IMAGE.png

الترويج للميزات

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

1782368590227-FEATURE_PROMOTION_IMAGE.png

الإعدادات

خيارات متنوعة على مستوى التطبيق لا تندرج ضمن الأقسام الأخرى: تفعيل سجلات وحدة التحكم لتصحيح الأخطاء، وتفعيل تسجيل أحداث الإعلانات، وهامش فرق الوقت المسموح به للإشعارات المحلية، وعناوين URL لسياسة الخصوصية وشروط الخدمة الخاصة بالتطبيق (التي تشترط بعض شبكات الإعلانات ومتاجر التطبيقات إظهارها).

1782368745664-SETTINGS_SECTION_IMAGE.png

الحصول على الإعدادات

يؤدي النقر على الحصول على الإعدادات إلى إنشاء سلسلة نصية مشفّرة تمثل جميع الإعدادات التي ضبطتها أعلاه، للوضع النشط حاليًا (الإنتاج أو التطوير). وإذا حددت مجموعة مناطق في محدد المناطق بترويسة تفاصيل التطبيق، يتضمن الرابط/السلسلة النصية الناتجة معرّف تلك المجموعة كمعلمة استعلام، مما يتيح اختلاف الإعدادات التي تُجلب وقت التشغيل باختلاف مجموعة المناطق. وترشدك البوابة أيضًا إلى نشر هذه السلسلة النصية عبر Firebase Remote Config تحت مفتاح المعلمة AKS_AND_LIVE؛ فهذه هي الطريقة التي يحصل بها تطبيقك المنشور فعليًا على الإعدادات وقت التشغيل، لأن البوابة نفسها لا تدفع الإعدادات مباشرةً إلى أجهزة المستخدمين النهائيين.

1782370741995-GET_CONFIGURATION_IMAGE.png

سجل التغييرات

في كل مرة تُحفظ فيها إعدادات التطبيق، يُسجّل إصدار إعدادات جديد. يعرض سجل التغييرات (صفحة مخصصة تصل إليها من الرابط في تفاصيل التطبيق) جميع إصدارات ذلك التطبيق في جدول يتضمن: رقمًا تسلسليًا، وإصدار الإعدادات، ووصفًا لما تغير (تُفصل الأوصاف الطويلة داخليًا بالشرطة العمودية وتُعرض في أسطر منفصلة، مع اختصارها بعد أول 20 حرفًا وإتاحة خيار "عرض المزيد / عرض أقل")، وتاريخ التحديث، ومن أجرى التحديث. ويتيح عامل تصفية للنطاق الزمني أعلى الصفحة حصر القائمة في فترة محددة. ويوفر لك ذلك سجل تدقيق أساسيًا يوضح من غيّر إعدادات التطبيق ومتى.

1782370885084-CHANGE_HISTORY_IMAGE.png

تمت مشاركته معي

إذا دعاك فريق آخر للتعاون في تطبيقاته وقبلت الدعوة، تظهر تلك الموارد المشتركة ضمن تمت مشاركته معي (/SharedWithMe)؛ وهو جدول للدعوات التي تلقيتها، منفصل عن التطبيقات التي يملكها فريقك. يعرض كل صف صاحب الدعوة وحالتها الحالية.

1782385376888-SHARED_WITH_ME_PAGE_IMAGE.png

من هنا يمكنك قبول دعوة معلّقة أو رفضها. يستدعي كلا الإجراءين نقطة نهاية معالجة الدعوات نفسها مع تمرير القرار المناسب. وبعد القبول، يظهر صاحب الدعوة في القائمة المنسدلة لتبديل الحسابات (الموضحة أعلاه)، لتتمكن من الانتقال إلى حسابه والعمل ضمن الصلاحيات التي منحك إياها.

إذا وصلت إلى هذه الصفحة عبر رابط إشعار يحتوي على معلمة الاستعلام ?invitationId=، تُفتح نافذة الدعوة تلقائيًا عند تحميل الصفحة بدلًا من الاضطرار إلى البحث عن الصف بنفسك.

نافذة الدعوة. تعرض هذه النافذة المنبثقة البريد الإلكتروني للحساب الداعي داخل وسم أعلى النافذة، مع عنوان وأيقونة يعتمدان على الحالة: أيقونة هدية للدعوة المعلّقة، وعلامة صح للدعوة التي سبق أن قبلتها، وعلامة X للدعوة المرفوضة، وساعة للدعوة المنتهية الصلاحية. وأسفل ذلك تظهر قائمة قابلة للتمرير بعنوان "الوصول إلى N من الموارد"؛ ويعرض كل صف عنصرًا نائبًا لأيقونة التطبيق، واسم المورد (مثل "التطبيقات" أو "معلومات التطبيق"، بعد تنسيقه من مفتاح الصلاحية الأساسي)، وشارات بمحاذاة اليمين تبيّن الصلاحيات التي ستحصل عليها لهذا المورد (قراءة / إنشاء / تحديث / حذف). وإذا كان للدعوة تاريخ انتهاء صلاحية، يظهر سطر تحذير يوضحه.

1782385507708-INVITATION_DIALOG_IMAGE.png

تعتمد أزرار التذييل على الحالة: تعرض الدعوة المعلّقة زري "ليس الآن" و**"✓ قبول الدعوة"**؛ أما الدعوة التي سبق الرد عليها أو انتهت صلاحيتها، فتعرض زر "إغلاق" فقط، مع نص توضيحي (للدعوة المنتهية الصلاحية، مثل "يُرجى مطالبة {البريد الإلكتروني لصاحب الدعوة} بإرسال دعوة جديدة").