حزمة GDPR Admob تم تطويرها بواسطة موقع عرب فلاتر بهدف تسهيل عملية إدارة موافقة المستخدمين على إعلانات Google AdMob وفقًا لقوانين حماية البيانات العامة (GDPR). توفر هذه الحزمة أدوات مرنة وسهلة الاستخدام لطلب وإدارة موافقة المستخدمين على عرض الإعلانات. سنتعرف في هذا المقال على كيفية استخدام حزمة GDPR Admob في تطبيقات Flutter.
تثبيت حزمة GDPR Admob
لتثبيت حزمة gdpr_admob
، قم بإضافة السطر التالي إلى ملف pubspec.yaml
الخاص بمشروعك:
dependencies: gdpr_admob: ^1.0.2
ثم قم بتشغيل الأمر التالي لتثبيت الحزمة:
flutter pub get
“اقرأ أيضاً: شرح استخدام network_info_plus في Flutter“
استيراد حزمة GDPR Admob
أول خطوة لاستخدام حزمة gdpr_admob
هي استيرادها:
import 'package:flutter/material.dart'; import 'package:gdpr_admob/gdpr_admob.dart'; import 'package:google_mobile_ads/google_mobile_ads.dart';
“اقرأ أيضاً: شرح طريقة ربط Flutter مع Gemini AI وعمل بوت محادثة“
خصائص حزمة GDPR Admob
خاصية initialize
تقوم خاصية initialize
بطلب موافقة المستخدم لعرض الإعلانات. يمكنك تمرير وضع التصحيح (debug mode) وقائمة بمعرفات الأجهزة الخاصة بالاختبار. الكود التالي يوضح كيفية استخدام هذه الخاصية:
final error = await gdprAdmob.initialize( mode: DebugGeography.debugGeographyEea, testIdentifiers: ["WRITE_YOUR_TEST_DEVICE_IDENTIFIERS"], );
إذا حدث خطأ أثناء طلب الموافقة، ستحتوي القيمة المرجعة على معلومات الخطأ.
خاصية getConsentStatus
تقوم هذه الخاصية بإرجاع حالة الموافقة الحالية. يمكن أن تكون إحدى الحالات التالية: obtained
، required
، notRequired
، أو unknown
.
final status = await gdprAdmob.getConsentStatus();
خاصية resetConsentStatus
تقوم هذه الخاصية بإعادة تعيين حالة الموافقة، مما يسمح بإعادة طلب الموافقة من المستخدمين.
await gdprAdmob.resetConsentStatus();
“اقرأ أيضاً: شرح مفهوم الـ Getter في لغة دارت (Getter in Dart)“
مثال على حزمة GDPR Admob
نحتاج إلى تهيئة الإعلانات مع طلب موافقة المستخدمين. في هذا المثال، سنضيف زر لطلب الموافقة وعرض حالة الموافقة الحالية:
class MyHomePage extends StatefulWidget { const MyHomePage({super.key}); @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { final GdprAdmob gdprAdmob = GdprAdmob(); bool _isLoading = false; String? _errorMessage; String? _consentStatus; Future<void> _initializeGdpr() async { setState(() { _isLoading = true; }); final error = await gdprAdmob.initialize( mode: DebugGeography.debugGeographyEea, testIdentifiers: ["WRITE_YOUR_TEST_DEVICE_IDENTIFIERS"], ); if (error != null) { setState(() { _errorMessage = error.message; }); } setState(() { getStatus(); _isLoading = false; }); } getStatus() async { final status = await gdprAdmob.getConsentStatus(); setState(() { _consentStatus = status; }); } @override void initState() { getStatus(); super.initState(); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: const Text("Flutter GDPR dialog"), ), body: Center( child: _isLoading ? const CircularProgressIndicator() : Column( mainAxisAlignment: MainAxisAlignment.center, children: [ if (_consentStatus != "obtained") ElevatedButton( onPressed: _initializeGdpr, child: const Text("Show GDPR dialog"), ), ElevatedButton( onPressed: () async { await gdprAdmob.resetConsentStatus(); getStatus(); }, child: const Text("Reset the consent state"), ), if (_consentStatus != null) Text('Consent Status: $_consentStatus'), if (_errorMessage != null) Text('Error: $_errorMessage'), ], ), ), ); } }
يمكنك مشاهدة المثال كامل على GitHub من هنا، كما يمكنك الاطلاع على حزمة gdpr_admob
من هنا.
“اقرأ أيضاً: شرح مفهوم الوراثة في لغة دارت (Inheritance in Dart)“
حزمة gdpr_admob
توفر وسيلة سهلة وفعالة لإدارة موافقة المستخدمين على عرض إعلانات Google AdMob وفقًا لقوانين حماية البيانات العامة (GDPR). بفضل الواجهة البسيطة والإعدادات المرنة، يمكن للمطورين دمجها بسهولة في تطبيقاتهم وتحسين تجربة المستخدم.