בקשה לקבלת הסכמה ממשתמשים באירופה

דרישות מוקדמות

השלימו את תחילת העבודה עם גרסה 1.3.0 של הפלאגין GMA Flutter, שתומך ב-User Messaging Platform SDK.

מומלץ לקרוא איך הדרישות של IAB משפיעות על הודעות בנושא הסכמה באיחוד האירופי.

מבוא

UMP SDK מספק לבעלי אפליקציות כלים שמאפשרים לבעלי אפליקציות לבקש הסכמה להצגת מודעות בהתאמה אישית, וכמו כן יכולים לטפל בדרישות App Tracking Transparency (ATT) של Apple. בעלי אפליקציות יכולים להשתמש ב-UMP SDK כדי לטפל באחת מהבקשות האלה או בשתיהן באמצעות טופס אחד, מכיוון שכל ההגדרות מתבצעות ב הכלי 'פרטיות והודעות' ב-Ad Manager.

בהתאם למדיניות Google בנושא הסכמת משתמשים באיחוד האירופי, עליכם להציג הודעות גילוי נאות מסוימות למשתמשים שנמצאים באזור הכלכלי האירופי (EEA) ובבריטניה. בנוסף, עליכם לקבל את הסכמתם לשימוש בקובצי Cookie או באמצעים אחרים לאחסון מקומי, כשהדבר נדרש על פי חוק, ולהשתמש במידע אישי (כמו מזהה פרסום) לצורך הצגת מודעות. המדיניות הזו משקפת את הדרישות שמפורטות ב-ePrivacy Directive (ההנחיה בנושא פרטיות ותקשורת אלקטרונית) וב-General Data Protection Regulation (התקנה הכללית להגנה על מידע, GDPR) של האיחוד האירופי.

כדי לעזור לבעלי אפליקציות למלא את החובות שלהם במסגרת המדיניות הזו, Google מציעה את User Messaging Platform (UMP) SDK. ה-UMP SDK עודכן כדי לתמוך בתקנים האחרונים של IAB. בנוסף, פישטנו את תהליך ההגדרה של טופסי הסכמה ופירוט של שותפי פרסום. עכשיו אפשר לטפל בכל ההגדרות האלה בקלות הכלי 'פרטיות והודעות' ב-Ad Manager.

במדריך הזה מוסבר איך להתקין את ה-SDK, להטמיע את הפתרונות של IAB ולהפעיל תכונות בדיקה.

App Tracking Transparency (iOS בלבד)

אם אתם מתכננים להשתמש ב-UMP SDK כדי לטפל בדרישות של Apple בנושא App Tracking Transparency, ודאו שיצרתם, הגדרתם ופרסמתם את הודעת ה-ATT באמצעות הכלי 'פרטיות והודעות' ב-Ad Manager.

כדי שה-UMP SDK יציג התראה מותאמת אישית, צריך לעדכן את Info.plist ולהוסיף את המפתח NSUserTrackingUsageDescription עם מחרוזת הודעה מותאמת אישית שמתארת את השימוש שלכם.

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

תיאור השימוש מופיע כחלק מתיבת הדו-שיח של ATT כשמציגים את טופס ההסכמה:

בשלב הבא, צריך לקשר את המסגרת של AppTrackingTransparency:

במהלך הבדיקה, חשוב לזכור שבהתאם לדרישות של Apple, תיבת הדו-שיח של IDFA ATT תופיע רק פעם אחת, כי requestTrackingAuthorization: היא בקשה חד-פעמית. כדי שההתראה תופיע בפעם השנייה, צריך להסיר את האפליקציה ולהתקין אותה מחדש במכשיר הבדיקה.

שימוש ב-SDK

ה-SDK מיועד לשימוש באופן לינארי. השלבים לשימוש ב-SDK הם:

  1. יש לבקש את המידע העדכני ביותר לגבי הסכמה.
  2. בודקים אם נדרשת הסכמה.
  3. בודקים אם הטופס זמין, ואם כן, טוענים טופס.
  4. מציגים את הטופס.
  5. אפשר למשתמשים לשנות את ההסכמה שלהם.

מומלץ לבקש עדכון של פרטי ההסכמה בכל השקה של האפליקציה. כך תוכלו לדעת אם המשתמש צריך להביע הסכמה או לא.

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    // The consent information state was updated.
    // You are now ready to check if a form is available.
  },
  (FormError error) {
    // Handle the error
  },
);

טעינת טופס, אם האפשרות זמינה

הטפסים לקבלת הסכמה נוצרים בממשק המשתמש Ad Manager. אחרי שמחליטים לבקש הסכמה מהמשתמש, בשלב הבא צריך לבדוק אם הטופס זמין. יכולות להיות מגוון סיבות לכך שטופס לא יהיה זמין, למשל:

  • המשתמש הפעיל מעקב אחר מודעות.
  • תייגת את המשתמש כמתחת לגיל ההסכמה.

כדי לבדוק אם טופס זמין, משתמשים בשיטה isConsentFormAvailable() במכונה של ConsentInformation. מוסיפים שיטת wrapper לטעינת טופס:

final params = ConsentRequestParameters();
ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () async {
    if (await ConsentInformation.instance.isConsentFormAvailable()) {
      loadForm();
    }
  },
  (FormError error) {
    // Handle the error
  },
);

כדי לטעון את הטופס, צריך להשתמש בשיטה הסטטית loadConsentForm() במחלקה ConsentForm. אפשר לשנות את שיטת הבידינג loadForm() באופן הבא:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      // Present the form
    },
    (FormError formError) {
      // Handle the error
    },
  );
}

הצגת הטופס במקרה הצורך

כדי להציג את טופס ההסכמה, צריך להשתמש בשיטה show() בכיתה ConsentForm. חובה לקבוע אם המשתמש דורש הסכמה לפני הצגת הטופס. כדי לבדוק אם נדרשת הסכמה, צריך לקרוא לפונקציה getConsentStatus() באובייקט ConsentInformation, ולהחזיר 'טיפוסים בני מנייה (enum)' מסוג ConsentStatus. יש 4 ערכים אפשריים של ConsentStatus:

  • unknown: סטטוס ההסכמה לא ידוע.
  • required: נדרשת הסכמת משתמש, אבל עדיין לא התקבלה הסכמה.
  • notRequired: לא נדרשת הסכמת משתמש. לדוגמה, המשתמש לא נמצא ב-EEA או בבריטניה.
  • obtained: התקבלה הסכמה מהמשתמשים. לא הוגדרה התאמה אישית.

אפשר לשנות את שיטת הבידינג loadForm באופן הבא:

void loadForm() {
  ConsentForm.loadConsentForm(
    (ConsentForm consentForm) async {
      var status = await ConsentInformation.instance.getConsentStatus();
      if (status == ConsentStatus.required) {
        consentForm.show(
          (FormError formError) {
            // Handle dismissal by reloading form
            loadForm();
          },
        );
      }
    },
    (formError) {
      // Handle the error
    },
  );
}

אם לא נדרשת הסכמה, אפשר לשמור הפניה לטופס כדי שהמשתמש יוכל לשנות את סטטוס ההסכמה.

בדיקה

אילוץ מיקום גיאוגרפי

באמצעות UMP SDK אפשר לבדוק את ההתנהגות של האפליקציה כאילו המכשיר היה באזור הכלכלי האירופי (EEA) באמצעות ConsentDebugSettings.debugGeography.

כדי להשתמש בפונקציונליות של ניפוי הבאגים, תצטרכו לספק את המזהה המגובב של מכשיר הבדיקה בהגדרות ניפוי הבאגים של האפליקציה. אם מפעילים קריאה ל-requestConsentInfoUpdate() בלי להגדיר את הערך הזה, האפליקציה תרשום את גיבוב המזהה הנדרש במהלך ההרצה.

ConsentDebugSettings debugSettings = ConsentDebugSettings(
  debugGeography: DebugGeography.debugGeographyEea,
  testIdentifiers: ['TEST-DEVICE-HASHED-ID']);

ConsentRequestParameters params = ConsentRequestParameters(
  consentDebugSettings: debugSettings);

ConsentInformation.instance.requestConsentInfoUpdate(
  params,
  () {},
  (error) {});

כדי לאלץ את ה-SDK להתייחס למכשיר כאילו הוא לא ב-EEA או בבריטניה, צריך להשתמש ב-DebugGeography.debugGeographyNotEea. שימו לב שהגדרות ניפוי הבאגים פועלות רק במכשירי בדיקה. אין צורך להוסיף אמולטורים לרשימת מזהי המכשירים, מכיוון שהבדיקה מופעלת בהם כברירת מחדל.

כשבודקים את האפליקציה באמצעות UMP SDK, כדאי לאפס את מצב ה-SDK כדי שתוכלו לדמות את חוויית ההתקנה הראשונה של המשתמש. ערכת ה-SDK מספקת את השיטה reset לביצוע הפעולה הזו.

ConsentInformation.instance.reset();

כדאי גם לבצע איפוס אם אתם מחליטים להסיר לגמרי את ה-UMP SDK מהפרויקט.

גישור

אם אתם משתמשים בתהליך בחירת הרשת, תצטרכו לטפל בהסכמה של השותפים בתהליך בחירת הרשת באופן שונה, בהתאם למסגרת ההסכמה שבחרתם להשתמש בה באפליקציה. Google תומכת ב-IAB Consent Framework אבל גם מאפשרת לכם ליצור פתרון מותאם אישית משלכם לקבלת הסכמה. בהמשך נסביר איך לטפל בגישור במסגרת כל אחת מהאפשרויות האלה. מידע נוסף על הפתרון שלנו לקבלת הסכמה

פרטי ההסכמה לא מועברים על ידי ה-UMP SDK או על ידי Mobile Ads SDK לשותפים בתהליך בחירת הרשת. במקום זאת, כשמשתמשים בפתרון של IAB, ה-UMP SDK כותב את הפרטים של סטטוס ההסכמה באחסון המקומי, ובאחריות כל ה-SDK של כל שותף בתהליך בחירת הרשת לקרוא את המפתחות המתאימים. חשוב לבדוק בכל רשת של צד שלישי אם היא תומכת בפתרון של IAB.

אם אתם משתמשים בפתרון בהתאמה אישית לבקשת הסכמה, באחריותכם לעדכן את ערכות ה-SDK של צדדים שלישיים לגבי סטטוס ההסכמה של האפליקציה. לכל רשת לבחירת רשת יש ממשקי API משלה לטיפול בהסכמה. ממשקי ה-API האלה מתועדים לגבי Android ו-iOS.

במאמר שימוש בממשקי API ספציפיים לרשת מוסבר איך לקרוא לממשקי ה-API האלה מ-Dart.

התנהגות ברירת המחדל של Google Mobile Ads SDK היא הצגת מודעות בהתאמה אישית. אם משתמש הסכים לקבל רק מודעות ללא התאמה אישית, אפשר להגדיר אובייקט AdManagerAdRequest עם הקוד הבא כדי לציין שצריך לבקש רק מודעות ללא התאמה אישית:

final AdManagerAdRequest = AdManagerAdRequest(nonPersonalizedAds: true);

לפי מדיניות Google בנושא הסכמת משתמשים באיחוד האירופי עליך לאסוף אישורי הסכמה עבור הרשימה המלאה של ספקי טכנולוגיות פרסום שהוגדרו עבור המזהים של בעלי התוכן הדיגיטלי לפני הצגת מודעות בהתאמה אישית, גם אם השתמשת בפתרון של צד שלישי לתהליך בחירת הרשת כדי לשלוח ל-Google בקשות להצגת מודעות.