미디에이션과 Chartboost 통합

이 가이드에서는 Google 모바일 광고 SDK를 사용하여 미디에이션을 통해 Chartboost에서 광고를 로드하고 표시하는 방법을 설명합니다. 폭포식 구조 통합에 대해서도 다룹니다. 여기에서는 Chartboost를 광고 단위의 미디에이션 구성에 추가하는 방법과 Chartboost SDK 및 어댑터를 iOS 앱에 통합하는 방법을 다룹니다.

지원되는 통합 및 광고 형식

AdMob Chartboost용 미디에이션 어댑터의 기능은 다음과 같습니다.

통합
입찰
폭포
형식
배너
전면 광고
리워드 제공됨
네이티브

요구사항

  • iOS 배포 대상 12.0 이상
  • 최신 Google 모바일 광고 SDK

  • 미디에이션 시작 가이드를 완료합니다.

1단계: Chartboost UI에서 구성 설정

Chartboost 계정에 가입하고 계정이 확인되면 로그인합니다. 그런 다음 앱 관리 탭으로 이동합니다.

Chartboost 앱 대시보드

Add new app(새 앱 추가) 버튼을 클릭하여 앱을 만듭니다.

앱 관리

양식의 나머지 부분을 작성하고 Add App(앱 추가) 버튼을 클릭하여 앱을 완료합니다.

새 앱 양식

앱이 생성되면 대시보드로 이동됩니다. 앱의 앱 ID앱 서명을 기록해 둡니다.

앱 설정

AdMob 에서 광고 단위 ID를 설정하려면 Chartboost 사용자 ID사용자 서명이 AdMob 필요합니다. Chartboost UI에서 Chartboost 미디에이션을 클릭하면 이러한 매개변수를 찾을 수 있습니다.

Chartboost 미디에이션 대시보드

리소스 > API 탐색기 탭으로 이동하고 인증 섹션에 있는 사용자 ID사용자 서명을 기록합니다.

Chartboost API 탐색기

테스트 모드 사용 설정

Chartboost UI에서 앱 관리 탭으로 이동하고 목록에서 앱을 선택한 후 앱 설정 수정을 클릭하여 앱에서 테스트 모드를 사용 설정할 수 있습니다.

앱 설정 수정

앱 설정에서 앱의 테스트 모드를 전환할 수 있습니다.

Chartboost 테스트 모드

테스트 모드가 사용 설정되면 이전에 만든 광고 단위 ID를 사용하여 광고를 요청하고 Chartboost 테스트 광고를 수신할 수 있습니다.

Chartboost 테스트 광고를 수신할 수 있게 되면 앱이 Chartboost의 게시자 앱 검토에 배치됩니다. Chartboost에서 수익 창출이 작동하려면 Chartboost에서 게시자 앱 검토를 승인해야 합니다.

2단계: UI에서 Chartboost 수요 설정 AdMob

광고 단위에 대한 미디에이션 설정 구성

Chartboost 를 광고 단위의 미디에이션 구성에 추가해야 합니다.

먼저 AdMob 계정에 로그인합니다. 그런 다음 미디에이션 탭으로 이동합니다. 수정할 기존 미디에이션 그룹이 있는 경우 해당 미디에이션 그룹의 이름을 클릭하여 수정한 후 Chartboost 광고 소스로 추가로 건너뜁니다.

새 미디에이션 그룹을 만들려면 미디에이션 그룹 만들기를 선택합니다.

광고 형식과 플랫폼을 입력하고 계속을 클릭합니다.

미디에이션 그룹에 이름을 지정하고 타겟팅할 위치를 선택합니다. 미디에이션 그룹 상태를 사용으로 설정한 다음 광고 단위 추가를 클릭합니다.

이 미디에이션 그룹을 하나 이상의 기존AdMob 광고 단위와 연결합니다. 그런 다음 완료를 클릭합니다.

이제 광고 단위 카드가 선택한 광고 단위로 채워진 것을 볼 수 있습니다.

광고 소스로 Chartboost 추가

광고 소스 섹션의 폭포식 구조 카드에서 광고 소스 추가를 선택합니다. 그런 다음 Chartboost을 선택합니다.

Chartboost를 선택하고 최적화 스위치를 사용 설정합니다. 이전 섹션에서 가져온 User ID and User Signature을 입력하여Chartboost에 대해 광고 소스 최적화를 설정합니다. 그런 다음Chartboost 에 eCPM 값을 입력하고 계속을 클릭합니다.

이미 Chartboost에 대한 매핑이 있는 경우 해당 매핑을 선택할 수 있습니다. 그렇지 않으면 매핑 추가를 클릭합니다.

그런 다음 이전 섹션에서 얻은 App ID, App Signature and Ad Location를 입력합니다. 그런 다음 완료를 클릭합니다.

Chartboost 광고 위치(이름이 지정된 위치)는 앱에서 광고를 게재할 위치를 나타내는 단순한 이름입니다.AdMob 설정에 지정된 위치로 요청을 보냅니다. 요청이 전송되면 Chartboost는 보고 목적으로 플랫폼에 위치를 추가합니다. 또한 사용자는 게임에서 광고 위치를 호출하기 전에 Chartboost 플랫폼에서 직접 새 광고 위치를 만들 수 있습니다.

Chartboost UI에서 광고 위치는 고급 설정을 클릭하여 기본 설정 페이지에 표시할 수 있습니다. 자세한 내용은 Chartboost의 이름이 지정된 위치 가이드를 참조하세요.

마지막으로 완료를 클릭하여 Chartboost를 광고 소스로 추가한 후 저장을 클릭합니다.

GDPR 및 미국 주 규정 광고 파트너 목록에 Chartboost 추가

GDPR 설정미국 주 규정 설정 Chartboost 를 AdMob UI의 GDPR 및 미국 주 규정 광고 파트너 목록에 추가합니다.

3단계: Chartboost SDK 및 어댑터 가져오기

  • 프로젝트의 Podfile에 다음 줄을 추가합니다.

    pod 'GoogleMobileAdsMediationChartboost'
    
  • 명령줄에서 다음을 실행합니다.

    pod install --repo-update
    

수동 통합

  • Chartboost SDK의 최신 버전을 다운로드하고 프로젝트에 Chartboost.frameworkCHAMoatMobileAppKit.framework를 연결합니다.

  • 변경 로그의 다운로드 링크에서 최신 버전의 Chartboost 어댑터를 다운로드하고 프로젝트의 ChartboostAdapter.framework를 링크합니다.

  • 프로젝트에 다음 프레임워크를 추가합니다.

    • StoreKit
    • Foundation
    • CoreGraphics
    • WebKit
    • AVFoundation
    • UIKit

4단계: Chartboost SDK에서 개인 정보 보호 설정 구현

Google EU 사용자 동의 정책에 따라 기기 식별자 및 개인 정보의 사용과 관련하여 유럽 경제 지역 (EEA)의 사용자에게 특정 정보를 공개하고 사용자의 동의를 얻어야 합니다. 이 정책에는 EU 온라인 개인 정보 보호 지침 및 개인 정보 보호법 (GDPR)의 요구사항이 반영되어 있습니다. 동의를 요청할 때 미디에이션 체인에서 개인 정보를 수집, 수신 또는 사용할 수 있는 각 광고 네트워크를 식별하고 각 네트워크의 사용에 관한 정보를 제공해야 합니다. 현재 Google은 이러한 네트워크에 사용자의 동의 선택을 자동으로 전달할 수 없습니다.

SDK 버전 8.2.0에서 Chartboost는 addDataUseConsent 메서드를 추가했습니다. 다음 샘플 코드에서는 데이터 사용 동의를 CHBGDPRConsentNonBehavioral로 설정합니다. 이 메서드를 호출하려면 Google 모바일 광고 SDK를 통해 광고를 요청하기 전에 호출하는 것이 좋습니다.

Swift

let dataUseConsent = CHBDataUseConsent.GDPR(CHBDataUseConsent.GDPR.Consent.nonBehavioral)
Chartboost.addDataUseConsent(dataUseConsent)

Objective-C

CHBGDPRDataUseConsent *dataUseConsent = [CHBGDPRDataUseConsent gdprConsent:CHBGDPRConsentNonBehavioral];
[Chartboost addDataUseConsent:dataUseConsent];

자세한 내용과 각 메서드에 제공할 수 있는 값은 Chartboost의 GDPR 도움말iOS 개인 정보 보호 메서드를 참조하세요.

미국 주 개인 정보 보호법

미국 주 개인 정보 보호법 에 따라 사용자는 법률에 정의된 조항에 따라 '개인 정보'의 '판매'를 거부할 권리를 부여할 수 있으며, 거부 권리는 '판매'하는 회사의 홈페이지에 명시된 'Do Not Sell My Personal Information(내 개인 정보 판매 거부)' 링크를 통해 행사할 수 있습니다. 미국 주 개인 정보 보호법 규정 준수 가이드에서는 Google 광고 게재에 제한적인 데이터 처리를 사용 설정할 수 있는 기능을 제공하지만, Google에서 미디에이션 체인의 각 광고 네트워크에 이 설정을 적용할 수는 없습니다. 따라서 미디에이션 체인에서 개인 정보 판매에 참여할 수 있는 각 광고 네트워크를 식별하고 각 네트워크의 안내에 따라 규정을 준수해야 합니다.

SDK 버전 8.2.0에서 Chartboost는 addDataUseConsent 메서드를 추가했습니다. 다음 샘플 코드에서는 데이터 사용 동의를 CHBCCPAConsentOptInSale로 설정합니다. 이 메서드를 호출하려는 경우 Google 모바일 광고 SDK를 통해 광고를 요청하기 전에 호출하는 것이 좋습니다.

Swift

let dataUseConsent = CHBDataUseConsent.CCPA(CHBDataUseConsent.CCPA.Consent.optInSale)
Chartboost.addDataUseConsent(dataUseConsent)

Objective-C

CHBCCPADataUseConsent *dataUseConsent = [CHBCCPADataUseConsent ccpaConsent:CHBCCPAConsentOptInSale];
[Chartboost addDataUseConsent:dataUseConsent];

자세한 내용과 각 메서드에서 제공할 수 있는 값은 Chartboost의 CCPA 도움말iOS 개인 정보 보호 메서드를 참고하세요.

오류 코드

어댑터가 Chartboost에서 광고를 수신하지 못하면 다음 클래스에서 GADResponseInfo.adNetworkInfoArray:

GADMAdapterChartboost
GADMediationAdapterChartboost

다음은 광고 로드에 실패할 때 Chartboost 어댑터에서 발생하는 코드와 함께 표시되는 메시지입니다.

오류 코드 이유
0-99 Chartboost SDK에서 오류를 반환했습니다. 자세한 내용은 Chartboost의 문서를 참조하세요.
101 요청된 광고 크기가 Chartboost 지원 배너 크기와 일치하지 않습니다.
102 Chartboost는 위치당 한 번에 1개의 광고만 로드할 수 있습니다.
103 UI에 구성된 Chartboost 서버 매개변수가 AdMob 누락되거나 잘못되었습니다.
104 Chartboost 전면 광고 또는 보상형 광고를 게재할 준비가 되지 않았습니다.
101 UI에 구성된 Chartboost 서버 매개변수가 AdMob 누락되거나 잘못되었습니다.
102 Chartboost SDK에서 초기화 오류를 반환했습니다.
103 Chartboost 광고는 표시 시간에 캐시되지 않습니다.
104 요청된 광고 크기가 Chartboost 지원 배너 크기와 일치하지 않습니다.
105 기기의 OS 버전이 Chartboost SDK의 최소 지원 OS 버전보다 낮습니다.
200-299 Chartboost SDK 캐시 오류입니다. 자세한 내용은 코드를 참고하세요.
300-399 Chartboost SDK에서 오류를 표시합니다. 자세한 내용은 코드를 참고하세요.
400-499 Chartboost SDK 클릭 오류입니다. 자세한 내용은 코드를 참고하세요.

Chartboost iOS 미디에이션 어댑터 변경 로그

버전 9.6.0.1

  • 이제 iOS 버전 12.0 이상이 필요합니다.
  • 이제 Google 모바일 광고 SDK 버전 11.0 이상이 필요합니다.
  • ChartboostAdapter.xcframework 내 프레임워크에 Info.plist가 포함되었습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 11.0.1
  • Chartboost SDK 버전 9.6.0

버전 9.6.0.0

  • Chartboost SDK 버전 9.6.0과의 호환성이 확인되었습니다.
  • 지원 중단된 GADMobileAds.sharedInstance.sdkVersion 메서드를 GADMobileAds.sharedInstance.versionNumber로 대체했습니다.
  • GADMediationInterstitialAd 구현을 추가했습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.14.0
  • Chartboost SDK 버전 9.6.0

버전 9.5.1.0

  • Chartboost SDK 버전 9.5.1과의 호환성이 확인되었습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.12.0
  • Chartboost SDK 버전 9.5.1

버전 9.4.0.0

  • Chartboost SDK 버전 9.4.0과의 호환성이 확인되었습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.7.0
  • Chartboost SDK 버전 9.4.0

버전 9.3.1.0

  • Chartboost SDK 버전 9.3.1과의 호환성이 확인되었습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.7.0
  • Chartboost SDK 버전 9.3.1

버전 9.3.0.0

  • Chartboost SDK 버전 9.3.0과의 호환성이 확인되었습니다.
  • 이제 iOS 버전 11.0 이상이 필요합니다.
  • 이제 Google 모바일 광고 SDK 버전 10.4.0 이상이 필요합니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.4.0
  • Chartboost SDK 버전 9.3.0

버전 9.2.0.0

  • ChartboostAdapter 헤더 파일의 GADMChartboostExtras 가져오기가 삭제되었습니다.
  • Chartboost SDK 버전 9.2.0과의 호환성이 확인되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 10.0.0 이상이 필요합니다.
  • armv7 아키텍처 지원을 삭제했습니다.
  • 이제 iOS 버전 11.0 이상이 필요합니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 10.0.0
  • Chartboost SDK 버전 9.2.0

버전 9.1.0.0

  • Chartboost SDK 버전 9.1.0과의 호환성이 확인되었습니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 9.11.0
  • Chartboost SDK 버전 9.1.0

버전 9.0.0.0

  • Chartboost SDK 버전 9.0.0과의 호환성이 확인되었습니다.
  • Google 모바일 광고 SDK 버전 9.10.0과의 호환성이 확인되었습니다.
  • didRewardUser API를 사용하도록 어댑터가 업데이트되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 9.8.0 이상이 필요합니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 버전 9.10.0
  • Chartboost SDK 버전 9.0.0

버전 8.5.0.2

  • Google 모바일 광고 SDK 버전 9.0.0과의 호환성이 확인되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 9.0.0 이상이 필요합니다.

빌드 및 테스트 대상:

  • Google 모바일 광고 SDK 9.0.0 버전
  • Chartboost SDK 버전 8.5.0

버전 8.5.0.1.0

  • CocoaPods에서 버전 8.5.0.1을 참조하는 Chartboost SDK 8.5.0과의 호환성을 확인했습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.13.0
  • Chartboost SDK 버전 8.5.0

버전 8.5.0.0

  • Chartboost SDK 8.5.0과의 호환성이 검증되었습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.12.0
  • Chartboost SDK 버전 8.5.0

버전 8.4.2.0

  • Chartboost SDK 8.4.2와의 호환성이 확인되었습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.6.0
  • Chartboost SDK 버전 8.4.2

버전 8.4.1.1

  • Google 모바일 광고 SDK 버전 8.0.0 이상에 대한 종속 항목이 완화됨

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.4.0
  • Chartboost SDK 버전 8.4.1

버전 8.4.1.0

  • Chartboost SDK 8.4.1과의 호환성이 확인되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 8.1.0 이상이 필요합니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.1.0
  • Chartboost SDK 버전 8.4.1

버전 8.4.0.1

  • 표준화된 어댑터 오류 코드 및 메시지가 추가되었습니다.
  • .xcframework 형식을 사용하도록 어댑터가 업데이트되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 8.0.0 이상이 필요합니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 8.0.0
  • Chartboost SDK 버전 8.4.0

버전 8.4.0.0

  • Chartboost SDK 8.4.0과의 호환성이 검증되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 7.68.0 이상이 필요합니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 7.68.0
  • Chartboost SDK 버전 8.4.0

버전 8.3.1.0

  • Chartboost SDK 8.3.1과의 호환성이 확인되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 7.66.0 이상이 필요합니다.
  • 이제 iOS 버전 10.0 이상이 필요합니다.
  • 적응형 배너 요청을 지원하도록 어댑터가 업데이트되었습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 7.66.0
  • Chartboost SDK 버전 8.3.1

버전 8.2.1.0

  • Chartboost SDK 8.2.1과의 호환성이 확인되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 7.64.0 이상이 필요합니다.
  • 이제 iOS 버전 9.0 이상이 필요합니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 7.64.0
  • Chartboost SDK 버전 8.2.1

버전 8.2.0.0

  • Chartboost SDK 8.2.0과의 호환성이 검증되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 7.61.0 이상이 필요합니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 7.61.0
  • Chartboost SDK 버전 8.2.0

버전 8.1.0.1

  • 필요한 Google 모바일 광고 SDK의 최소 버전이 7.60.0으로 업데이트되었습니다.
  • Chartboost의 새 API를 사용하도록 어댑터가 업데이트되고 지원 중단된 API가 삭제되었습니다.
  • 이제 어댑터에서 동일한 Chartboost 위치를 사용하여 동일한 형식의 여러 광고를 로드할 수 있습니다.
  • AdMob 또는 Ad Manager UI에서 리워드가 재정의되지 않으면 이제 보상형 광고의 리워드 값이 0이 아닌 Chartboost UI에 지정된 값이 됩니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 7.60.0
  • Chartboost SDK 버전 8.1.0

버전 8.1.0.0

  • Chartboost SDK 8.1.0과의 호환성이 검증되었습니다.
  • 필요한 Google 모바일 광고 SDK의 최소 버전이 7.59.0으로 업데이트되었습니다.
  • i386 아키텍처에 대한 지원을 삭제했습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 버전 7.59.0
  • Chartboost SDK 버전 8.1.0

버전 8.0.4.0

  • Chartboost SDK 8.0.4와의 호환성이 확인되었습니다.

빌드 및 테스트 대상

  • Google 모바일 광고 SDK 7.52.0
  • Chartboost SDK 버전 8.0.4

버전 8.0.1.1

  • 배너 광고를 요청하면 채우기가 반환되지 않는 문제가 해결되었습니다.

버전 8.0.1.0

  • Chartboost SDK 8.0.1과의 호환성이 검증되었습니다.
  • 배너 광고 요청에 대한 지원이 추가되었습니다.

버전 7.5.0.1

  • Chartboost SDK를 올바르게 초기화하는 코드를 추가했습니다.

버전 7.5.0.0

  • Chartboost SDK 7.5.0과의 호환성이 검증되었습니다.
  • 새로운 보상형 API를 사용하도록 어댑터가 업데이트되었습니다.
  • 여러 전면 광고 요청을 처리하도록 어댑터가 업데이트되었습니다.
  • 이제 Google 모바일 광고 SDK 버전 7.42.2 이상이 필요합니다.

버전 7.3.0.0

  • Chartboost SDK 7.3.0과의 호환성이 검증되었습니다.

버전 7.2.0.1

  • 어댑터에 adapterDidCompletePlayingRewardBasedVideoAd: 콜백을 추가했습니다.

버전 7.2.0.0

  • Chartboost SDK 7.2.0과의 호환성이 검증되었습니다.

버전 7.1.2.0

  • Chartboost SDK 7.1.2와의 호환성이 확인되었습니다.

버전 7.1.1.0

  • Chartboost SDK 7.1.1과의 호환성이 검증되었습니다.

버전 7.1.0.0

  • Chartboost SDK 7.1.0과의 호환성이 검증되었습니다.

버전 7.0.4.0

  • Chartboost SDK 7.0.4와의 호환성이 확인되었습니다.

버전 7.0.3.0

  • Chartboost SDK 7.0.3과의 호환성이 확인되었습니다.

버전 7.0.2.0

  • Chartboost SDK 7.0.2와의 호환성이 확인되었습니다.
  • 두 가지 새로운 Chartboost 오류 코드 지원이 추가되었습니다.

버전 7.0.1.0

  • Chartboost SDK 7.0.1과의 호환성이 확인되었습니다.

버전 7.0.0.0

  • Chartboost SDK 7.0.0과의 호환성이 검증되었습니다.

버전 6.6.3.0

  • Chartboost SDK 6.6.3과의 호환성이 확인되었습니다.
  • 'armv7s' 아키텍처에 대한 지원이 삭제되었습니다.
  • 게시자가 ChartboostAdapter.framework를 모듈식이 아닌 Chartboost SDK를 가져오는 모듈로 가져올 때 Swift에서 컴파일 문제가 발생하는 버그를 수정했습니다.

버전 6.6.2.0

  • Chartboost SDK 6.6.2와의 호환성이 확인되었습니다.

버전 6.6.1.0

  • Chartboost SDK 6.6.1과의 호환성이 확인되었습니다.

버전 6.6.0.0

  • Chartboost SDK 6.6.0과의 호환성이 검증되었습니다.

버전 6.5.2.1

  • 비트코드 지원이 사용 설정되었습니다.
  • 이제 Chartboost 어댑터를 프레임워크로 배포합니다.
  • 프로젝트에 ChartboostAdapter.framework를 가져오려면 대상의 빌드 설정에서 Allow Non-modular Includes in Framework ModulesYES로 설정해야 합니다.

버전 6.5.2.0

  • 버전 이름 지정 시스템이 [Chartboost SDK 버전].[어댑터 패치 버전]로 변경되었습니다.
  • 필요한 최소 Chartboost SDK가 v6.5.1로 업데이트되었습니다.
  • 필요한 최소 Google 모바일 광고 SDK가 v7.10.1로 업데이트되었습니다.
  • 여러 Chartboost 광고 위치를 지원할 수 있도록 버그가 수정되었습니다.
  • 이제 전면 광고가 닫히려고 할 때 앱에서 interstitialWillDismissScreen: 콜백을 가져옵니다.
  • 이제 보상 기반 동영상 광고가 열릴 때 앱에서 rewardBasedVideoAdDidOpen: 콜백을 수신합니다.

버전 1.1.0

  • Chartboost 추가 항목에서 Chartboost 광고 위치를 삭제했습니다. 이제 미디에이션을 위해 Chartboost를 구성할 때 AdMob 콘솔에서 광고 위치가 지정됩니다.

버전 1.0.0

  • 첫 출시입니다. 보상 기반 동영상 광고 및 전면 광고를 지원합니다.