# 참여 플레이어의 광고 빈도 감소

> Adjust ad frequency for specific player groups using Game Overrides and Remote Config.

## 시나리오##scenario

이 문서에서는 다음을 설명하는 샘플 게임 사용 방법에 대해 설명합니다.

* 플레이어의 캐릭터가 제거(사망)될 때 플레이어에게 광고를 표시하는 방법입니다.
* 참여 플레이어를 타게팅하는 방법입니다.
* 참여 플레이어의 조회 빈도를 변경하는 방법입니다. (참여 플레이어는 지난 7일 동안 매일 플레이한 플레이어입니다.)

‘Platformer Microgame’이라는 Unity 프로젝트로 작업할 예정이지만 이 사용 사례는 다른 게임에도 적용할 수 있습니다.

## 요구 사항##requirements

* Unity 2019.4 이상
* Unity Ads\*
* Authentication
* Remote Config
* Unity Analytics 베타 등록

**참고**: 이 예에서는 Unity Ads를 다루지 않습니다. 그러나 사전 제작된 클래스 내에서 ShowAd 함수를 호출할 수 있습니다. [Unity 광고](https://unityads.unity3d.com/)를 참고하십시오.

## 가이드##instructions

다음은 단계에 대한 개요입니다. 각 단계에 대한 자세한 설명은 아래에 나와 있습니다.

1. **Authentication, Remote Config**와 **Analytics**를 설치합니다.
2. **Unity 에디터**에서 게임을 Analytics에 연결합니다.
3. **Remote Config 키**를 기본값으로 설정합니다.
4. 게임의 Remote Config에서 값을 가져옵니다.
5. 언제 광고를 표시할지 결정합니다.
6. 잠재 고객에 대한 Remote Config 키를 조정하려면 오버라이드를 설정합니다.

### Analytics와 Authentication, Remote Config 패키지 설치##install-analytics-authentication-and-remote-config-packages

Unity Dashboard에 로그인하여 이 사용 사례에 필요한 패키지(Analytics와 Authentication, Remote Config)를 찾습니다.


**Frame:**
![](/api/media?file=/game-overrides/media/images/download-package.png)

각 패키지를 다운로드하고 설치합니다. 프로젝트의 PACKAGES 폴더에 패키지를 바로 추가합니다. manifest.json 파일을 열고 종속성에 다음을 추가합니다.

```plaintext
"com.unity.services.authentication": "1.0.0-pre.4",
"com.unity.services.analytics": "3.0.0-pre.2",
"com.unity.remote-config": "3.0.0-pre.3"
```

### 게임 연결##link-your-game

Unity 에디터에서 **Edit** > **Project Settings** > **Services**를 클릭합니다. 관련 프로젝트를 선택하고 연결합니다. 그러면 프로젝트가 대시보드에 연결됩니다.

### Remote Config 키 설정##set-up-a-remote-config-key

Remote Config 키를 설정하는 방법에는 두 가지 방법이 있습니다. 대시보드 또는 에디터에서 설정하는 방법입니다.

Unity Dashboard에서 Remote Config의 **Config** 페이지로 이동합니다. **LiveOps** 아래 사이드바에서 찾을 수 있습니다.

참여 플레이어에 대해 변경할 구성 키를 추가하려면 다음을 수행합니다.

1. **Add Key**를 클릭합니다.
2. 키 이름 *adFrequency*를 입력합니다.
3. *Int* 유형을 선택하고 값을 1로 입력합니다.
4. **Save**를 클릭합니다.

이 값은 모든 플레이어의 기본값이 됩니다.


**Frame:**
![](/api/media?file=/game-overrides/media/images/config-values.png)

또는 Unity 에디터에서 이러한 구성 값을 업데이트할 수 있습니다. 메뉴 표시줄에서 **Window**를 클릭한 다음 **Remote Config**를 클릭합니다. Dashboard와 유사한 편집 패널이 있습니다.

### 게임 설정##setting-up-your-game

다음 코드를 사용하여 Remote Config에서 adFrequency 데이터를 가져옵니다. 이 코드를 씬의 빈 오브젝트에 연결합니다.

```cs
using Unity.RemoteConfig;
using Unity.Services.Authentication;
using Unity.Services.Core;
using UnityEngine;
public class UGS : MonoBehaviour
{
 
    public struct userAttributes { }
    public struct appAttributes { }
 
    public int adFrequency = 1; //Default is 1 ad on death
 
    async void Start()
    {
 
        await UnityServices.InitializeAsync();
        // remote config requires authentication for managing environment information
        if (!AuthenticationService.Instance.IsSignedIn)
        {
            await AuthenticationService.Instance.SignInAnonymouslyAsync();
        }
        ConfigManager.FetchCompleted += ConfigManager_FetchCompleted;
        ConfigManager.FetchConfigs(new userAttributes(), new appAttributes());
    }
   
    void ConfigManager_FetchCompleted(ConfigResponse configResponse)
    {
 
        switch (configResponse.requestOrigin)
        {
            case ConfigOrigin.Default:
                Debug.Log("Default values will be returned");
                break;
            case ConfigOrigin.Cached:
                Debug.Log("Cached values loaded");
                break;
            case ConfigOrigin.Remote:
                Debug.Log("Remote Values loaded");
                adFrequency = ConfigManager.appConfig.GetInt("adFrequency");
                break;
        }
    }
}
```

오브젝트가 로드되면 익명 사용자가 초기화됩니다. 이제 Remote Config에서 **adFrequency** 구성 값을 얻었습니다.

예를 들어 *adFrequency* 값이 3으로 변경되면 플레이어가 세 번째로 사망하거나 레벨에 실패할 때마다 광고를 표시하려고 합니다.

사망 로직은 플레이어가 사망한 횟수를 계산합니다. 사망 횟수가 빈도와 같으면 광고가 표시됩니다. 그렇지 않으면 광고가 표시되지 않습니다.

```cs
   countDeath++;
    if(ugs.adFrequency == countDeath)
    {
        countDeath = 0;
        PlayerPrefs.SetInt("countDeathForAds",countDeath);
        ads.ShowAd();
    }
```

### 오버라이드 설정##setting-up-an-override

위의 단계를 따르면 초기 설정이 완료됩니다.

이 예제의 목표는 다음과 같습니다. 참여 플레이어를 생성하여 오버라이드를 타게팅하고 adFrequency를 낮춰 세 번째로 사망할 때마다 광고를 표시합니다. 참여하지 않은 플레이어는 사망할 때마다 계속 광고를 보게 됩니다.

사이드 내비게이션의 **LiveOps**에 있는 **Game Overrides**에서 **개요**로 이동합니다.

1. **Create Override**를 클릭합니다.

2. 오버라이드 **이름**을 입력하고 **Next**를 클릭합니다.

3. **Stateful Audiences**를 클릭하고 사전 정의된 잠재 고객 ‘Engaged Players’를 선택한 후 **Next**를 클릭합니다.

   1. **참고**: 상태 보존 잠재 고객을 활성화하려면 Unity Analytics가 설치되어 있는지 확인합니다.

4. **Choose Content Type**을 클릭하고 **Config Overrides**를 선택한 다음 **Done**을 클릭합니다.

5. **Key Name** 드롭다운에서 **adFrequency**를 선택하고 값 **3**을 입력한 뒤 **Next**를 클릭합니다.


   **Frame:**
   ![](/api/media?file=/game-overrides/media/images/ad-frequency.png)

6. 중간 우선순위로 오버라이드가 즉시 무기한 실행되도록 예약하고 **Finish**를 클릭합니다. 우선순위를 조정하여 오버라이드 간의 잠재적인 충돌을 관리할 수 있습니다.

7. 변경 사항을 확인하고 **Enable**을 클릭합니다.

이제 오버라이드가 활성화되었으며 참여 플레이어는 세 번째로 사망할 때마다 광고를 수신하게 됩니다.

질문이 있는 경우 [지원 티켓](https://support.unity.com/)을 제출하십시오.
