> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 위치 기반 메시지

> OneSignal을 사용하여 국가, GPS 좌표 또는 지오펜스로 사용자를 세그먼트화하고 위치 트리거 푸시 알림을 보내세요.

사용자가 있는 곳을 기반으로 메시지를 보낼 수 있습니다. OneSignal은 국가, GPS 좌표 또는 맞춤 태그로 사용자를 세그먼트화하여 물리적 위치를 기반으로 시기적절하고 관련성 있는 아웃리치를 생성할 수 있습니다.

사용자가 앱과 상호 작용하고 위치 추적이 활성화되면 좌표가 주기적으로 업데이트되며(앱 사용 중 약 5분마다) [Journeys](./journeys-overview) 또는 메시지 생성 도구를 통해 메시지를 보내는 데 사용할 수 있습니다.

<Warning>
  **OneSignal은 기본적으로 GPS 위치를 추적하지 않습니다.** SDK는 다음 세 가지 조건이 모두 충족될 때만 위도와 경도를 수집합니다:

  1. 앱에 올바른 위치 권한과 종속성이 있다.
  2. 앱이 OneSignal과의 공유를 명시적으로 활성화한다. 이 없이는 앱이 위치 데이터를 수집할 수 있지만 OneSignal과 공유되지 않습니다.
  3. 사용자가 시스템 프롬프트에서 위치 권한을 부여한다.

  설정은 [위치 추적 설정](#위치-추적-설정)을 참조하세요. SDK 위치 동작의 배경에 대해서는 [You're in Control: How Location Actually Works in OneSignal's SDK](https://onesignal.com/blog/youre-in-control-how-location-actually-works-in-onesignals-sdk/)를 참조하세요.
</Warning>

***

## 국가별 타겟팅

국가는 기기의 IP 주소를 기반으로 결정되며 사용자가 앱을 열 때마다 자동으로 업데이트됩니다. 값은 ISO 3166-1 Alpha-2 두 글자 국가 코드를 사용합니다(예: `US`, `GB`, `CA`).

[세그먼트](./segmentation)의 `country` 필드 또는 [세그먼트 생성 API](/reference/create-segments)의 `filters` 파라미터를 사용하여 국가별로 타겟팅하세요:

```json theme={null}
"filters": [
  { "field": "country", "relation": "=", "value": "US" }
]
```

***

## 위치로 타겟팅 (위도, 경도 및 반경)

모바일 앱이 GPS 위치를 수집하고 OneSignal과 공유하는 경우, SDK는 약 5분마다 사용자의 좌표를 업데이트합니다(권한 및 시스템 규칙에 따라). 앱이 강제 종료되면 사용자가 다시 열 때까지 위치를 추적할 수 없습니다.

### 위치 추적 설정

위치 추적은 OneSignal 대시보드가 아닌 모바일 앱 코드에서 구성합니다. 최소한 앱에 다음이 필요합니다:

* iOS 및 Android용 기본 위치 권한과 종속성을 추가한다.
* `Location.isShared` 플래그를 활성화하여 OneSignal과 좌표를 공유한다.
* 시스템 위치 권한을 요청하거나, 더 높은 옵트인 율을 위해 [인앱 메시지를 소프트 사전 프롬프트로 사용](./location-opt-in-prompt)한다.

<Card title="Mobile SDK 위치 참조" icon="location-dot" href="./mobile-sdk-reference#location">
  iOS, Android, React Native, Flutter, Unity, Cordova/Ionic에 대한 전체 설정 및 플랫폼별 코드.
</Card>

<Check>
  위치 추적이 활성화되면 `location` 필터를 사용하여 API를 통해 세그먼트를 생성하거나 메시지를 보낼 수 있습니다.
</Check>

<Frame caption="세그먼트의 위치 필터">
  <img src="https://mintcdn.com/onesignal/3zq1PvSaqvUE2bIx/images/docs/3109479-Screen_Shot_2021-02-09_at_8.28.43_AM.png?fit=max&auto=format&n=3zq1PvSaqvUE2bIx&q=85&s=13644c44bf75d4907e7fbda8641ae1bd" alt="OneSignal segment builder showing the location radius filter with latitude, longitude, and radius fields" width="1440" height="938" data-path="images/docs/3109479-Screen_Shot_2021-02-09_at_8.28.43_AM.png" />
</Frame>

***

## 웹 푸시 위도 및 경도 추적

OneSignal은 웹의 위도/경도를 **수집하지 않습니다**. 그러나 태그를 사용하여 웹 앱에서 위치를 설정하거나 [사용자 업데이트 API](/reference/update-user)를 사용하여 서버에서 위치를 설정할 수 있습니다.

**태깅 예시:**

1. 브라우저의 [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API)를 사용하여 웹 앱에서 위치 액세스를 요청하세요.
2. JavaScript를 사용하여 사용자의 좌표를 감지하세요.
3. [태그](./add-user-data-tags)를 사용하여 해당 좌표를 OneSignal로 보내세요.

```javascript theme={null}
OneSignal.User.addTags({
  lat: "37.160",
  long: "-117.773"
});
```

태그가 설정되면 태그 범위 필터를 조합하여 지오펜싱된 세그먼트를 생성하세요. 예를 들어, 경계 상자 `37° ≤ lat < 38°` 및 `-118° ≤ long < -117°` 내의 사용자를 타겟팅하려면 세그먼트 빌더에 다음 네 가지 필터를 추가하세요:

* 태그 `lat`가 `37`보다 큰
* 태그 `lat`가 `38`보다 작은
* 태그 `long`이 `-118`보다 큰
* 태그 `long`이 `-117`보다 작은

***

## 도시 또는 사용자 지정 위치로 타겟팅

OneSignal은 기본적으로 도시나 지역 코드를 감지하지 않습니다. 도시 또는 사용자 지정 위치로 타겟팅하려면:

* 사용자가 양식에 도시 또는 지역을 입력하도록 합니다.
* 또는 JavaScript와 역 지오코딩(예: Google Maps API)을 사용하여 좌표에서 도시를 추론합니다.
* 도시 이름을 [데이터 태그](./add-user-data-tags)로 보냅니다.

```javascript theme={null}
OneSignal.User.addTag("city", "San Francisco");
```

***

## FAQ

### 위치 추적이 웹에서 작동하나요?

기본적으로는 아닙니다. OneSignal의 Web SDK는 GPS 좌표를 수집하지 않습니다. 웹 푸시에서 위치 기반 세그먼트를 사용하려면 브라우저의 [Geolocation API](https://developer.mozilla.org/en-US/docs/Web/API/Geolocation_API)에서 직접 좌표를 수집하여 OneSignal에 [태그](./add-user-data-tags)로 보내고, 해당 태그에 범위 필터 세그먼트를 구축하세요. [웹 푸시 위도 및 경도 추적](#웹-푸시-위도-및-경도-추적)을 참조하세요.

### 앱이 위치를 추적하지 않는 이유는 무엇인가요?

세 가지 설정 조건이 모두 충족되었는지 확인하세요: 앱에 올바른 위치 권한 및 종속성이 설치되어 있는지, `Location.isShared`가 `true`로 설정되어 있는지, 사용자가 시스템 프롬프트에서 위치 권한을 부여했는지. 플랫폼별 설정 및 일반적인 수정 사항(Android `play-services-location` 종속성 포함)은 [Mobile SDK 위치 참조](./mobile-sdk-reference#location)를 참조하세요.

### SDK는 얼마나 자주 위치를 업데이트하나요?

위치 추적이 활성화되면 앱을 사용하는 동안 SDK가 약 5분마다 좌표를 업데이트합니다. 앱이 강제 종료되면 사용자가 앱을 다시 열 때까지 위치 업데이트가 일시 중지됩니다.

### 도시로 사용자를 타겟팅할 수 있나요?

기본적으로는 불가능합니다. OneSignal은 국가(IP 주소 통해)와 GPS 좌표(SDK 통해)를 추적하지만 도시나 지역 코드는 추적하지 않습니다. 역 지오코딩 서비스를 사용하여 좌표에서 도시를 추론하고 태그로 저장할 수 있습니다. [도시 또는 사용자 지정 위치로 타겟팅](#도시-또는-사용자-지정-위치로-타겟팅)을 참조하세요.

***

## 관련 페이지

<Columns cols={2}>
  <Card title="위치 선택 프롬프트" icon="message" href="./location-opt-in-prompt">
    기본 위치 권한을 요청하기 전에 인앱 메시지를 소프트 사전 프롬프트로 사용하세요.
  </Card>

  <Card title="세그먼트" icon="users" href="./segmentation">
    위치 필터, 태그 및 사용자 속성을 사용하여 대상 세그먼트를 생성하세요.
  </Card>
</Columns>
