كيف تملأ نموذج Data safety في Google Play وتفاصيل App Privacy في Apple
ما يسأل عنه كل استبيان، وكيف تغيّر الـ SDK لديك الإجابات، والأسئلة الثلاثة التي يخطئ فيها الناس، وأين ينشر كل مورّد الإجابات التي تحتاج إليها.
اسرد كل SDK في البناء (build) الخاص بك، وافتح صفحة الإفصاح الخاصة بكل مورّد أو بيان الخصوصية (privacy manifest) الخاص به، وأضف ما تجمعه أنت، مثل الحسابات. ثم أجب عن الاستبيانين من تلك القائمة الواحدة. يسأل Play عمّا يُجمع ويُشارَك ولماذا. وتسأل Apple الشيء نفسه، إضافةً إلى ما إذا كان كل نوع مرتبطًا بالمستخدم ومستخدمًا للتتبّع.
أنجز هذا في دقائق بدلًا من ذلك
تستضيف AppFoyer الصفحات التي يتناولها هذا الدليل — سياسة الخصوصية والشروط والدعم وحذف الحساب وapp-ads.txt — على نطاق فرعي خاص بها، دون نطاق أو خادم خاص بك. تطبيق واحد مجاني، ولا شيء يشترطه المتجر يكون خلف جدار دفع أبدًا.
تمت المراجعة في 25 سبتمبر 2026. تتغير سياسات المتاجر، أحيانًا دون إشعار. كل ما يلي يربط بالتوثيق الرسمي، وتلك الصفحة — لا هذه — هي المرجع. إذا تعارضتا، فالمتجر هو المحق. هذا الدليل مترجم من الإنجليزية؛ والاقتباسات من توثيق المتاجر محفوظة بالإنجليزية الأصلية.
أعدّ قائمة واحدة بما يرسله تطبيقك خارج الجهاز، بما في ذلك الـ SDK، وأجب عن الاستبيانين منها. نموذج Data safety في Google Play وتفاصيل App Privacy في Apple يسألان عن الحقائق نفسها بكلمات مختلفة. وعندما تأتي إجاباتك من ذاكرتين منفصلتين، فإنها تفترق.
يجب على كل تطبيق في Google Play إكمال نموذج Data safety، بما في ذلك التطبيق الذي لا يجمع شيئًا. والمستثناة فقط هي التطبيقات المنشورة على مسارات الاختبار الداخلي (مساعدة Data safety في Google Play). وتطلب Apple تفاصيل App Privacy لكل تطبيق في App Store (تفاصيل App Privacy من Apple).
أين توجد النماذج
- Google Play: Play Console ← تطبيقك ← App content ← Data safety.
- App Store: App Store Connect ← تطبيقك ← App Privacy.
الخطوة 1: أعدّ القائمة
- كل SDK تابعة لطرف ثالث. اقرأ ملفات الاعتماديات:
build.gradle/libs.versions.toml، وPodfile/Package.swift، وpubspec.yaml، وpackage.json. يعدّ كلا المتجرين ما تجمعه الـ SDK ملكًا لك. وتحمّلك Apple المسؤولية عن كل الشيفرة في تطبيقك، بما فيها الشيفرة التي لم تكتبها. - ما ترسله كلٌّ منها. استخدم صفحة المورّد نفسه. بعض المورّدين ينشرون إجاباتهم بمفردات Play نفسها،
ومنهم RevenueCat وUnity Ads وOneSignal. وتنشر Google جداول لـ AdMob ولكل منتج من منتجات Firebase.
وعلى iOS، تأتي معظم الـ SDK الحالية مع بيان خصوصية (
PrivacyInfo.xcprivacy). في Xcode، افتح Organizer، وانقر بزر الفأرة الأيمن على أرشيف واختر Generate Privacy Report لترى كل بيان في البناء الخاص بك في صفحة واحدة (وثائق Apple عن privacy manifest). - ما تجمعه أنت. الحسابات (البريد الإلكتروني، معرّف المستخدم)، وأي شيء تخزّنه الواجهة الخلفية لديك، والموقع الذي تقرؤه شيفرتك أنت، وسجلات الشراء التي يحتفظ بها خادمك.
بعض المورّدين لا ينشرون شيئًا. فليس لدى AppLovin قائمة بأنواع البيانات لأيٍّ من المتجرين، وعدة SDK للتحليلات ليس لها تطابق مع Play. لهذه، اقرأ وثائق الـ SDK نفسها عمّا ترسله ودوّن الفجوة. لا تخمّن.
الخطوة 2: أسئلة Google Play
لكل نوع من البيانات، يسأل Play:
- Collected أم Shared أم كلاهما؟ «Collected» (مُجمَّعة) تعني أنها أُرسلت خارج الجهاز. و«Shared» (مُشارَكة) تعني أنها أُرسلت إلى طرف ثالث. مزوّد الخدمة الذي يعالج البيانات نيابةً عنك لا يُعدّ مشاركة، ولا البيانات المجهّلة تمامًا. ولهذا تكون Firebase Analytics عادةً «collected, not shared»، وSDK الإعلانات عادةً «collected and shared».
- Processed ephemerally؟ (معالجة عابرة) فقط إذا كانت البيانات تُحفظ في الذاكرة مدة تكفي لخدمة ذلك الطلب الواحد فقط، مثل موقع يُرسل لجلب حالة الطقس ولا يُخزَّن.
- Required أم Optional؟ Optional (اختيارية) تعني أن المستخدم يستطيع أن يختار ما إذا كانت تُجمع.
- لماذا؟ أغراض Play هي: App functionality، وAnalytics، وDeveloper communications، وAdvertising or marketing، وFraud prevention, security, and compliance، وPersonalization، وAccount management. ولكلٍّ من الجمع والمشاركة أغراضه الخاصة.
ثم سؤالان عن الأمان. هل جميع بيانات المستخدم مشفّرة أثناء النقل؟ وحدك من يستطيع التحقق من ذلك. نقطة
نهاية واحدة بصيغة http:// عادية تجعل الإجابة No. هل يستطيع المستخدمون طلب الحذف؟ يمكنك الإجابة
Yes إذا كنت توفّر طريقة لطلبه، أو إذا كنت تحذف البيانات تلقائيًا خلال 90 يومًا.
إذا كان تطبيقك يسمح للمستخدمين بإنشاء حسابات، فإن أسئلة Data deletion في النموذج نفسه تطلب أيضًا رابط ويب يستطيع المستخدمون من خلاله طلب حذف الحساب (متطلبات حذف الحساب في Google Play). راجع دليل رابط حذف الحساب.
تفاصيل الدفع التي تُدخل في نافذة الفوترة الخاصة بـ Google Play نفسها لا تحتاج إلى إعلان ما دام تطبيقك لا يصل إليها أبدًا. أما سجلات الشراء التي يتلقاها تطبيقك أو إحدى الـ SDK فلا يزال عليك الإعلان عنها.
الخطوة 3: أسئلة Apple
لكل نوع من البيانات، تسأل Apple عن الغرض وعن سؤالين بنعم أو لا:
- Linked to the user؟ (مرتبطة بالمستخدم) تُعدّ البيانات مرتبطة ما لم تُجرَّد من الهوية قبل جمعها. ويكفي حساب أو معرّف مستخدم أو معرّف جهاز لربطها.
- Used for tracking؟ (مستخدمة للتتبّع) التتبّع يعني دمج بيانات تطبيقك عن مستخدم أو جهاز مع بيانات شركات أخرى للإعلانات الموجّهة أو قياس الإعلانات، أو مشاركتها مع وسيط بيانات. ويمكن لـ SDK أن تفعل ذلك حتى إن لم تستخدم تلك الميزة أبدًا. إذا كان أي شيء يُستخدم للتتبّع، فيجب على التطبيق أن يطلب الإذن عبر App Tracking Transparency أولًا (خصوصية المستخدم واستخدام البيانات من Apple).
أغراض Apple هي: Third-Party Advertising، وDeveloper’s Advertising or Marketing، وAnalytics، وProduct Personalization، وApp Functionality، وOther Purposes.
تسمح لك Apple بإسقاط نوع من البيانات فقط عندما تتحقق كل الشروط الأربعة. يجب ألا يُستخدم للتتبّع أو الإعلان. ويجب أن يُجمع نادرًا فقط، خارج الوظيفة الرئيسية للتطبيق، وباختيار المستخدم. ويجب أن يقدّمه المستخدم عن علم في كل مرة. ومعظم بيانات الـ SDK تفشل في الشرط الأول.
الإجابات الثلاث التي يخطئ فيها الناس
- «لا نجمع شيئًا». أدوات الإبلاغ عن الأعطال والتحليلات ترسل معرّفات الجهاز وبيانات التشخيص، حتى عندما لا ترسل شيفرتك أنت شيئًا.
- «غير مُشارَكة» لـ SDK إعلانات. شبكات الإعلانات تتلقى المعرّفات والتفاعلات لأغراضها الإعلانية الخاصة. وهذه مشاركة.
- نموذج يتعارض مع سياسة الخصوصية. يقرأ المتجران الاثنين معًا، لذا فالتعارض كافٍ بحد ذاته. اكتب كليهما من القائمة نفسها. راجع عندما يتعارض الاثنان.
إبقاؤها محدّثة
الإجابات محدّثة بقدر ما تكون قائمة الـ SDK لديك محدّثة. عندما تضيف SDK، حدّث النموذجين وسياسة الخصوصية في التغيير نفسه. والمورّدون يراجعون إفصاحاتهم مع إصدارات الـ SDK الجديدة أيضًا.
دع مساعد ذكاء اصطناعي يعثر على الـ SDK
الجزء البطيء هو الخطوة 1، ويمكن لوكيل برمجة مفتوح في مستودع تطبيقك أن يقوم به عنك: Claude Code أو Cursor أو Codex وما شابهها. الموجّه (prompt) أدناه يطلب منه قراءة ملفات البناء فقط وتسمية كل SDK وكل حقيقة بيانات مع الملف الذي جاءت منه. ولا يسأل عمّا تجمعه كل SDK. فذاكرة النموذج عن إفصاح المورّد مجرد تخمين، وذلك الجزء يجب أن يأتي من المورّد.
يردّ بصيغة JSON صغيرة تقرؤها لوحة تحكم AppFoyer. ومن دون AppFoyer، تظل القائمة التي يعرضها عليك في step 2 هي التي تملأ منها النموذجين.
You are helping me fill in Google Play's Data safety form and Apple's App Privacy details for my mobile app. AppFoyer turns your answer into draft answers for both forms, using each SDK vendor's own published disclosure. Your job is only to find what is in the build — not to say what any SDK collects.
## About the app
- App name: [app name]
- Platforms: [Android, iOS or both]
## Step 1 — read the build files
Read only the app's build, manifest and store-metadata files — for example `build.gradle(.kts)`, `gradle/libs.versions.toml`, `AndroidManifest.xml`, `Podfile.lock`, `Package.swift`, `Package.resolved`, `Info.plist`, `*.entitlements`, `PrivacyInfo.xcprivacy`, `pubspec.yaml`, `package.json`, `app.json`. Do not open `.env` files, keystores, credentials or any other secrets, and do not change any file. If you cannot read the code, ask me which SDKs the app uses instead.
Find:
1. Every third-party SDK in the build. Match it to one of these ids where it fits:
- `admob` — Google Mobile Ads (AdMob)
- `applovin-max` — AppLovin MAX
- `unity-ads` — Unity Ads
- `firebase-analytics` — Google Analytics for Firebase
- `mixpanel` — Mixpanel
- `amplitude` — Amplitude
- `meta-app-events` — Meta SDK — App Events
- `firebase-crashlytics` — Firebase Crashlytics
- `sentry` — Sentry
- `firebase-auth` — Firebase Authentication
- `google-sign-in` — Google Sign-In
- `meta-login` — Meta SDK — Facebook Login
- `revenuecat` — RevenueCat
- `firebase-messaging` — Firebase Cloud Messaging
- `onesignal` — OneSignal
An SDK that fits none of them goes under `otherSdks` with its package name. Never force a match.
2. Which of these facts are true, from the dependencies, permissions and usage-description keys:
- `account` — users sign in or create accounts
- `analytics` — usage analytics
- `ads` — advertising
- `crash` — crash reporting or diagnostics
- `location` — the app reads the device location
- `purchases` — in-app purchases or subscriptions
If none is true, the facts are `["none"]`.
Keep the file, and the line where you can, for every SDK and every fact. A README sentence is not evidence.
## Step 2 — confirm with me
Show me the list, grouped as SDKs, other SDKs and facts, each with its file. Ask me to confirm or correct it, and to add anything the build files cannot show — for example an SDK loaded at runtime. Wait for my answer.
## Step 3 — reply in AppFoyer's format
Reply with one ```json code block and nothing after it, exactly in this shape:
```json
{
"format": "appfoyer-store-forms/1",
"platform": "android | ios | both",
"sdks": [{ "id": "admob", "file": "app/build.gradle.kts", "line": 42 }],
"otherSdks": [{ "name": "com.example:tracker", "file": "app/build.gradle.kts", "line": 57 }],
"facts": [{ "fact": "ads", "file": "app/src/main/AndroidManifest.xml", "line": 12 }]
}
```
- `id` is one of the ids above, spelled exactly. `fact` is one of the facts above, or `none`.
- `line` is a number, or leave it out when you do not know it.
- Empty lists are `[]`. No comments inside the JSON.
- Do not describe what an SDK collects, and do not add fields.
مع AppFoyer
لكل تطبيق في لوحة التحكم تبويب Store forms. حدّد الـ SDK التي يتضمنها البناء لديك، فيصوغ مسودة إجابات Data safety وApp Privacy منها ومن إعدادات تطبيقك. كل إجابة تذكر مصدرها: إجابات المورّد نفسه، أو بيان الخصوصية الخاص به، أو قراءتنا لقائمة بياناته. ويُنبّه التبويب إلى SDK لا تذكرها سياسة خصوصيتك، ويعطيك رابط حذف الحساب لتلصقه. تملأ إضافة Claude Code قائمة الـ SDK من ملفات البناء لديك. ومع مساعد آخر، انسخ الموجّه من التبويب، وشغّله، والصق الرد: يعرض التبويب الإجابات المترتبة عليه قبل حفظ أي شيء. ولا يزال عليك إدخال الإجابات في كل وحدة تحكم والتحقق منها هناك. إنها مسودات، وليست استشارة قانونية. والتبويب مجاني في كل الخطط.