Overview

The Branch Mobile SDK uses a RESTful API (v1/open) for deep linking and session attribution. The instructions below cover how to supply a payload of attribution properties to this API server-side. Every time the API is called, it will track an INSTALL, REINSTALL, or OPEN event in Branch and return deep link data in the response if the session is attributed.

By bypassing the SDK, developers will be responsible for session management (when & where the v1/open API is called), handling poor or no connectivity, persisting data locally, retrieving values like IP address, tracking downstream conversions, creating shareable deep links, etc. To achieve feature parity with the SDK, one would need to duplicate the code in the SDK.

It is highly recommended that all apps use the Branch Mobile SDK when possible.

📘

API 액세스가 제한됨

v1/open API를 직접 호출하는 기능은 선정된 엔터프라이즈 계정으로 제한됩니다. 계정에서 사용 가능 여부를 확인하려면 Branch 어카운트 관리자에게 문의하십시오.

전제 조건

  • App is setup in the Branch dashboard with default link redirects, your app.link domains, a URI scheme, Universal Links, and you have access to your API & Secret keys
  • v1/open API에 액세스하도록 계정이 활성화되었습니다.

📘

대시보드 및 인앱 설정 필요

Successful use of the v1/open API will require setup steps in the Branch dashboard and in your mobile app

API 설정

v1/open에 대한 네트워크 요청은 앱이 포어 그라운드로 전환되었다는 알림을 성공적으로 받았을 때 발생해야 합니다. Branch는 애플리케이션이 실행되고 (콜드 스타트 또는 iOS 혹은 안드로이드 작업 관리자에 있는 경우) 디바이스의 포어 그라운드에 도달할 때의 세션으로 앱 수명 주기를 정의합니다.

엔드 포인트 사양

  • Endpoint: https://api2.branch.io/v1/open
  • 방법: 포스트(POST)
  • 페이로드 형식: JSON
  • Required Header: The device's public IP address must be set using -H "X-IP-Override: xx.xx.xx.xx" (it is critical this uses the device's IP, and not your server's IP)
  • Required Header: -H 'content-type: application/json'

포스트(POST) 바디 파라미터

Property

데이터 형식

설명

예시

branch_key

String

필수 대시보드 라이브 환경의 Account Settings에서 검색한 프로덕션 API 키

key_live_example

branch_secret

String

필수 대시보드 라이브 환경의 Account Settings에서 검색한 프로덕션 API 시크릿입니다.

secret_live_example

server_to_server

불리안(Boolean)

REQUIRED Always set to true

진실

app_version

String

필수 앱 버전

"1.12.4"

os

String

REQUIRED Only accepts Android oriOS

“Android”

os_version

String

REQUIRED The version of the device's OS (e.g. “23” for Android or “9.1.2” for iOS respectively. Will accept any value, preferred default to “NA”. This cannot be blank.)

"13.2.2"

user_agent

String

필수 디바이스의 유저 에이전트

"Mozilla/5.0 (Linux; 안드로이드 6.0.1; Nexus 6 Build/MOB31E) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.81 Mobile Safari/537.36"

hardware_id

String

REQUIRED In iOS, populate with the IDFA if it's available, otherwise fallback to IDFV. On Android, populate with the ANDROID_ID (hardware id). If no device ID is available, do not include in request.

iOS: "D5B89252-FCF8-4065-88FC-B70F49186988"

Android: "fae098e4605e79c3"

hardware_id_type

String

REQUIRED - iOS ONLY Value confirms whether the iOS ID in the hardware_id property is an "idfa" or "vendor_id" (do not include in request, if hardware_id is not populated)

"idfa" or "vendor_id"

ios_vendor_id

String

REQUIRED - iOS ONLY The IDFV if it's available, otherwise do not include in request.

"0C381C08-B808-4C25-BE51-B00BC165B5F8"

google_advertising_id

String

REQUIRED - ANDROID ONLY The Google Advertising ID if it's available, otherwise do not include in request

"ea31e5e0-1aa5-4181-91d7-0b56524e0274"

advertising_ids

Object

ANDROID ONLY The set of Advertising IDs if it's available, otherwise do not include in request. Can include identifiers like OAID

"advertising_ids": { "oaid": "02ab41d3-7886-4f29-a606-fba4372e9fdc" }

is_hardware_id_real

불리안(Boolean)

REQUIRED Set to false if the hardware_id property cannot be populated, otherwise default to true

진실

ad_tracking_enabled

불리안(Boolean)

REQUIRED A value used to determine whether the IDFA or GAID can be used for advertising purposes. If Limit Ad Tracking should be enabled, do not include in the request.

진실

local_ip

String

This is the device's local IP address, if one is available. This is incremental to the required IP header. An optional but highly recommended data metadata that improves attribution accuracy.

"192.168.1.153"

screen_height

Int

Height of the device’s screen. An optional but useful data metadata that improves attribution accuracy.

2208

screen_width

Int

Width of the device’s screen. An optional but useful data metadata that improves attribution accuracy.

1242

link_identifier

String

a URI opens the app, check for a link_click_id query, and populate with that value (if missing, do not include in request)
link_click_id may also be sourced by the Google Install Referrer

“823569794275788167”

universal_link_url

String

앱을 연 Branch 또는 Branch가 아닌 웹 URL로 채우기 (누락 시 요청에 포함하지 마십시오)

"https://branch.app.link/example?utm_medium=test"

android_app_link_url

String

앱을 연 Branch 또는 Branch가 아닌 웹 URL로 채우기 (누락 시 요청에 포함하지 마십시오)

"https://branch.app.link/example?utm_medium=test"

facebook_app_link_checked

불리안(Boolean)

링크가 항상 모바일 사이트로 폴백하도록 false to ensure we retrieve deep links from Facebook's deferred deep linking API (requires adding your Facebook App Secret to the [Branch dashboard](https://help.branch.io/using-branch/docs/facebook-app-install-ads#section-setup))

진실

install_referrer_extras

String

ANDROID ONLY Populate it with the value of the full Android PlayStore Install Referrer URL. Only include in the app's first session, if it's available.

"utm_source=some_source&utm_medium=preload&utm_campaign=null&gclid=Cj0KCQiA7IDiBRCLARIsABIPohhqdEU00f-Obte_OIVTbjPo-iLDBjkhj8ov="

google_search_install_referrer

String

ANDROID ONLY The value of the google_search_install_referrer query parameter on the referrerUrl from the Google Install Referrer. Only include in the app's first session, if it's available.

"7AXhuEQs1U"

clicked_referrer_ts

롱(Long)

ANDROID ONLY The referrer click timestamp collected from the Play Install Referrer library.
Only include in the app's first session, if it's available.

1573098834

install_begin_ts

롱(Long)

ANDROID ONLY The install begin timestamp collected from the Play Install Referrer library. Only include in the app's first session, if it's available.

1573098843

apple_attribution_token

String

iOS ONLY Attribution Token used for Apple Search Ads . used to call the Apple Search Ads Attribution API. The token has a 24 hr TTL, so send to Branch within that time in order to use it for attribution.

"c7ya5fQsXrqhCiG0eQTvpS8+tNpBom1RwlDmWEXGNqIj1AOn/VDlqgKq9CaJzzFeR8G3dEeMQBJc60R4CxIx..."

search_ad_encoded

String

DEPRECATED ⚠ iOS ONLY Base64 encoded string of the entire response from the Apple Search Ads API. Only include in the app's first session, if it's available.

"eyJWZXJzaW9uMy4xIjp7ImlhZC1wdXJjaGFzZS1kYXRlIjoiMjAyMC0wNi0yOVQxODo1MDoxNloiLCJpYWQta2V5d29yZCI6IktleXdvcmQiLCJpYWQtYWRncm91cC..."

first_session

불리안(Boolean)

Identifies if this is the first time the user opened the app. If true, Branch will check if we saw the user download the app before, and mark the session as a reinstall if yes, and an install if no. If this value was set to false, Branch will count the session as an open.

진실

server_to_server_identity

불리안(Boolean)

Setting to true enables the ability to set an randomized_bundle_token property in v1/open requests and returns a value in the response. Do not set this property in the request, if this feature will not be used.

false

randomized_bundle_token

불리안(Boolean)

If server_to_server_identity is true, Branch returns a new identity value in any request that does not set randomized_bundle_token. After the first request, this property must be hardcoded with the randomized_bundle_token received in the first network response. Failure to return this value in subsequent requests severely limits the ability to connect different events for that user.

"791040498773585647"

identity

String

If server_to_server_identity is true, this property can be used to associate a custom user ID with Branch's anonymous identity. You should never use personal user information here, and all values should be encrypted before being passed to Branch.

"U1923847128356"

tracking_disabled

불리안(Boolean)

If set to true, Branch will not store any data from this app session. The network response can still return deep link data for processing, but no information will be stored afterwards.

false

disable_ad_network_callouts

불리안(Boolean)

If set to true, you can use the Branch dashboard to selectively remove sessions with this flag from being sent to ad networks

false

local_url

String

(Optional, for NativeLink) Populate with a Branch web url that is present on the clipboard on the very first open (if missing, do not include in request)

"https://branch.app.link/example?utm_medium=test"

referrer_gclid

String

ANDROID ONLY (Optional, for Google AdWord Campaigns) Extract the value of gclid from Android PlayStore Install Referrer URL. Utilized for tracking downstream events on Google Adwords when user opts out on Android 12+ devices (if missing, do not include in request)

"CjwKCAiA3L6PBhBvEiwAINlJ9Chixm216y8kYYJ1K94dm4FEkOgFfhIdKQdjWsYB7FqE7rf_zkGNEhoCuIEQAvD_BwE"

gbraid

String

IOS ONLY (Optional, for Google AdWord Campaigns) Extract the value of gbraid from the referring url/uri for the app session. Utilized for tracking downstream events on Google Adwords when users are opted out of ATT (if missing, do not include in request)

"CjwKCAiA3L6PBhBvEiwAINlJ9Chixm216y8kYYJ1K94dm4FEkOgFfhIdKQdjWsYB7FqE7rf_zkGNEhoCuIEQAvD_BwE"

custom_param_1

String

A customized parameter attached to your OPEN, INSTALL, or Event metadata to be used for visualizing/analyzing Branch aggregate data in both the Branch Dashboard reports and exports.

"PARAMETER 1"

custom_param_2

String

A customized parameter attached to your OPEN, INSTALL, or Event metadata to be used for visualizing/analyzing Branch aggregate data in both the Branch Dashboard reports and exports.

"PARAMETER 2"

custom_param_3

String

A customized parameter attached to your OPEN, INSTALL, or Event metadata to be used for visualizing/analyzing Branch aggregate data in both the Branch Dashboard reports and exports.

"PARAMETER 3"

요청의 예

iOS

curl -v -d '{
 "branch_key": "TODO",
 "branch_secret": "TODO",
 "server_to_server": true,
 "app_version": "1.12.4",
 "os": "iOS",
 "os_version": "10.0",
 "model": "iPhone",
 "screen_height": 2208,
 "screen_width": 1242,
 "facebook_app_link_checked": false,
 "user_agent": "{FULL_USER_AGENT_HERE}",
 "hardware_id": "D5B89252-FCF8-4065-88FC-B70F49186988",
 "hardware_id_type": "idfa",
 "ios_vendor_id": "0C381C08-B808-4C25-BE51-B00BC165B5F8",
 "is_hardware_id_real": true,
 "ad_tracking_enabled": true,
 "custom_param_1": "Parameter 1",
 "custom_param_2": "Parameter 2",
 "custom_param_3": "Parameter 3"
}' "https://api2.branch.io/v1/open" -H "X-IP-Override: 1.2.3.4"

Android

curl -v -d '{
 "branch_key": "TODO",
 "branch_secret": "TODO",
 "server_to_server": true,
 "app_version": "1.12.4",
 "os": "Android",
 "os_version": 26,
 "model": "SM-G960U1",
 "screen_height": 2076,
 "screen_width": 1080,
 "facebook_app_link_checked": false,
 "user_agent": "{FULL_USER_AGENT_HERE}",
 "hardware_id": "fae098e4605e79c3",
 "google_advertising_id": "ea31e5e0-1aa5-4181-91d7-0b56524e0274",
 "advertising_ids": {
    "oaid": "02ab41d3-7886-4f29-a606-fba4372e9fdc"
 },
 "google_search_install_referrer": "referrer_value_here",
 "clicked_referrer_ts": 1574699946,
 "install_begin_ts": 1574699955,
 "is_hardware_id_real": true,
 "ad_tracking_enabled": true,
 "custom_param_1": "Parameter 1",
 "custom_param_2": "Parameter 2",
 "custom_param_3": "Parameter 3"
}' "https://api2.branch.io/v1/open" -H "X-IP-Override: 1.2.3.4"

📘

참조되지 않은 '열기'에 대한 사용량 제한

Branch by default will rate limit non-referred OPEN events (app sessions not sourced by a link) per IP address, to once every 4 hours (contact your Branch Account Manager to confirm the exact limit for your account). Rate limited sessions will still return deep link data in the network request, but their data will not appear in the dashboard nor in your exports.

📘

고주파 핑(ping)에 대한 사용량 제한

v1/open API는 유저의 앱 세션을 측정하기 위한 것이므로 앱이 동일한 유저에 대한 요청을 빠르게 연속적으로 보내기 시작하면 429개의 응답을 반환합니다. 정상적인 유저 행동은 앱을 연속적으로 빠르게 열고 닫는 것이 아니기 때문에 해당 시나리오는 거의 테스트 중에만 발생합니다. 해당 문제가 발생하면 테스트를 다시 시작하기 전에 몇 분 정도 기다리십시오 (또는 요청에서 디바이스 메타 데이터를 변경해 보십시오).

📘

NativeLink

In order to implement NativeLink (learn more) and benefit from a guaranteed mechanism for deep linking, you will need to check the pasteboard on the first install. If it contains a URL, then examine the contents of the pasteboard. If it contains a Branch link, please send the full URL in the request body for key local_url.

For an example of checking the pasteboard on iOS, see this code snippet in our open-source iOS SDK.

딥링크(Deep Link) 데이터 처리

v1/open 요청이 이루어지면 앱 세션이 딥링크(Deep Link) 클릭으로 어트리뷰션 될 수 있습니다. 세션이 어트리뷰션 되었는지 여부와 관계없이 API는 JSON 응답 페이로드에 포함된 일부 문맥 데이터와 함께 항상 200 응답을 반환합니다. 세션이 Branch 링크에 어트리뷰션 된 경우 해당 페이로드는 인앱 로직에 대한 링크의 딥링크(Deep Link) 데이터를 포함하여 딥링크(Deep Link) UX를 실행하는 데 사용할 것입니다.

샘플 응답은 아래에 있으나 몇 가지 주요 파라미터를 알아 두어야 합니다.

파라미터

설명

randomized_bundle_token

If you set server_to_server_identity to TRUE in the v1/open request, you must ensure the value returned here is used in the randomized_bundle_token property of all v1/open requests moving forward for that device.

+clicked_branch_link

This will tell you if the current app session was sourced via Branch deep link. This can be used as a conditional trigger that dictates if you use Branch-specific or other deep link routing logic.

+non_branch_link

If a non-Branch deep link opened your app (i.e., a Universal Link), you can retrieve that link from this key.

+is_first_session

This will be TRUE if Branch has never seen this user's device install the app before

+match_guaranteed

This will be TRUE if Branch was able to match the app session to the browser click with 100% certainty. This can be used as a conditional trigger for use cases where you have zero risk threshold for a false positive (this should NOT be used in most instances)[Not applicable to SAN attributed Install].

$canonical_url

This will contain a web url that you can use for deep link routing. If your app was already setup to route off Universal Links or Android App Links, you can pass this value into that pre-existing routing logic.

$deeplink_path

This will contain a URI relative path that you can use for deep link routing. If your app was already setup to route off URI schemes, you can pass this value into that pre-existing routing logic.

오가닉 응답의 예

{
   "session_id": "xxxx",
   "randomized_device_token": "xxxx",
   "link": "https://bnc.lt/j/adsf",
   "data": "{\"+clicked_branch_link\":false,\"+is_first_session\":false}"
}

server_to_server_identity가 활성화된 오가닉 응답의 예

{
   "session_id": "xxxx",
   "randomized_bundle_token": "xxxx",
   "identity": "xxxx",
   "randomized_device_token": "xxxx",
   "link": "https://bnc.lt/j/adsf",
   "data": "{\"+clicked_branch_link\":false,\"+is_first_session\":false}"
}

Branch가 아닌 딥링크(Deep Link)로 세션이 시작되었을 때 응답의 예

{
   "session_id": "823602214081710808",
   "data": "{\"+non_branch_link\":\"https://branch.io/\",\"+clicked_branch_link\":false,\"+is_first_session\":false}",
  "randomized_device_token": "823601870295755491"
}

Branch 딥링크(Deep Link)로 세션이 시작되었을 때 응답의 예

{
   "randomized_device_token": "823600311503935224",
   "link": "https://example.app.link/X7OsnWv9TF",
   "session_id": "429691081177874743",
   "data": "{
            "$canonical_url": "https://example.com/home?utm_campaign=test",
            "$desktop_url": "http://example.com/home",
            "$og_description": "My Content Description",
            "$og_image_url": "http://lorempixel.com/200/200/",
            "$og_title": "46D6D28E-0390-40E4-A856-BD74F34D24C8",
            "+click_timestamp": 1503684563,
            "+clicked_branch_link": true,
            "+is_first_session": false,
            "+match_guaranteed": true,
            "custom": "blue",
            "~campaign": "new launch",
            "~channel": "facebook",
            "~creation_source": 3,
            "~feature": "sharing",
            "~id": 429691043152332059,
            "~referring_link": "https://example.app.link/X7OsnWv9TF",
            "~stage": "new person",
            "~tags": ["one","two"]
   }"
}

인앱 설정

iOS

설정 업데이트

  1. Add your URI scheme to the info.plist
  2. Add your Branch app.link and alternate.app.link domains to the Associated Domains

API 요청에 필요한 앱 실행 데이터

  1. Retrieve the device ID (IDFA or IDFV) when available
  2. 디바이스의 공용 IP 검색
  3. 디바이스의 유저 에이전트 검색
  4. Examine the AppDelegate's openURL: function for a URI. If a URI containing a query parameter link_click_id is present, store the query parameter's value for use in the session's API network request (i.e., if the URI example://open?link_click_id=1234 opens the app, you will retrieve the “1234” value)
  5. Examine the AppDelegate's continueUserActivity: function for a webpageURL in the NSUserActivity parameter. If a URL is found (regardless if it's a Branch link), store the entire URL value for use in the session's API network request.

[선택 사항] Apple Search Ads 서포트

NEW FRAMEWORK:

  • S2S 연동의 경우, 새 토큰을 검색하고 Branch 설치에 apple_attribution_token 으로 전송해야 합니다.

Please refer to the new AdServices developer documentation on how to retrieve the token.

  1. AdServices.framework 가져오기
  2. 어트리뷰션 토큰 요청 (샘플 코드 보기). 이것은 50 ms 이내에 Apple에서 구할 수 있어야 합니다.
  3. 토큰에는 24시간 TTL이 있으므로 이를 어트리뷰션에 사용하려면 해당 시간 내에 Branch로 전송하십시오.

Apple 어트리뷰션 토큰을 얻기 위한 샘플 코드를 참고하세요.

func appleAttributionToken() -> String? {
        if #available(iOS 14.3, *) {
            return try? AAAttribution.attributionToken()
        }
        return nil
    }
+ (NSString *)appleAttributionToken {
#if !TARGET_OS_TV
    if (@available(iOS 14.3, *)) {
        NSError *error;
        NSString *appleAttributionToken = [AAAttribution attributionTokenWithError:&error];
        if (!error) {
            return appleAttributionToken;
        }
    }
#endif
    return nil;
}

OLD FRAMEWORK: All steps below should only occur for the INSTALL session:

  1. Upon app launch, do not call v1/open, and first query the Apple Search Ads API. Apple's API is know to have high latency and operates at a race condition with its ad click (i.e., it must process the search click before it can respond to its attribution API), so give a 2 second buffer before calling Apple's Attribution API.
  2. 요청이 5초 후 타임아웃 되거나 응답이 false 또는 오류 코드 [0,2,3]으로 반환되는 경우 재시도 로직을 구현합니다 (Branch의 SDK는 재시도 간 2초 지연을 사용함).
  3. If a successful response is received, base64 encode the entire API response, and add it to the search_ad_encoded property of the v1/open. Do not populate this in v1/open if apple did not attribute the session, and do not repeat this process during subsequent app sessions.

Android

설정 업데이트

  1. Add your URI scheme to the Android Manifest
  2. Add your Branch app.link and alternate.app.link domains to the Android Manifest

API 요청에 필요한 앱 실행 데이터

  1. Retrieve the device ID (GAID or Android_ID when available
  2. 디바이스의 공용 IP 검색
  3. 디바이스의 유저 에이전트 검색
  4. Examine the intent that opened your MainActivity for a URI. If a URI containing a query parameter link_click_id is present, store the query parameter's value for use in the session's API network request (i.e., if the URI example://open?link_click_id=1234 opens the app, you will retrieve the “1234” value)
  5. Examine the intent that opened your MainActivity for a web URL. If a URL is found (regardless if it's a Branch link), store the entire URL value for use in the session's API network request.

[선택 사항] 구글 Play 설치 참조자 서포트

아래의 모든 단계는 설치 세션 중에만 발생해야 합니다.

  1. Upon app launch, query the Google Play Install Referrer library for the referrer Url, click timestamp, and install timestamp
  2. Examine the referrer Url for a “link_click_id” query parameter, and if present, retrieve its value for use in the v1/open link_identifier property. This may appear in the referrer Url as &link_click_id=<value> or &link_click_id-<value>, but in either scenario you're only extracting the <value> part.
  3. Examine the referrer Url for a “google_search_install_referrer” query parameter, and if present, retrieve its value for use in the v1/open google_search_install_referrer property. This may appear in the referrer Url as &google_search_install_referrer=<value> or &google_search_install_referrer-<value>, but in either scenario you're only extracting the <value> part.

다운 스트림 이벤트 트래킹

Every time the v1/open API is called it will track an INSTALL, REINSTALL, or OPEN event in Branch. To track additional downstream conversion events (i.e., PURCHASE), you will need to use the HTTP API instructions for our Commerce, Content, Lifecycle, and Custom events.

When tracking downstream conversion events, please address the following items:

  • 디바이스에서 요청이 이루어지면 요청에서 IP 주소를 자동으로 검색합니다. 서버에서 요청하는 경우 다음 헤더를 통해 유저의 IP 주소를 설정해야 합니다. -H "X-IP-Override: xx.xx.xx.xx"
  • 요청 본문의 "user_data.user_agent"에 디바이스의 유저 에이전트를 설정합니다. user_data.user_agent
  • For events occurring in app, populate a device ID with IDFA (and fallback to IDFV) in iOS, or GAID (fallback to android_id) in Android
  • For events occurring on web, retrieve a Browser fingerprint via the Branch web SDK, to be included in the event call
  • Populate the developer_identity property whenever a persistent user ID is available (Best Practices for user IDs)

TUNE API와 서버 간 연동

새로운 넷(net) 연동 범위를 지정하는 모든 클라이언트는 Branch SDK 또는 서버 간 연동만 고려해야 하며 TUNE API 서버 간 연동을 해서는 안됩니다. Branch가 TUNE을 사용자 확보하기 전에 원래 TUNE 서버 간 연동을 했던 모든 앱은 문제 해결을 위해 아래 API 사양을 찾을 수 있습니다.

기존 TUNE 서버 간 연동의 경우 TUNE 연동이 Branch의 최신 어트리뷰션 방법론을 활용할 수 있도록 다음 메타 데이터 프로퍼티가 고려되는지 확인하는 것이 좋습니다.

설명

ios_ifa

REQUIRED - iOS The IDFA if it's available

ios_ad_tracking_disabled

필수 - iOS ios_ifa 파라미터를 사용하려는 경우 엔드 유저가 제한된 광고 트래킹을 활성화했는지 여부를 나타내도록 ios_ad_tracking_disabled 파라미터를 지정해야 합니다 (1은 활성화/제한됨).

ios_ifv

REQUIRED - iOS Populate with the IDFV

google_aid

REQUIRED - Android The Google Advertising ID if it's available. Formatted as uppercase with hyphens. AAAAAA-BBBB-CCCC-11111-2222222222222

google_ad_tracking_disabled

필수 - 안드로이드 google_aid 파라미터를 사용하려는 경우 엔드 유저가 제한된 광고 트래킹을 활성화했는지 여부를 나타내기 위해 google_ad_tracking_disabled 파라미터를 지정해야 합니다 (1은 활성화/제한됨).

os_id

REQUIRED - Android Populate with the ANDROID_ID (hardware id), if google_aid cannot be populated

device_id

필수 - Windows Windows 하드웨어 ID

windows_aid

필수 - Windows Windows 광고 식별자 (AID)는 콜론 없이 대문자로 형식이 지정된 알파벳-숫자 string (예: "AAAAAABBBBCCCC111122222222222")으로 표시되는 광고에 대해 고유하고 유저 및 디바이스별 재설정이 가능한 ID입니다. 광고 ID 기능이 비활성화된 경우 해당 값은 빈 string입니다.

referral_url

필수 안드로이드 및 첫 번째 앱 열기의 경우 구글 Play 설치 참조자를 포함하세요.

안드로이드 및 iOS에서 그 외 앱 열기의 경우 열기를 실행한 URL(딥링크(Deep Link))을 포함하세요.

device_ip

필수 전환 시 레코드 된 유저 디바이스의 IP 주소. Tune API가 X-IP-Override Header를 받아들일 수 없으므로 API 쿼리 파라미터를 통해 설정되어야 합니다.

device_brand

필수 유저 디바이스의 브랜드 또는 제조업체 (예: "Apple" 또는 "Samsung")

device_model

필수 전환 시 레코드 된 유저 디바이스 모델 (예: "iPhone5,2" 또는 "GT-i9300")

user_agent

필수 디바이스의 유저 에이전트입니다. 네트워크 요청 헤더에서도 설정할 수 있습니다.

os_version

선택 사항 유저 디바이스의 운영 체제 버전 (예: iOS 또는 안드로이드)

device_carrier

선택 사항 무선 전화를 서포트하는 경우 디바이스의 통신사 (예: AT&T)

language

선택 사항 로컬 설정에서 디바이스의 언어

country_code

선택 사항 국가의 ISO ALPHA-2 또는 ISO ALPHA-3 값

app_version

선택 사항 유저 디바이스의 앱 버전 (해당 파라미터는 TUNE이 새 앱 설치와 기존 앱 업데이트를 구별하는 데 도움이 됨)

user_id

선택 사항 광고주가 정의한 유저의 ID

📘

local_ip는 TUNE API 호출에서 서포트 되지 않습니다.

local_ip는 Branch의 예측 모델링 능력에 활용되지만 TUNE API 호출에서 설정할 수 없습니다. TUNE API 엔드 포인트에 대한 어트리뷰션을 방지하지 않습니다.