Перейти к содержанию

CCPA & VCDPA🔗

Заявление о конфиденциальности для потребителей в Калифорнии (ККПА) — это первый всеобъемлющий закон о конфиденциальности в США. Он предоставляет различные права на конфиденциальность для потребителей в Калифорнии. Для предприятий, контролируемых ККПА, будет предоставлен ряд обязательств, в том числе неразглашения, общие сведения о правах потребителей (GDPR), такие как сведения о субъектах данных потребителей (DSR), "отказаться" для определенных передаваемых данных и "согласиться на" требование для второстепенных элементов.

MRGS дает возможность определить, попадает ли пользователь под действие ККПА, а так же дает возможность включать режим специальной работы по правилам ККПА в сторонних SDK, если они предоставляют такую возможность.

VCDPA для Вирджинии

MRGS также автоматически поддерживает VCDPA, который аналогичен закону CCPA, поэтому все проверки принадлежности пользователя к действию закона происходят и для Калифорнии и для Вирджинии, дополнительных действий для поддержки закона проекту делать не требуется.

Список поддержанных штатов
State name State code
California CA
Colorado CO
Connecticut CT
Virginia VA

Внедрение в проект🔗

В каждом мобильном продукте студии следует реализовать кнопку "do not sell my personal information". Дизайн кнопки на усмотрение студии (проекта) но кнопка должна содержать именно указанный выше текст - это требование закона. Кнопку можно расположить например в разделе настройки, опции, профиль игрока, какие-то иные места? Она не должна быть спрятана слишком глубоко. Данная кнопка должна быть видима только юзерам определенным как из калифорнии.

Показ кнопки

Обращаем внимание, что кнопка для пользователей из не из калифорнии должна быть не неактивна, а именно не видима. (Конечно, каждый проект решает сам, но это рекомендация от юристов MyGames)

Как будет работать сама система:

  • MRGS на старте определяет позицию пользователя по Geo-IP. Сохраняет попадает он под ККПА или нет (определился ли в Калифорнии или Вирджинии). Если хотя бы раз определился в Калифорнии или Вирджинии, то уже всегда будет возвращаться, что пользователь попадает под ККПА, даже если в следующий раз позиция не будет указывать Калифорнию.
  • Приложение в нужный момент времени (когда решат разработчики) вызывает метод shouldShowCCPAButton (описан ниже) чтобы понять показывать кнопку включения/отключения шаринга данных или нет
  • Если пользователь изменил настройку (отказался делиться или разрешил делиться) приложение вызывает нужный метод setUserChangedCCPAPreferences
  • Чтоб отобразить текущее состояние кнопку (делиться не делиться) приложение может узнать статус текущей настройки, вызвав метод getCurrentCCPAUserPreferences
  • При запуске приложения MRGS проверяет настройку и если стоит параметр "do not sell my personal information" вызывает нужные методы во всех сторонних SDK

Определение местоположения пользователя🔗

MRGS использует механизм определения положения пользователя по Geo-IP и предоставляет API для получения статуса, попадает ли пользователь по действие ККПА или нет. Для получения статуса необходимо вызвать соответствующий метод:

//Если вернулся true, пользователь попадает под действие CCPA
bool showCCPAButton = MRGSGDPR.getInstance().shouldShowCCPAButton();
//Если вернулся YES, пользователь попадает под действие CCPA
BOOL showCCPAButton = [[MRGSGDPR sharedInstance] shouldShowCCPAButton];
import games.my.mrgs.gdpr.MRGSGDPR;

final MRGSGDPR gdpr = MRGSGDPR.getInstance();
//Где this - объект типа Activity
//Если вернулся true, пользователь попадает под действие CCPA
boolean showCCPAButton = gdpr.shouldShowCCPAButton(this);

Режим работы по правилам ККПА в сторонних SDK🔗

С помощью MRGS вы можете включить режим совместимости с ККПА в соответствующих SDK:

  • AppsFlyer
  • Facebook
  • Firebase
  • IronSource
  • AdMob
  • AppLovin
  • Tappx
  • Tapjoy
  • UnityAds
  • Vungle
  • MyTarget
  • Chartboost
  • Flurry
  • Fyber, Sponsorpay
  • Mintegral
  • Ogury

Для получения текущего статуса работы, вызовите метод

var pref = MRGSGDPR.getInstance().getCurrentCCPAUserPrefrences();
if (pref == MRGSGDPR.MRGSCCPAUserPreference.Share)
{
     // The user has agreed to share his data. CCPA mode disabled
}
else {
    // The user has forbidden to share his data. CCPA mode enabled
}
MRGSCCPAUserPreference pref = [[MRGSGDPR sharedInstance] getCurrentCCPAUserPrefrence];
if (pref == kMRGSCCPAUserPreferenceShare)
{
     // The user has agreed to share his data. CCPA mode disabled
}
else
{
    // The user has forbidden to share his data. CCPA mode enabled
}
import games.my.mrgs.gdpr.MRGSGDPR;

final MRGSGDPR gdpr = MRGSGDPR.getInstance();
//где this - объект типа Activity
int pref = gdpr.getCurrentCCPAUserPreference(this)
if (pref == USER_PREFERENCE_SHARE)
{
     // The user has agreed to share his data. CCPA mode disabled
}
else
{
    // The user has forbidden to share his data. CCPA mode enabled
}

Для изменения режима работы, вызовите метод

// Enable CCPA mode of operation (prohibit data sharing)
MRGSGDPR.getInstance().setUserChangedCCPAPrefrences(MRGSGDPR.MRGSCCPAUserPreference.NotSharing);
// Disable the CCPA mode (allow data sharing)
MRGSGDPR.getInstance().setUserChangedCCPAPrefrences(MRGSGDPR.MRGSCCPAUserPreference.Share);
// Enable CCPA mode of operation (prohibit data sharing)
[[MRGSGDPR sharedInstance] setUserChangedCCPAPrefrences:kMRGSCCPAUserPreferenceNotSharing];
// Disable the CCPA mode (allow data sharing)
[[MRGSGDPR sharedInstance] setUserChangedCCPAPrefrences:kMRGSCCPAUserPreferenceShare];
import games.my.mrgs.gdpr.MRGSGDPR;

final MRGSGDPR gdpr = MRGSGDPR.getInstance();
// Enable CCPA mode of operation (prohibit data sharing)
gdpr.setUserChangedCCPAPreferences(Activity, USER_PREFERENCE_NOT_SHARING);
// Disable the CCPA mode (allow data sharing)
gdpr.setUserChangedCCPAPreferences(Activity, USER_PREFERENCE_SHARE);

Проверка корректности работы🔗

Для проверки работы нужно подключиться с помощью VPN и сымитировать работу из калифорнии.

Также, необходимо проверить, что после включения/отключения CCPA (метод setUserChangedCCPAPreferences) в логах нет ошибок (у вас могут быть несовместимые версии библиотек), то есть нужно проверить, что в логах нет строчек, содержащих: MRGSGDPR: <ERROR>(iOS) или ShareDate failed cause(Android)


Последнее обновление: 2023-12-28
Дата создания: 2020-08-31