Initialize
0. GDPR (General Data Protection Regulation)
GDPRμ μ λ½μ°ν©(μ΄ν 'EU')μ κ°μΈμ 보 λ³΄νΈ λ²λ ΉμΌλ‘ μλΉμ€ μ 곡μλ EU μ¬μ©μμ κ°μΈμ 보 λλ κ·Έμ μ€νλ μ 보μ λν μμ§ λ° νμ©μ λν΄ μ¬μ©μμκ² λμ μ¬λΆλ₯Ό νμΈλ°μμΌ ν©λλ€. GDPR κ·μ μ€μ λ° κ·μ μ λ°λ₯Έ κ΄κ³ λ€νΈμν¬ λμμ νμν μ μ°¨μ λλ€.
1. Initialize & GDPR Content UI
μ΄κΈ°ν μ EU μ¬μ©μμ GDPR λμ μ¬λΆλ₯Ό λ°μ μ²λ¦¬ν μ μλ κ΄λ ¨ κΈ°λ₯μ μ 곡ν©λλ€. Main Activityμ onCreate
μμ κ΄κ³ κ΄λ ¨ μ½λλ₯Ό μμ²νκΈ° μ μ μ΄κΈ°ν ν¨μλ₯Ό νΈμΆν©λλ€.
Android ADX SDKμλ μ¬μ©μλ‘λΆν° GDPR λμλ₯Ό λ°μ μ μλ κΈ°λ₯μ΄ ν¬ν¨λμ΄ μμ΅λλ€.
2024λ 1μ 16μΌλΆν° IAB μ λ½μ μΈμ¦κ³Ό νλ«νΌ μ¬μ μμ μΈμ¦μ λ°μ λμ νλ«νΌ(CMP)λ₯Ό ν΅ν΄ GDPR λμ κ΄λ¦¬λ₯Ό μ²λ¦¬ν΄μΌ λ¨μ λ°λΌ, Android ADX SDK λ²μ 2.5.0 μ΄μλΆν°, SDK λ΄λΆμμ μ체μ μΌλ‘ μ 곡λλ GDPR λμ νλ©΄μ λ μ΄μ μ§μλμ§ μμΌλ, μ λλͺΉ UMP (User Messaging Platform)λ₯Ό ν΅νμ¬ GDPR λμλ₯Ό μ²λ¦¬ν΄μΌν©λλ€.
μ λ½ κ²½μ μ§μ (European Economic Area)μμ Android μ ν리μΌμ΄μ μ μλΉμ€νκ³ μκ±°λ, λλ μλΉμ€ν κ³νμ΄ μλ€λ©΄ Android ADX SDK λ²μ 2.5.0 μ΄μμ μ€μΉνκ³ , μ΄ λ¬Έμμ UMP (User Messaging Platfom) μ΄λνμ¬ κΈ°μ λ λ΄μ©μ λ°λΌ μ€μ νμ¬ μ£Όμμμ€.
"<ADX_APP_ID>"
μ ADXμμ λ°κΈλ°μ ADX App IDλ₯Ό μ¬μ©ν©λλ€.SDK μ΄κΈ°νλ μ± μ€ν μ ν λ²λ§ νΈμΆνμ¬ μ£Όμκ³ , κ΄κ³ μμ²μ μ΄κΈ°νκ° μλ£λ νμ μ΄λ€μ ΈμΌ ν©λλ€.
onCompleted
κ° νΈμΆ λ ν, κ΄κ³ λ₯Ό μμ²ν΄μΌ ν©λλ€.
GdprTypeμ μλ νλͺ© μ€ νλλ₯Ό μ ννμ¬ μ λ ₯ν©λλ€.
GDPR νμ
μ€λͺ
POPUP_LOCATION
μ§μμ λ°λΌ λμ νμ νΈμΆ (EU μ§μ)
POPUP_DEBUG
μ§μ μκ΄μμ΄ λμ νμ νΈμΆ ν μ€νΈ (DEBUG)
DIRECT_NOT_REQUIRED
λμ μ¬λΆκ° νμμλ μ§μ (EU μΈ μ§μ)
DIRECT_DENIED
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§ κ±°λΆ
DIRECT_CONFIRM
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§ λμ
Case 1. EEA μ¬μ©μμ GDPR λμ νλ©΄ μ 곡
μ λ½ κ²½μ μ§μ (European Economic Area) μ¬μ©μμκ² λμ μ¬λΆλ₯Ό μ νν μ μλλ‘ λμ νλ©΄μ μ 곡ν©λλ€.
μ λ½ κ²½μ μ§μ (European Economic Area) μ¬μ©μμκ² λμ μ¬λΆλ₯Ό μ νν μ μλ κΈ°λ₯μ΄ μ λλͺΉ UMP (User Messaging Platform)μ μν΄μ μ²λ¦¬λλ©°, μ λλͺΉ UMP κΈ°λ₯μ Android ADX SDK λ²μ 2.5.0 μ΄μμ ν¬ν¨λμ΄ μμ΅λλ€.
ADXConfiguration
μμ GdprTypeμPOPUP_LOCATION
λ‘ μ€μ νμλ©΄, μ¬μ©μμ μ μ κ΅κ°μ λ°λΌ EU μ¬μ©μλ GDPR λμ Consent UIλ₯Ό ν΅ν΄ λμ μ¬λΆλ₯Ό κ²°μ ν μ μμ΅λλ€.GdprTypeμ
POPUP_DEBUG
λ‘ μ€μ μ μ μ κ΅κ°μ μκ΄μμ΄ Consent UIλ₯Ό νμΈνμ€ μ μμ΅λλ€.
(μ£Όμμ¬ν) POPUP_LOCATION
λλPOPUP_DEBUG
μ κ²½μ° initiailize
μ Context
κ°μΌλ‘ Activity
λ₯Ό λ£μ΄μ£Όμ
μΌ ν©λλ€. κ·Έλ μ§ μμ κ²½μ° μ μμ μΌλ‘ μ΄κΈ°νλμ§ μμ΅λλ€.
// ADX μ΄κΈ°ν κ΄λ ¨ μ€μ
ADXConfiguration adxConfiguration = new ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.POPUP_LOCATION)
.setTestDeviceIds(Arrays.asList("")) // UMP Test Device
.build();
ADXSdk.getInstance().initialize((Activity) this, adxConfiguration, new ADXSdk.OnInitializedListener() {
@Override
public void onCompleted(boolean result, ADXGDPR.ADXConsentState adxConsentState) {
// κ΄κ³ μ΄κΈ°ν μλ£
}
});

Case 2. μ§μ λμ μ¬λΆ μ€μ
μ λ½ κ²½μ μ§μ (European Economic Area) μ¬μ©μκ° μκ±°λ μ± λ΄μ νμκ°μ μ΄λ GDPRμμ μ νλ κ°μΈμ 보μ μ€νλ μ 보λ₯Ό μμ§νκ³ μμΌμλ€λ©΄ νκ΅μμ νΈμμλ¦Ό λμ, κ°μΈμ 보μ²λ¦¬λ°©μΉ¨μ λν΄ λμμ μ°¨λ₯Ό μ§ννλ κ²κ³Ό κ°μ΄ λ°λ‘ μ§μ λμμ μ°¨λ₯Ό μ§ν λ° μ²λ¦¬ν΄μ£Όμ μΌ ν©λλ€.
EU μΈ μ§μμΌλ‘ λμ μ¬λΆκ° νμ μλ κ²½μ°,
ADXConfiguration
μμ GdprTypeμDIRECT_NOT_REQUIRED
λ‘ μ€μ ν΄μ£ΌμΈμ.EU μ§μμΌλ‘ μ§μ λμ μ μ°¨λ₯Ό μ§ννμλ κ²½μ°, λμμ μ°¨ κ²°κ³Όμ λ°λΌ GdprTypeμ μ€μ ν΄μ£ΌμΈμ .
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§ λμν μν:
DIRECT_CONFIRM
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§ κ±°λΆν μν:
DIRECT_DENIED
// ADX μ΄κΈ°ν κ΄λ ¨ μ€μ
ADXConfiguration adxConfiguration = new ADXConfiguration.Builder()
.setAppId("<ADX_APP_ID>")
.setGdprType(ADXConfiguration.GdprType.DIRECT_CONFIRM)
.build();
ADXSdk.getInstance().initialize((Activity) this, adxConfiguration, new ADXSdk.OnInitializedListener() {
@Override
public void onCompleted(boolean result, ADXGDPR.ADXConsentState adxConsentState) {
// κ΄κ³ μ΄κΈ°ν μλ£
}
});
2. Native Ad μ΄κΈ°ν
λμΌν Activityμμ μ΄κΈ°ν ν¨μμ Native Ad ν¨μλ₯Ό νΈμΆνλ κ²½μ°
μ΄κΈ°ν ν¨μλ₯Ό νΈμΆνκΈ° μ μ AdxNativeAdFactory
μ init()
κ³Ό setAdxViewBinder()
λ₯Ό μ΄κΈ°ν ν¨μλ³΄λ€ λ¨Όμ νΈμΆν΄μΌν©λλ€. μ΄κΈ°ν ν¨μ νΈμΆ ν OnInitializedListener
μ onCompleted
λ΄μμ AdxNativeAdFactory.preloadAd()
λ₯Ό νΈμΆν΄μΌ ν©λλ€.
AdxNativeAdFactory.init(this);
AdxNativeAdFactory.setAdxViewBinder("<NATIVE_AD_UNIT_ID>", new AdxViewBinder.Builder(R.layout.layout_media_native_ad)
.mediaViewContainerId(R.id.mediaContainerId)
.iconImageId(R.id.adIconId)
.titleId(R.id.titleId)
.adChoiceContainerId(R.id.adChoicesContainerId)
.callToActionId(R.id.callToActionId)
.build());
Native Ad ꡬν λ°©λ²μ ν΄λΉ νμ΄μ§λ₯Ό μ°Έκ³ ν΄μ£ΌμΈμ.
3. ConsentState
GDPR λμ μ¬λΆμ λν΄ 4κ°μ μνκ°μ κ°μ§λλ€.
μν
μ€λͺ
ADXConsentStateUnknown
λμ μ¬λΆκ° μ‘΄μ¬νμ§ μλ μ¬μ©μλ‘ νΈμΆ μνλ‘ κ°μΈν κ΄κ³ κ° λ ΈμΆλμ§ μμ΅λλ€.
ADXConsentStateNotRequired
λμ μ¬λΆκ° νμμλ μ§μ (EU μΈ μ§μ)
κ°μΈν κ΄κ³ κ° λ ΈμΆλ©λλ€.
ADXConsentStateDenied
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§μ κ±°λΆν μν
κ°μΈν κ΄κ³ κ° λ ΈμΆλμ§ μμ΅λλ€.
ADXConsentStateConfirm
μ¬μ©μκ° κ°μΈμ 보 νμ© λ° μμ§μ λμν μν
κ°μΈν κ΄κ³ κ° λ ΈμΆλ©λλ€.
λμ μ¬λΆλ₯Ό νμΈ/λ³κ²½ νμλ κ²½μ° ADXGdprManager
μ μλ ν¨μλ₯Ό μ¬μ©νμ¬ μ£ΌμκΈ° λ°λλλ€.
// ADXGdprManagerμ μ€μ λ μ¬μ©μμ λμ μ 보λ₯Ό νμΈνμ€ μ μμ΅λλ€.
ADXGdprManager.getResultGDPR(this);
// μ§μ λμ μ¬λΆλ₯Ό λ³κ²½ν©λλ€.
ADXGdprManager.saveResultGDPR(this, ADXConsentState);
4. GDPR λμνλ©΄ μ¬λ
ΈμΆ
GDPR λμ νλ©΄μ μ¬μ©μμκ² μ¬λ ΈμΆνμ¬ λμ μ¬λΆμ λν μν κ°μ λ³κ²½ν μ μμ΅λλ€.
ADXSdk.getInstance().showGDPRForm((Activity) this, new ADXSdk.OnPrivacyOptionsFormListener() {
@Override
public void onCompleted(boolean result) {
}
});
5. Privacy Policy
AD(x)μ Privacy Policy λ¬Έμ URLμ ADXGDPR
μ getPrivacyURL()
μ νΈμΆνμ¬ μ¬μ©νμ€ μ μμ΅λλ€.
ADXGdprManager.getPrivacyURL();
6. λλ²κΉ
λ‘κ·Έ νμ±ν
QA μ§ν μ μ°λ λ° λ―Έλμμ΄μ μ μ λμ νμΈμ μν΄ μ΄κΈ°ν ν¨μλ₯Ό νΈμΆνκΈ° μ μ μλμ κ°μ΄ μΆκ°λμ΄μΌ ν©λλ€.
ADXLogUtil.setLogEnable(true);
7. μλ λμ μ€μ
COPPAμ λ°λΌ μ½ν μΈ λ₯Ό μλ λμμΌλ‘ μ²λ¦¬νλλ‘ μ§μ ν΄μΌ νκ±°λ μ λ½ κ²½μ μ§μ (EEA)μ κ±°μ£Όνλ λμ μ°λ Ή λ―Έλ§μ μ¬μ©μλ₯Ό λμμΌλ‘ νλ μλΉμ€μ κ²½μ° μ΄κΈ°ν ν¨μ νΈμΆνκΈ° μ μ μ λλͺΉμ νκ²ν μ€μ μ ν΄μΌ ν©λλ€. μμΈν λ΄μ©μ μ λλͺΉ νκ²ν (https://developers.google.com/admob/android/targeting?hl=ko) ν΅ν΄ νμΈ νμ€ μ μμ΅λλ€.
Last updated
Was this helpful?