בהתאם למדיניות Google בנושא הסכמת משתמשים באיחוד האירופי, עליכם להציג הודעות גילוי נאות מסוימות למשתמשים שנמצאים באזור הכלכלי האירופי (EEA), בבריטניה ובשוויץ. במקומות שבהם זה נדרש על פי חוק, אתם צריכים גם לקבל את הסכמתם לשימוש בקובצי cookie או באמצעים אחרים לאחסון מקומי. נוסף לכך אתם צריכים לקבל את ההסכמה שלהם לשימוש במידע אישי (כמו מזהה מודעה) לצורך הצגת מודעות.
המדיניות הזו משקפת את הדרישות שמפורטות ב-ePrivacy Directive (הדירקטיבה בנושא פרטיות ותקשורת אלקטרונית) וב-General Data Protection Regulation (התקנות הכלליות להגנה על מידע, GDPR) של האיחוד האירופי.
במדריך הזה מפורטים השלבים הנדרשים כדי לתמוך בהודעת GDPR IAB TCF v2 כחלק מ-UMP SDK. הוא מיועד לשילוב עם תחילת העבודה, שבו מוסבר איך להפעיל את האפליקציה עם UMP SDK ואיך להגדיר את ההודעה. ההנחיות הבאות ספציפיות להודעה לבקשת הסכמה בהתאם ל-GDPR לפי גרסה 2 של IAB TCF. מידע נוסף זמין במאמר איך הדרישות של IAB משפיעות על הודעות לבקשת הסכמה באיחוד האירופי.
דרישות מוקדמות
ביטול הסכמה
בהתאם ל-GDPR, צריך להציג אפשרות לביטול ההסכמה כדי לאפשר למשתמשים לבטל את ההסכמה שלהם בכל שלב. במאמר אפשרויות פרטיות מוסבר איך להטמיע דרך שבה המשתמשים יוכלו לבטל את בחירות ההסכמה שלהם.
תג "מתחת לגיל ההסכמה"
כדי לציין אם משתמש מתחת לגיל ההסכמה, מגדירים את הפרמטר
setTagForUnderAgeOfConsent (TFUA). כשמגדירים את TFUA לערך true, ה-UMP SDK לא מבקש הסכמה מהמשתמש. אם לאפליקציה יש קהל מעורב, צריך להגדיר את הפרמטר הזה למשתמשים שהם ילדים כדי לוודא שלא תתבקש הסכמה.
בדוגמה הבאה, הערך של TFUA מוגדר כ-true בבקשת הסכמה של UMP:
Java
ConsentRequestParameters params =
new ConsentRequestParameters.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build();
Kotlin
val params =
ConsentRequestParameters.Builder()
// Indicate the user is under age of consent.
.setTagForUnderAgeOfConsent(true)
.build()
הגדרת הסכמה בתהליך בחירת הרשת (Mediation) ב-AdMob
כדי להגדיר הסכמה בתהליך בחירת הרשת (Mediation) ב-AdMob, צריך לבצע את השלבים שמפורטים בקטעים הבאים.
הוספת שותפי פרסום להודעות לבקשת הסכמה בהתאם ל-GDPR
כדי להוסיף את שותפי הפרסום לרשימה, פועלים לפי השלבים שמפורטים במאמר הוספת שותפי פרסום להודעות לבקשת הסכמה בהתאם ל-GDPR. אם לא תעשו את זה, יכול להיות שהשותפים לא יוכלו להציג מודעות באפליקציה שלכם.
בטבלה הבאה מפורטים השמות של שותפי טכנולוגיות הפרסום של כל מקור מודעות:
| מקור מודעות | שם שותף טכנולוגיות פרסום (ATP) |
|---|---|
| AppLovin | AppLovin Corp. |
| BidMachine | BidMachine |
| BIGO Ads SDK | Empathy Technology Pte.Ltd. (BIGO Ads) |
| Chartboost | Chartboost |
| DT Exchange | DT Exchange (מונטיזציה של Fyber) |
| i-mobile | i-mobile |
| InMobi | InMobi |
| ironSource Ads | ironSource Mobile |
| Liftoff Monetize | Liftoff |
| LY Ads Network | LY Ads Network |
| maio | maio |
| Meta Audience Network | מטא |
| Mintegral | Mobvista/Mintegral |
| Moloco Ads SDK | Moloco Ads |
| myTarget | Mail.ru |
| Pangle | Pangle DSP |
| PubMatic OpenWrap SDK | PubMatic |
| Unity Ads | Unity Ads |
| Verve HyBid SDK | Verve Group |
העברת אותות הסכמה למקורות מודעות
בטבלה הבאה אפשר לראות אילו מקורות מודעות תומכים בהעברת אותות הסכמה בהתאם ל-GDPR מפלטפורמות לניהול הסכמה (CMP) שמשולבות ב-Transparency and Consent Framework (TCF – מסגרת השקיפות וההסכמה) של IAB ובמפרט ההסכמה הנוספת של Google אל ה-SDK של מקורות המודעות:
| מקור מודעות | הגרסה המינימלית הנתמכת |
|---|---|
| AppLovin | 12.0.0.0 |
| BidMachine | 3.3.0.0 |
| BIGO Ads SDK | 5.5.2.0 |
| Chartboost | 9.13.0.0 |
| DT Exchange | 8.3.0.0 |
| i-mobile | לא רלוונטי1 |
| InMobi | 10.7.5.0 |
| ironSource Ads | 7.7.0.0 |
| Liftoff Monetize | 7.4.1.0 |
| LY Ads Network | לא רלוונטי1 |
| maio | לא רלוונטי1 |
| Meta Audience Network | לא רלוונטי2 |
| Mintegral | 17.1.61.1 |
| Moloco Ads SDK | 3.5.0.0 |
| myTarget | 5.51.2.0 |
| Pangle | 7.9.0.9.0 |
| PubMatic OpenWrap SDK | 4.7.0.0 |
| Unity Ads | 4.19.0.1 |
| Verve HyBid SDK | 3.7.1.0 |
1 מקור המודעות לא מציג מודעות לתנועה מהאזור הכלכלי האירופי (EEA).
2 לפרטים, פנו למנהל השותפים שלכם ב-Meta.
איך לקרוא את בחירות ההסכמה
אחרי שהמשתמשים מביעים הסכמה בהתאם ל-GDPR, אפשר לקרוא את אפשרויות ההסכמה מהאחסון המקומי בהתאם למפרט של TCF גרסה 2. המפתח IABTCF_PurposeConsents מציין הסכמה לכל אחת מהמטרות של TCF.
בקטע הקוד הבא אפשר לראות איך בודקים את ההסכמה למטרה 1:
Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context);
// Example value: "1111111111"
String purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "");
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isEmpty()) {
String purposeOneString = String.valueOf(purposeConsents.charAt(0));
boolean hasConsentForPurposeOne = purposeOneString.equals("1");
}
Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context)
// Example value: "1111111111"
val purposeConsents = sharedPref.getString("IABTCF_PurposeConsents", "")
// Purposes are zero-indexed. Index 0 contains information about Purpose 1.
if (!purposeConsents.isNullOrEmpty()) {
val purposeOneString = purposeConsents.first().toString()
val hasConsentForPurposeOne = purposeOneString == "1"
}
שאלות נפוצות
- מה יקרה אם לא אעשה שום דבר כדי לעמוד בדרישות בנוגע לשימוש בפלטפורמות לניהול הסכמה (CMP) כדי להציג מודעות באזור הכלכלי האירופי (EEA), בבריטניה ובשווייץ?
החל מ-16 בינואר 2024, אם שותף לא משתמש בפלטפורמת CMP שאושרה על ידי Google, אפשר יהיה להציג רק מודעות מוגבלות בתנועה מה-EEA ומבריטניה.
נתחיל לאכוף את הדרישה ב-16 בינואר 2024 בקרב אחוז קטן מהתנועה באזור הכלכלי האירופי ובבריטניה, ונגיע לאכיפה מלאה בקרב כלל התנועה באזור הכלכלי האירופי ובבריטניה עד סוף פברואר 2024. כדי למנוע פגיעה בהכנסות, חשוב להתחיל להשתמש בפלטפורמת CMP שאושרה עד 16 בינואר 2024.
- איך אפשר לבדוק אם המשתמש הביע הסכמה?
ההסכמה לא מיוצגת על ידי סיבית אחת, אלא על ידי קבוצה של מטרות וספקים, כפי שמוגדר במפרט של IAB TCF. כדי לראות את הקריטריונים של Google Ads להתאמה אישית של מודעות, אפשר לעיין במאמר מדיניות הסכמה: מודעות בהתאמה אישית ומודעות בלי התאמה אישית.
בנוסף, ספקי פרסום דיגיטלי (ATP) שמופיעים ברשימת ספקי טכנולוגיות הפרסום של Google אבל לא רשומים ברשימת ספקי המשתתפים ב-TCF, משתמשים במפרט הטכני של Google לגבי הסכמה נוספת כדי לאסוף הסכמה. Google מפרסמת את הרשימה של ספקי טכנולוגיות הפרסום שלא רשומים ב-IAB ואת המזהים שלהם במיקום הבא: https://storage.googleapis.com/tcfac/additional-consent-providers.csv.
כדי לנפות באגים בבקשה ספציפית להצגת מודעה, אתם יכולים להשתמש בתכונה פתרון בעיות בהגדרות הפרטיות בכלי לבדיקת מודעות כדי לראות את אותות הפרטיות הבאים שמועברים בבקשה להצגת מודעה כחלק מהשילוב של בעלי האפליקציות עם TCF של IAB Europe:
תווית הכלי לבדיקת מודעות פרמטר של שאילתה בבקשה להצגת מודעה משמעות ה-GDPR חל (IABTCF_gdprApplies) gdprאם תקנות ה-GDPR חלות על הבקשה הזו להצגת מודעה. נתוני השקיפות וההסכמה (IABTCF_TCString) gdpr_consentנתוני השקיפות וההסכמה. הרשות לפרסום אינטראקטיבי (IAB) מספקת כלי אינטרנט שמאפשר לפענח את הערך באופן ידני. נתוני הסכמה נוספים (IABTCF_AddtlConsent) addtl_consentמחרוזת נתוני ההסכמה הנוספים מהמפרט הטכני של Google בנושא הסכמה נוספת. כדי לקרוא את אפשרויות ההסכמה באופן פרוגרמטי, אפשר לעיין במאמר איך לקרוא את אפשרויות ההסכמה.
- האם צריך להשתמש ב-UMP SDK של Google כדי לעמוד בדרישה של פלטפורמת ה-CMP?
לא, אתם יכולים להשתמש בכל פלטפורמת CMP מתוך רשימת פלטפורמות ה-CMP שאושרו על ידי Google כדי להציג מודעות.
- איך אפשר להציג שוב את טופס ההסכמה באמצעות ה-UMP SDK, גם אם המשתמש כבר הביע הסכמה?
אם משתמש כבר קיבל החלטה בנושא הסכמה, הכלי של Google לניהול הסכמה לא יבקש לאסוף הסכמה חדשה עד שתוקף נתוני השקיפות וההסכמה יפוג או שהם יהפכו ללא חוקיים.
בהתאם ל-GDPR, צריך לאפשר למשתמשים לשנות את ההסכמה שלהם בכל שלב. בקטע אפשרויות פרטיות מוסבר איך להטמיע דרך שבה המשתמשים יוכלו לבטל את ההסכמה שלהם. כדי להציג שוב טופס הסכמה, צריך להפעיל את
showPrivacyOptionsForm().- שילבתי פלטפורמת CMP שאושרה על ידי Google, אבל אני לא רואה בקשות להצגת מודעות שנשלחות לשותפי תהליך בחירת הרשת (Mediation), אפילו לא ממשתמשים שהביעו הסכמה. למה זה קורה?
במסגרת TCF, לפני ש-Google כוללת ספקי טכנולוגיות פרסום ומקורות אחרים לביקוש פרוגרמטי ברשימת הרשתות בתהליך בחירת הרשת, אנחנו מוודאים שהם לא מפירים את מדיניות Google ושיש להם לפחות בסיס חוקי אחד לעיבוד נתונים. מידע נוסף זמין בקטע תהליך בחירת הרשת (Mediation).
חלק מהשותפים בתהליך בחירת הרשת (Mediation) שמופיעים ברשימת ספקי טכנולוגיית הפרסום (ATP) של Google לא רשומים ברשימת הספקים המשתתפים ב-TCF. במקום זאת, השותפים האלה משתמשים במפרט הטכני "הסכמה נוספת" של Google כדי לאסוף הסכמה. Google מפרסמת את רשימת ספקי טכנולוגיות הפרסום שלא רשומים ב-IAB והמזהים שלהם במיקום הבא: https://storage.googleapis.com/tcfac/additional-consent-providers.csv
ערכת ה-UMP SDK תומכת באחסון של ACString, וכך מאפשרת לכם להוסיף שותפי פרסום להודעות לבקשת הסכמה בהתאם ל-GDPR בלי שתצטרכו לבדוק אם השותפים רשומים ב-TCF. כשמשתמשים בפלטפורמת CMP של צד שלישי, צריך לבצע את הפעולות הבאות:
- מוודאים שפלטפורמת ה-CMP של הצד השלישי תומכת באחסון של ACString.
- צריך לכלול כל שותף בתהליך בחירת הרשת ברשימה של ספקי טכנולוגיות הפרסום שהפלטפורמה לניהול הסכמה של הצד השלישי משתמשת בהם כדי לאסוף הסכמה.
- האם אפשר לשנות את אופן הפעולה של האפליקציה אם המשתמשים לא מביעים הסכמה? האם זה מותר לפי המדיניות?
בעלי אפליקציות יכולים לקרוא את מחרוזת ה-TCF של IAB באפליקציות שלהם. במאמר איך לקרוא את אפשרויות ההסכמה מוסבר איך לקרוא את אפשרויות ההסכמה באופן פרוגרמטי. בעלי האתרים צריכים להתייעץ עם יועץ משפטי כדי לבדוק את המחויבויות שלהם בהתאם לתקנות הרלוונטיות.
- בחרתי באפשרות ניהול האפשרויות והסכמתי לכל המטרות, אבל לא מוצגות לי מודעות. למה? למה זה קורה?
בנוסף לאיסוף הסכמה למטרות, צריך גם לאסוף הסכמה לספקים. כדי שספק כמו Google יוכל להציג מודעות מתאימות, נדרשת הסכמה גם למטרות וגם לספק.
- איך מטמיעים את גרסה 2 של נתוני ההסכמה הנוספים למשתמשים שכבר הסכימו לגרסה 1?
כדי לבדוק אם המשתמש הסכים לגרסה 2 של מחרוזת נתוני ההסכמה הנוספים, ואם צריך להציג שוב את טופס ההסכמה, בודקים את המפתח
IABTCF_AddtlConsentבאחסון המקומי בהתאם למפרט הטכני של Google בנושא הסכמה נוספת.Java
SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(context); // Example value: "2~1.35.41.101~dv.9.21.81" String additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", ""); // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { String specACVersion = additionalConsent.charAt(0); boolean isACVersion2 = purposeOneString.equals("2"); }Kotlin
val sharedPref = PreferenceManager.getDefaultSharedPreferences(context) // Example value: "2~1.35.41.101~dv.9.21.81" val additionalConsent = sharedPref.getString("IABTCF_AddtlConsent", "") // Index 0 contains information about the specification version number. if (!additionalConsent.isEmpty()) { val specACVersion = additionalConsent.first() val isACVersion2 = specACVersion == "2" }