> For the complete documentation index, see [llms.txt](https://one-admax-organization.gitbook.io/one-admax-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://one-admax-organization.gitbook.io/one-admax-sdk/oamsdk.md).

# 03. SDK for Java

## **SDK** Installation <a href="#id-01.sdk-sdk" id="id-01.sdk-sdk"></a>

gradle을 이용하여 SDK 설정이 가능합니다.

## Maven Settings <a href="#id-01.sdk-maven" id="id-01.sdk-maven"></a>

프로젝트 수준 build.gradle에 다음과 같이 maven을 추가합니다.

```java
repositories {
    google()
    mavenCentral()
}
```

## Dependency Settings

앱 수준 build.gradle에 다음과 같이 dependency를 추가합니다.

```java
dependencies {
    ...
    implementation 'com.oneadmax.sdk:sdk-ads:1.2.5'
    ...
}
```

## 필수 Permission 설정 <a href="#id-01.sdk-permission" id="id-01.sdk-permission"></a>

다음의 필수 권한이 Android Manifest에 추가되어 있어야 합니다.

```java
<manifest>
...
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
...
</manifest>
```

***

## **ONE AdMax SDK**  <a href="#id-01.sdk-oneadmaxsdk" id="id-01.sdk-oneadmaxsdk"></a>

### 매체키 등록 <a href="#id-01.sdk-." id="id-01.sdk-."></a>

Android Manifest의 application 태그 내에 ONE AdMax 콘솔에서   발급 받은 매체 키를 추가합니다.

```java
<manifest>
    ...
    <application>  
        <meta-data android:name="com.oneadmax.global.appkey" android:value="your_app_key" />
    </application>
     ...
</manifest>
```

### **SDK 초기화** <a href="#id-01.sdk-sdk" id="id-01.sdk-sdk"></a>

```java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate( savedInstanceState );
    ...
     
    if( ONEAdMax.isInit( MyActivity.this ) == false ){
        ONEAdMax.init( MyActivity.this, new IOAMInitListener() {
            @Override
            public void onInitialized() {
                Log.d( Tag, "ONEAdMax SDK Initialized.");
            }
        });
    }
    ...
}
```

### **SDK 해제** <a href="#id-01.sdk-sdk" id="id-01.sdk-sdk"></a>

어플리케이션이 종료될 때 메모리에 할당된  리소스( View, Memory )를 해제합니다.\
앱이 종료될 때 호출되는 activity의 `onDestroy()`에서 호출합니다.

```java
@Override
protected void onDestroy() {
    // TODO Auto-generated method stub 
    super.onDestroy();  
     
    ...
 
    ONEAdMax.unInit();
}
```

### **Log Settings** <a href="#id-01.sdk-log" id="id-01.sdk-log"></a>

ONE AdMax SDK의 로그를 활성 또는 비활성화 합니다.

```java
ONEAdMax.setLogEnable( true ); // default false
```

### **GDPR Settings** <a href="#id-01.sdk-gdpr" id="id-01.sdk-gdpr"></a>

EU의 GDPR (General Data protection Regulation) 법안에 대응하기 위해 아래 API를 사용합니다.\
GDPR 동의가 필요한 유저에 한해 다음 API를 호출합니다.

```java
ONEAdMax.gdprConsentAvailable( false ); // Default : true
```

### COPPA Settings <a href="#coppa" id="coppa"></a>

COPPA([Children's Online Privacy Protection Rule](https://www.ftc.gov/legal-library/browse/rules/childrens-online-privacy-protection-rule-coppa))법안에 대응하기 위해 아래 API를 추가 합니다.\
해당 디바이스에서는 모든 광고 타입의 광고 요청에 대해 No ad 처리 됩니다. (기본값: false)

```csharp
ONEAdMaxClient.tagForChildDirectedTreatment(false);
```
