عندما يتعارض نموذج Data safety مع سياسة الخصوصية لتطبيقك
إقراران عن التطبيق نفسه يُقرآن جنبًا إلى جنب، ويُكتبان عادةً بفارق أشهر. ما كلٌّ منهما، وأين يفترقان، وكيف توفّق بينهما انطلاقًا من قائمة الاعتماديات.
هما وصفان للتطبيق نفسه، والمتجران يقرآنهما معًا، لذا فإن التعارض بينهما هو المشكلة بحد ذاته. أصلحه انطلاقًا من التطبيق لا من أيٍّ من المستندين: اسرد كل SDK في البناء (build) الخاص بك، ودوّن ما يرسله كلٌّ منها، ثم املأ النموذج وأعد كتابة السياسة من تلك القائمة الواحدة.
أنجز هذا في دقائق بدلًا من ذلك
تستضيف AppFoyer الصفحات التي يتناولها هذا الدليل — سياسة الخصوصية والشروط والدعم وحذف الحساب وapp-ads.txt — على نطاق فرعي خاص بها، دون نطاق أو خادم خاص بك. تطبيق واحد مجاني، ولا شيء يشترطه المتجر يكون خلف جدار دفع أبدًا.
تمت المراجعة في 19 سبتمبر 2026. تتغير سياسات المتاجر، أحيانًا دون إشعار. كل ما يلي يربط بالتوثيق الرسمي، وتلك الصفحة — لا هذه — هي المرجع. إذا تعارضتا، فالمتجر هو المحق. هذا الدليل مترجم من الإنجليزية؛ والاقتباسات من توثيق المتاجر محفوظة بالإنجليزية الأصلية.
نموذج Data safety وسياسة الخصوصية لتطبيقك وصفان للتطبيق نفسه، والمتجران يقرآنهما معًا. وعندما يتعارضان، يكون التعارض نفسه هو المشكلة، لا أيّهما تصادف أنه الخاطئ. يقول Google Play ذلك بوضوح: “When Google becomes aware of a discrepancy between your app behavior and your declaration, we may take appropriate action, including enforcement action.” (ترجمة: «عندما تعلم Google بوجود تعارض بين سلوك تطبيقك وإقرارك، فقد نتخذ الإجراء المناسب، بما في ذلك إجراءات الإنفاذ».)
ولدى Apple البنية نفسها بأسماء مختلفة: تفاصيل App Privacy في صفحة منتجك، إضافةً إلى رابط سياسة الخصوصية المطلوب.
تتناول هذه الصفحة إبقاء الاثنين متوافقين، والشيء الثالث الذي يُقارَن به كلاهما: ما يفعله تطبيقك فعلًا.
المستندان باختصار
نموذج Data safety (Play Console → App content) وتفاصيل App Privacy (App Store Connect) إقراران منظّمان: مربعات اختيار وفئات، تُعرض في صفحة تطبيقك في المتجر (store listing) كملخّص يقرؤه المستخدم قبل التثبيت. إنها إجابات عن استبيان ثابت.
سياسة الخصوصية نصّ نثري على رابط تستضيفه أنت. تقول الأشياء نفسها بجمل كاملة، إضافةً إلى ما لا يوجد له مربع في أي استبيان: أساسك القانوني، ومدة الاحتفاظ بالبيانات، وجهة الاتصال، وكيفية طلب الحذف.
لا يغني أحدهما عن الآخر. السياسة لا تملأ النموذج، والنموذج المكتمل لا يعني أن سياستك دقيقة.
أين يفترقان
يُكتبان بفارق أشهر. تُكتب السياسة في أسبوع الإطلاق. ويُملأ النموذج يوم الإرسال، على يد شخص يقرأ قائمة الاعتماديات، ولا يعود أحد إلى السياسة.
تصل SDK جديدة. تضيف أداة للإبلاغ عن الأعطال خلال دورة عمل (sprint). لا شيء في طلب الدمج (pull request) يخصّ السياسة أو النموذج، فلا يتغيّر أيٌّ منهما. ويوضّح Google Play أن هذا محسوب: جمع البيانات “includes data collected and handled through any third-party libraries or SDKs used in their apps… You must reflect data collection or sharing carried out by such third-party code in the Data safety form for your app.” (ترجمة: «يشمل البيانات التي تُجمع وتُعالج عبر أي مكتبات أو SDK تابعة لأطراف ثالثة مستخدمة في تطبيقاتهم… يجب أن تعكس جمع البيانات أو مشاركتها الذي تقوم به هذه الشيفرة التابعة لأطراف ثالثة في نموذج Data safety لتطبيقك».) وتطلب Apple الأمر نفسه: “You need to identify all of the data you or your third-party partners collect.” (ترجمة: «عليك تحديد جميع البيانات التي تجمعها أنت أو شركاؤك من الأطراف الثالثة».)
تُطلق ميزة دون الإفصاح عنها. الموقع لميزة «ابحث عن القريب»، أو نظام إحالة يشارك معرّف المستخدم مع شريك. العمل الهندسي ظاهر، أما عمل الإقرار فليس على لوحة مهام أحد.
استُخدم قالب لأحدهما. سياسة مولَّدة تذكر معرّفات الإعلانات لتطبيق بلا إعلانات هي عدم تطابق بقدر ما هو الإغفال، وهي الأسهل اكتشافًا، لأنها تناقض نموذجًا ملأته بصدق.
التوفيق بينهما، بالترتيب الوحيد الذي ينجح
ابدأ من التطبيق، لا من أيٍّ من المستندين. كلاهما يُفترض أن يصفه، لذا فإن إصلاح أحدهما مقارنةً بالآخر لا يفعل سوى نقل الخطأ.
- افتح ملفات الاعتماديات:
build.gradle/libs.versions.toml، وPodfile/Package.swift، وpubspec.yaml، وpackage.json. اسرد كل SDK تابعة لطرف ثالث. - لكلٍّ منها، دوّن ما ترسله. أداة الإبلاغ عن الأعطال ترسل معرّفات الجهاز وتتبّعات المكدّس (stack traces). وSDK التحليلات ترسل أحداثًا وغالبًا معرّف إعلانات. وSDK الإعلانات ترسل أكثر من ذلك بكثير. ومكتبة الإشعارات تسجّل رمز الجهاز (device token). ووثائق الخصوصية الخاصة بالمورّد نفسه هي المصدر هنا.
- أضف ما تجمعه أنت: الحسابات، والملفات المرفوعة، وأي شيء تخزّنه الواجهة الخلفية لديك.
- راجع الأذونات ونصوص الاستخدام التي تعلنها، فهي قائمة ثانية مستقلة لما يستطيع التطبيق الوصول
إليه:
ACCESS_FINE_LOCATION، وNSLocationWhenInUseUsageDescription، والكاميرا، وجهات الاتصال، والصور. - الآن املأ النموذج من تلك القائمة، وأعد كتابة السياسة من القائمة نفسها. سيتوافقان في النهاية لأنهما جاءا من مصدر واحد، لا لأنك قارنت بينهما.
تلك القائمة، لا النموذج، هي ما ينبغي إبقاؤه محدّثًا. فكلا الإقرارين مشتقّ منها.
إبقاؤهما متوافقين بعد ذلك
تتقادم الإقرارات بصمت، لذا يجب ربط الفحص بشيء لا يتقادم بصمت. يشترط Google Play ذلك: “Your Data safety form responses must remain accurate and complete at all times.” (ترجمة: «يجب أن تظل إجاباتك في نموذج Data safety دقيقة وكاملة في جميع الأوقات».) وكذلك Apple: “You’re responsible for keeping your responses accurate and up to date.” (ترجمة: «أنت مسؤول عن إبقاء إجاباتك دقيقة ومحدّثة».)
أرخص طريقة ناجحة هي سطر في قائمة مراجعة الإصدار: هل تغيّرت أي اعتمادية في هذا الإصدار؟ إن كان كذلك، فأعد مراجعة السياسة والنموذج، لأن تغيّر الاعتمادية هو بالضبط الحدث الذي يُبطل كليهما.
ما لا تستطيع هذه الصفحة إخبارك به
أيّ نظام قانوني بعينه ينطبق عليك. فكلٌّ من GDPR وUK GDPR وCCPA/CPRA وLGPD وقواعد خصوصية الأطفال يتوقّع أمورًا محددة في السياسة، وأيّها ينطبق يعتمد على مكان مستخدميك وما يفعله تطبيقك. إذا كان في تطبيقك أي شيء غير مألوف (بيانات صحية، أطفال، أي شيء تتردّد في شرحه بجملة واحدة) فهذا يستحق ساعة من وقت محامٍ. القوالب، بما فيها قوالبنا، نقطة انطلاق وليست استشارة.
ما تفعله AppFoyer هنا
نصوغ مسودة سياسة الخصوصية من الـ SDK الموجودة في ملفات البناء لديك، عبر وكيل برمجة يقرأ المستودع، أو من نموذج قصير، بحيث تأتي السياسة والإجابات التي تقدّمها للمتجرين من قائمة الاعتماديات نفسها لا من الذاكرة. وتظل قائمة التحقق تنبّه إلى الصفحة إلى أن يُستبدل العنصر النائب الذي يسمّي الأطراف الثالثة، لأن ذلك القسم هو ما يقارنه المراجع بنموذجك.
لا نملأ نموذج Data safety نيابةً عنك، ولا تستطيع أي خدمة ذلك: إنه إقرار توقّعه في وحدة التحكم الخاصة بك، ويقول Google Play: “you alone are responsible for making complete and accurate declarations.” (ترجمة: «أنت وحدك المسؤول عن تقديم إقرارات كاملة ودقيقة».)
المصادر الرسمية
- Provide information for Google Play’s Data safety section — مساعدة Google Play Console
- App privacy details on the App Store — Apple
- Privacy policy requirements — مساعدة Google Play