> ## 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.

# URL, 링크 및 딥 링크

> 푸시, 이메일, 인앱 메시지, SMS 및 RCS에서 Launch URL, 딥 링크, 동적 URL, UTM 추적 및 클릭 추적을 설정합니다.

## 링크 작동 방식

모든 OneSignal 메시지(푸시, 이메일, 인앱 메시지, SMS 또는 RCS)에는 사용자가 클릭할 때 이동할 목적지 URL을 포함할 수 있습니다. 해당 목적지는 브라우저에서 열리는 웹 페이지이거나 앱에서 직접 열리는 [딥 링크](#deep-links)일 수 있습니다.

URL 설정 방법은 채널에 따라 다릅니다:

* **푸시**: 대시보드의 **Launch URL** 필드 또는 API의 `url` 파라미터를 사용합니다.
* **이메일**: 이메일 편집기 또는 HTML을 사용하여 링크를 추가합니다. OneSignal은 클릭을 자동으로 추적합니다.
* **인앱 메시지**: 버튼, 이미지 또는 배경에 [클릭 작업](./iam-click-actions)을 설정합니다.
* **SMS/RCS**: 링크를 인라인으로 추가합니다. 자동 단축 및 추적을 위해 대시보드에서 **Insert Trackable Link**를 사용합니다. [SMS/RCS 추적 가능한 링크](#sms%2Frcs-trackable-links)를 참조하세요.

### 딥 링크

브라우저 대신 앱 내부의 콘텐츠를 열려면 딥 링크를 사용합니다. 딥 링크 지원은 채널에 따라 다릅니다:

* **푸시 및 인앱 메시지**: `your-app://product/123`과 같은 커스텀 URL 스킴과 `https://` 유니버설 링크 / 앱 링크를 지원합니다.
* **이메일 및 SMS**: `https://` 유니버설 링크 / 앱 링크만 지원됩니다. 이메일 클라이언트와 SMS 앱은 커스텀 URL 스킴을 처리하지 않으므로 사용할 수 없습니다.

<Card title="딥 링킹" icon="link" href="./deep-linking">
  커스텀 URL 스킴, 유니버설 링크 및 앱별 라우팅을 위한 전체 설정 가이드.
</Card>

### 푸시

#### Launch URL

Launch URL은 사용자가 푸시 알림을 클릭할 때 열립니다. `https://`로 시작해야 합니다.

<Info>
  Apple 기기에서 `http://` URL을 사용하려면 앱의 `Info.plist` 파일에서 [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity) 속성을 설정해야 합니다.
</Info>

웹과 모바일 User 모두에게 단일 메시지를 보내는 경우 플랫폼별 URL 필드를 사용합니다:

* `url` — 모든 플랫폼을 대상으로 합니다
* `web_url` — 웹 푸시 Subscription만 대상으로 합니다
* `app_url` — 모바일 Subscription만 대상으로 합니다

<Frame caption="OneSignal 대시보드의 Launch URL 필드">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-launch-url.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=5b5687b99e1bc2ab8c3afd9e1780c1a5" alt="푸시 알림용 Launch URL 입력 필드를 보여주는 OneSignal 대시보드" width="1066" height="440" data-path="images/dashboard/push-launch-url.png" />
</Frame>

<Tip>
  페이지를 열지 않고 웹 푸시 알림을 닫으려면 Launch URL에 `?_osp=do_not_open`을 추가합니다(예: `https://yoursite.com/page?_osp=do_not_open`). 이는 웹 푸시에서만 작동합니다.
</Tip>

#### Additional data

Launch URL 대신 **Additional Data** 필드(API의 `data`)를 사용하여 커스텀 키-값 쌍을 보낼 수 있습니다. 앱은 [SDK의 알림 클릭 리스너](./mobile-sdk-reference#push-notification-events)를 통해 `additionalData` 속성으로 이 데이터를 읽습니다. 단일 URL보다 더 많은 유연성이 필요할 때 유용합니다.

<Frame caption="앱에서 처리할 URL을 Additional Data 필드를 통해 전송">
  <img src="https://mintcdn.com/onesignal/KudGm9GSZy-rIRO3/images/dashboard/push-additional-data.png?fit=max&auto=format&n=KudGm9GSZy-rIRO3&q=85&s=9c00048fd23586de1e3e70a82fcd1db7" alt="커스텀 키-값 쌍이 있는 Additional Data 필드를 보여주는 OneSignal 대시보드" width="1034" height="378" data-path="images/dashboard/push-additional-data.png" />
</Frame>

### Email link tracking

OneSignal은 이메일에 대해 **Track link clicks**가 활성화된 경우(기본적으로 켜져 있음) 이메일 내 링크 클릭을 자동으로 추적합니다. OneSignal은 이메일당 및 개별 링크당(이메일당 최대 30개 링크) 총 클릭 수와 고유 클릭 수를 추적합니다. [이메일 메시지 보고서](./email-message-reports)에서 이 통계를 확인할 수 있습니다.

<Note>
  수신 거부 링크에 대해서는 [수신 거부 링크 및 이메일 구독](./unsubscribe-links-email-subscriptions)을 참조하세요.
</Note>

<Frame caption="링크별 추적 통계를 보여주는 Click Activity 표">
  <img src="https://mintcdn.com/onesignal/3PUtCumasMeFG2p0/images/docs/link_tracking.png?fit=max&auto=format&n=3PUtCumasMeFG2p0&q=85&s=318dab483003dac8e1203ab75b5c2756" alt="링크별 총 및 고유 클릭 수가 있는 클릭 활동을 보여주는 OneSignal 이메일 메시지 보고서" width="957" height="312" data-path="images/docs/link_tracking.png" />
</Frame>

<Accordion title="이메일 클릭 추적이 URL을 다시 쓰는 방법">
  추적은 클릭 이벤트를 캡처하기 위해 URL을 다시 쓴 다음 사용자를 원래 목적지로 리디렉션하는 방식으로 작동합니다. 이는 거의 즉시 발생하지만 [딥 링크](./deep-linking)에서 예상치 못한 동작을 일으킬 수 있습니다. 예를 들어:

  `https://some-domain.com/the-page`

  는 다음과 같이 변환됩니다:

  `https://some-domain/c/eJxU0D2uGzEMBODTrDoZJPW3...`

  사용자는 의도한 URL로 즉시 리디렉션됩니다.
</Accordion>

Liquid 구문으로 링크를 구성하는 경우 OneSignal이 자동으로 감지하지 못할 수 있습니다. 링크를 추적 가능하도록 명시적으로 표시하세요:

```liquid theme={null}
{{ 'https://some-domain.com/the-page' | track_link }}
```

전체 이메일에 대해 추적을 비활성화하려면 대시보드 이메일 편집기에서 **Track link clicks** 체크박스를 해제하거나 API에서 `disable_email_click_tracking: true`로 설정합니다.

<Frame caption="추적을 비활성화하기 위해 Track link clicks 체크박스를 해제한 상태">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/onesignal/images/docs/8d3292a5cb0b24a4b5bc8f9ae1074f513c3fed310045a6b6c534b94e344a401b-Screenshot_2025-02-14_at_11.50.38_AM.png" alt="Track link clicks가 해제된 OneSignal 대시보드 이메일 설정" />
</Frame>

특정 링크에 대해서만 추적을 비활성화하고 나머지는 추적을 유지하려면 해당 앵커 태그에 `disable-tracking=true` 속성을 추가하세요:

```html theme={null}
<a href="https://some-domain.com/the-page" disable-tracking=true>페이지 보기</a>
```

<Warning>
  전체 이메일에 대해 추적을 비활성화하면 클릭 데이터가 수집되지 않으며 [이메일 메시지 보고서](./email-message-reports)에서 CTR이 "N/A"로 표시됩니다.
</Warning>

### SMS/RCS trackable links

OneSignal은 `1sgnl.co` 도메인을 사용하여 SMS/RCS 메시지에 대한 추적 가능한 단축 링크를 제공합니다. URL을 `{{ "https://your-url.com" | track_link }}`로 감싸기만 하면 메시지가 전송될 때 해당 링크가 추적 가능한 링크로 교체됩니다. API 사용 방법은 [SMS/RCS 메시지 생성 API 참조](/reference/sms)를 참조하세요.

SMS/RCS 메시지당 추적 가능한 링크는 1개만 허용됩니다.

대시보드를 사용하는 경우 메시지 입력 상자 아래의 **Insert Trackable Link** 버튼을 클릭하고 URL을 입력합니다:

<Frame caption="추적 가능한 SMS 링크를 입력하기 위한 모달">
  <img src="https://mintcdn.com/onesignal/bUViEhbP9-TaIZwH/images/docs/trackable_sms_1.png?fit=max&auto=format&n=bUViEhbP9-TaIZwH&q=85&s=c1cd72dbf1cd7e3be05460bd4958ecff" alt="SMS 메시지에 추적 가능한 단축 링크를 삽입하기 위한 OneSignal 대시보드 모달" width="2570" height="1232" data-path="images/docs/trackable_sms_1.png" />
</Frame>

**Insert trackable link**를 클릭하여 메시지에 단축 링크를 추가합니다:

```liquid theme={null}
Your order is on its way!
Track it here: {{ "https://your-url.com" | track_link }}
```

메시지가 전송되면 이중 중괄호와 그 안의 내용이 `1sgnl.co/XXXX` 추적 가능한 링크로 교체됩니다:

<Frame caption="기기에 표시되는 추적 가능한 링크">
  <img src="https://mintcdn.com/onesignal/KSCNwSpBCNSQ8xdF/images/docs/trackable_sms_3.png?fit=max&auto=format&n=KSCNwSpBCNSQ8xdF&q=85&s=627e22caedd413d193a403aef6070b68" alt="추적 가능한 단축 링크를 보여주는 모바일 기기의 SMS 알림" width="1242" height="1044" data-path="images/docs/trackable_sms_3.png" />
</Frame>

***

## 동적 URL

[Liquid 구문](./using-liquid-syntax)을 사용하여 개인화된 사용자별 URL을 구성할 수 있습니다. 예를 들어 URL에 사용자 ID를 포함하여 각 사람이 자신의 프로필 페이지로 이동하거나, 최근 이벤트의 제품 ID를 삽입하여 관련 항목으로 직접 연결할 수 있습니다.

동적 URL은 다음 데이터를 가져올 수 있습니다:

* 사용자 속성(예: `external_id`, `email`)
* OneSignal에 저장된 태그
* API를 통해 전송된 `custom_data`
* 커스텀 이벤트(Journey에서)

<Tabs>
  <Tab title="User properties">
    `external_id` 또는 `email`과 같은 값을 URL에 직접 삽입합니다.

    ```text theme={null}
    https://yourdomain.com/profile/user={{subscription.external_id}}
    ```

    사용자의 `external_id`가 `12345`인 경우 최종 URL은 다음과 같습니다:

    ```text theme={null}
    https://yourdomain.com/profile/user=12345
    ```

    마찬가지로:

    ```text theme={null}
    https://yourdomain.com/profile/email={{subscription.email}}
    ```

    사용자의 이메일이 `john@example.com`인 경우 최종 URL은 다음과 같습니다:

    ```text theme={null}
    https://yourdomain.com/profile/email=john@example.com
    ```
  </Tab>

  <Tab title="Tags">
    OneSignal에 저장된 사용자 태그를 참조합니다.

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key}}
    ```

    사용자에게 `technology` 값을 가진 태그 `tag_key`가 있는 경우 최종 URL은 다음과 같습니다:

    ```text theme={null}
    https://yourdomain.com/topic/technology
    ```

    `tag_key`가 설정되지 않은 경우 URL은 다음과 같습니다:

    ```text theme={null}
    https://yourdomain.com/topic/
    ```

    기본값을 설정하려면 `default` 필터를 사용합니다:

    ```text theme={null}
    https://yourdomain.com/topic/{{tag_key | default: 'unknown'}}
    ```
  </Tab>

  <Tab title="custom_data">
    메시지 생성 API와 템플릿을 사용합니다. `custom_data` 객체를 참조하는 Liquid 구문으로 템플릿에서 URL을 설정합니다.

    템플릿 URL:

    ```text theme={null}
    https://yourdomain.com/invoice={{message.custom_data.invoice_number}}
    ```

    `custom_data`가 포함된 API 요청:

    ```json theme={null}
    {
        "template_id": "YOUR_TEMPLATE_ID",
        "custom_data": {
            "invoice_number": "12345"
        }
    }
    ```

    최종 URL:

    ```text theme={null}
    https://yourdomain.com/invoice=12345
    ```
  </Tab>

  <Tab title="Custom Events">
    Journey에서 캡처된 커스텀 이벤트를 사용하여 URL을 개인화합니다. 이벤트 속성을 직접 참조하거나 더 깔끔한 구문을 위해 이벤트를 변수에 할당합니다.

    **이벤트 속성을 직접 참조:**

    ```text theme={null}
    https://yourdomain.com/order/{{ journey.event.purchase.properties.order_id }}
    ```

    가장 최근 `purchase` 이벤트에 `"order_id": "98765"`가 포함된 경우 최종 URL은 다음과 같습니다:

    ```text theme={null}
    https://yourdomain.com/order/98765
    ```

    **가독성을 위해 이벤트를 변수에 할당:**

    ```liquid theme={null}
    {% assign event = journey.event.purchase %}
    https://yourdomain.com/order/{{ event.properties.order_id }}
    ```

    **가장 최근에 저장된 이벤트에 액세스:**

    ```text theme={null}
    https://yourdomain.com/product/{{ journey.last_event.properties.product_id | default: 'unknown' }}
    ```

    **공백 또는 특수 문자가 있는 이벤트 이름(해시 표기법):**

    ```text theme={null}
    https://yourdomain.com/status/{{ journey.event["order status"].properties.current_status }}
    ```

    <Note>
      커스텀 이벤트는 Journey 내에서 사용되는 템플릿에서만 참조할 수 있습니다. Liquid에서 이벤트 데이터에 액세스하려면 `journey.first_event`, `journey.last_event` 또는 `journey.event.<name>`을 사용합니다.
    </Note>
  </Tab>
</Tabs>

<Tip>
  URL의 일부에만 데이터를 삽입하세요. 프로토콜(`https://`)과 도메인은 정적 텍스트로 유지합니다. 값이 없는 경우 대체값을 설정하려면 `default` 필터를 사용합니다.
</Tip>

***

## UTM 매개변수

UTM 매개변수는 URL에 `source`, `medium` 및 `campaign` 세부 정보를 추가하여 캠페인 성과를 추적합니다. 메시지의 URL에 UTM 매개변수를 직접 추가하면 됩니다.

대시보드에서 보낸 푸시 알림의 경우 OneSignal이 UTM을 자동으로 추가할 수 있습니다.

<Accordion title="푸시 알림용 자동 UTM" icon="circle-chevron-down">
  **Settings > Push & In-app > UTM Settings**으로 이동하여 **Turn on automated UTM tagging**을 활성화합니다.

  활성화되면 OneSignal은 다음 값을 추가합니다(편집 가능):

  * **Source** = `utm_source` — 기본값: `onesignal`
  * **Medium** = `utm_medium` — 기본값: `push`
  * **Campaign** = `utm_campaign` — 기본값: `{{ sendDate }}-{{ title }}`
    * `sendDate`: 전송된 날짜
    * `title`: 메시지 제목의 처음 15개 영숫자 문자, 밑줄 또는 하이픈

  예시:

  ```text theme={null}
  https://test.com?utm_source=onesignal&utm_medium=push&utm_campaign=2020-06-03-sale-today
  ```

  <Warning>
    자동 UTM 태깅은 대시보드에서 보낸 푸시 알림에만 적용됩니다. 다음의 경우에는 작동하지 않습니다:

    * 이메일, SMS, 인앱 메시지
    * Journey, 템플릿, 자동화된 메시지
    * API 요청
    * "Send Test Message" 버튼
    * Additional data 필드

    이러한 경우 템플릿 또는 API 페이로드에 UTM 매개변수를 수동으로 추가해야 합니다.
  </Warning>

  #### URL 처리 및 재정의

  자동 태깅이 활성화된 상태에서 Launch URL에 UTM 매개변수를 수동으로 추가하면 수동 UTM이 자동 값을 재정의합니다.
</Accordion>

***

## FAQ

### 앱 스토어에 링크하려면 어떻게 해야 합니까?

스토어 URL을 Launch URL로 사용합니다:

* **Android**: Google Play 링크를 사용합니다(예: `https://play.google.com/store/apps/details?id=com.example.app`). [Google Play에 링크하기](https://developer.android.com/distribute/marketing-tools/linking-to-google-play.html)를 참조하세요.
* **iOS**: 앱 스토어 링크를 사용하되 `https://`를 `itms-apps://`로 바꿔 앱 스토어 앱을 직접 엽니다(예: `itms-apps://apps.apple.com/app/id123456789`).

### 다른 앱에 링크할 수 있습니까?

푸시 및 인앱 메시지의 경우 URL 스킴을 사용하여 다른 앱으로 딥 링크할 수 있습니다. 예를 들어 [WhatsApp으로 딥 링크](https://faq.whatsapp.com/425247423114725)하려면 `whatsapp://wa.me/15551234567`을 사용합니다.

이메일 및 SMS의 경우 `https://` 링크를 사용하세요. 커스텀 URL 스킴은 지원되지 않습니다.

### Launch URL이 작동하지 않는 이유는 무엇입니까?

일반적인 원인:

* **URL 불일치**: URL은 `https://`로 시작해야 합니다. Apple 기기에서 `http://`를 사용하는 경우 [NSAppTransportSecurity](https://developer.apple.com/documentation/bundleresources/information_property_list/nsapptransportsecurity)를 설정해야 합니다.
* **모바일의 커스텀 스킴**: `your-app://path`와 같은 딥 링크는 모든 플랫폼에서 Launch URL로 작동하지 않을 수 있습니다. **Additional Data** 필드를 사용하거나 안정적인 앱 라우팅을 위해 [딥 링킹](./deep-linking)을 참조하세요.
* **웹 푸시 기본값**: Launch URL이 설정되지 않으면 웹 푸시는 홈페이지를 엽니다. 목적지를 제어하려면 Launch URL을 명시적으로 설정하세요.
* **클릭 추적 간섭**: 이메일에서 클릭 추적을 위한 링크 재작성이 딥 링크를 손상시킬 수 있습니다. 해당 특정 링크에 대해 [클릭 추적 비활성화](#email-link-tracking)를 시도해 보세요.

### UTM 매개변수가 이메일 및 SMS에서 작동합니까?

아니요. 자동 UTM 태깅은 대시보드에서 보낸 푸시 알림에만 적용됩니다. 이메일 및 SMS의 경우 템플릿 또는 API 페이로드의 URL에 UTM 매개변수를 수동으로 추가하세요. 제한 사항 전체 목록은 [UTM 매개변수](#utm-parameters)를 참조하세요.

### 푸시 알림이 URL을 열지 않도록 할 수 있습니까?

모바일에서는 푸시 알림을 클릭하면 항상 앱이 열립니다.

웹에서는 Launch URL에 `?_osp=do_not_open`을 추가하면 페이지를 열지 않고 알림을 닫을 수 있습니다. 예시는 [Launch URL 팁](#launch-url)을 참조하세요.

***

<Columns cols={2}>
  <Card title="딥 링킹" icon="link" href="./deep-linking">
    푸시 및 인앱 메시지를 위한 커스텀 URL 스킴 및 앱별 라우팅을 설정합니다.
  </Card>

  <Card title="개인화" icon="wand-magic-sparkles" href="./message-personalization">
    Liquid 구문 및 태그를 사용하여 메시지에 동적 사용자 데이터를 삽입합니다.
  </Card>

  <Card title="Liquid 구문 사용" icon="code" href="./using-liquid-syntax">
    OneSignal 템플릿의 Liquid 필터, 태그 및 변수에 대한 참조 가이드.
  </Card>

  <Card title="이메일 메시지 보고서" icon="chart-line" href="./email-message-reports">
    이메일 캠페인의 전달, 열람 및 클릭률 지표를 확인합니다.
  </Card>

  <Card title="액션 버튼" icon="hand-pointer" href="./action-buttons">
    커스텀 URL이 있는 액션 버튼을 푸시 알림에 추가합니다.
  </Card>
</Columns>
