โœ•
ํ•„ํ„ฐ

๐Ÿ‘

Try it!

Try out the Daily Exports API using your Branch data via the API reference here

Overview

Benefits of Daily Exports API

Branchโ€™s Daily Exports pull granular Branch event data directly. You can do so either via the Daily Exports section in your Branch Dashboard OR this API directly.

API Limitations

LimitationDetails
Data AvailabilityThe data will only appear after end of day since it's processed every 24 hours. The Daily Export API retrieves downloadable files by a job that runs at 4AM UTC nightly.
Max number of days that can be queried at a time7 Days.
Export WindowRolling 7 day window
Data Visibilityํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ๋‚ ์งœ ์ด์ „์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋“ฑ๋กํ•˜๋ฉด ๊ทธ ์ดํ›„ UTC ๋‚ ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
Data Visibility for Keys๋ฐ์ดํ„ฐ๋Š” ํ…Œ์ŠคํŠธ ํ‚ค๊ฐ€ ์•„๋‹Œ ๋ผ์ด๋ธŒ ํ‚ค์— ๋Œ€ํ•ด์„œ๋งŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
Click data related to SANs (e.g. Google Ads)Can be found at the campaign level rather than device level.
Data PurgeBranch will purge last-attributed data after 60 days
Data HashingMany fields are hashed, including IP address and advertising identifiers, after 7 days. See Data Hashing for further details.
File LimitationsMultiple files are expected with 200K rows per file when using Daily Exports. If your export has less than 200K rows, there will only be one file.

Prerequisites & API Access

์ „์ œ ์กฐ๊ฑด

  • You must have a Data Feeds subscription.
  • Toggle on the Data Export API using the slider on the Data Feeds Manager page.
  • To access the API, you must have Sensitive Data and Export access.

Third Party API Access

๊ณ„์ •์˜ API ํ‚ค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ์œ ์ €๋Š” Branch์˜ Daily Export API (๋ฐ ํ•„ํ„ฐ๋ง ๋˜์ง€ ์•Š์€ ๋กœ๊ทธ ๋ ˆ๋ฒจ ๋ฐ์ดํ„ฐ)์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ดˆ๋Œ€ ํ”„๋กœ์„ธ์Šค ์ค‘์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ ๋ฐ ์•ฑ ๋ ˆ๋ฒจ ์„ค์ •๊ณผ ๊ฐ™์€ API ํ‚ค๋ฅผ ๋ณด๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ์จ๋“œํŒŒํ‹ฐ(์—์ด์ „์‹œ์™€ ๊ด‘๊ณ  ํŒŒํŠธ๋„ˆ)์—๊ฒŒ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ถŒํ•œ์ธ์ฆ

Calls to the Branch Daily Export API require a branch_key and branch_secret String parameter to be passed with each request.

API Usage

Daily Exports Request

POST
https://api2.branch.io/v3/export
Headers:
Content-Type: application/json
Body: JSON parameters
Host: api2.branch.io

Request Headers:

Header์„ค๋ช…ํ•„์ˆ˜
Content-Typeapplication/json์˜ˆ

Request Body Parameters:

ํŒŒ๋ผ๋ฏธํ„ฐ์„ค๋ช…ํ•„์ˆ˜
branch_keyThe Branch key of the originating app.์˜ˆ
branch_secretThe Branch secret key of the originating app.์˜ˆ
export_dateThe UTC date of the requested data export.์˜ˆ

Response Body Parameters:

ํŒŒ๋ผ๋ฏธํ„ฐ์œ ํ˜•์‚ฌ์šฉ์ž ์นœํ™”์  ํ† ํ”ฝ๋ช…
eo_branch_cta_viewArray of StringsCTA Views
eo_clickArray of StringsClick
eo_commerce_eventArray of StringsCommerce Events
eo_content_eventArray of StringsContent Events
eo_custom_eventArray of StringsCustom Events
eo_impressionArray of StringsImpressions
eo_installArray of StringsInstall
eo_openArray of StringsOpen
eo_pageviewArray of StringsPageviews
eo_reinstallArray of StringsReinstall
eo_sms_sentArray of Strings์ „์†ก๋œ ๋ฌธ์ž ๋ฉ”์‹œ์ง€
eo_user_lifecycle_eventArray of StringsUser Lifecycle Events
eo_web_session_startArray of StringsWeb Session Start
eo_dismissalArray of StringsDismissal

Example Request/Response:

curl --request POST \
     --url https://api2.branch.io/v3/export \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --data '
{
     "branch_key": "key_live_xxxxxxxxxxxx",
     "branch_secret": "secret_live_xxxxxxxxxx",
     "export_date": "2022-06-01"
}
{
 "eo_branch_cta_view": <Array of String(s)>,
  "eo_click": <Array of String(s)>,
  "eo_commerce_event": <Array of String(s)>,
  "eo_content_event": <Array of String(s)>,
  "eo_custom_event": <Array of String(s)>,
  "eo_impression": <Array of String(s)>,
  "eo_install": <Array of String(s)>,
  "eo_open": <Array of String(s)>,
  "eo_pageview": <Array of String(s)>,
  "eo_reinstall": <Array of String(s)>,
  "eo_sms_sent": <Array of String(s)>,
  "eo_user_lifecycle_event": <Array of String(s)>,
  "eo_web_session_start": <Array of String(s)>,
  "eo_web_to_app_auto_redirect": <Array of String(s)>,
  "eo_dismissal": <Array of String(s)>
}

๐Ÿ“˜

Windows ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ํ˜•์‹

Please note that if you are trying to run this curl command in Command Prompt on a machine running Windows, you will need to change ' to " and escape the " in curly brackets with a . Here is a final example:

curl --request POST \
     --url https://api2.branch.io/v3/export \
     --header "Accept: application/json" \
     --header "Content-Type: application/json" \
     --data "
{\"branch_key\": \"key_live_xxxxxxxxxxxx\",\"branch_secret\": \"secret_live_xxxxxxxxxx\",\"export_date\": \"2022-06-01\"}"

The response payload will be in JSON format and for each export, it will have an array of paths to files on S3 to download.

  • Note that there may be multiple files (depending on the size of the day's export) and that each CSV file will be gzipped.
  • Each of the keys in the example above may not be present in the response depending on if you had any events for that topic for the specified day.

All exports via Data Feeds are powered by Branch's People-Based Attribution. For an exhaustive list of events included in these exports and more detailed definitions of each event, please see the Event Ontology Data Schema.

Response Codes:

Response Code์„ค๋ช…
200Status of aggregate export
400Authentication Failed

๋ถ€๋ก

Data Hashing

GDPR ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๋‚ด๋ถ€ ์ •์ฑ…์— ๋”ฐ๋ผ IP ์ฃผ์†Œ ๋ฐ ๊ด‘๊ณ  ์‹๋ณ„์ž๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ ํ•„๋“œ๋ฅผ 7์ผ ํ›„์— ํ•ด์‹œํ•ฉ๋‹ˆ๋‹ค.

์ฆ‰, ๋Œ€์‹œ๋ณด๋“œ์˜ CSV Export๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์ˆ˜๋™ ๋ฐ์ดํ„ฐ ๋คํ”„๋ฅผ ์š”์ฒญํ•˜์—ฌ 7์ผ์ด ์ง€๋‚œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ•„๋“œ์— ๋” ์ด์ƒ ์›๋ž˜ ๊ฐ’์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ํ•ญ์ƒ 7์ผ ์ด๋‚ด์— ์›์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Daily Download Availability

A full day's files will be available on our S3 bucket at that location to download around 4:00 am UTC. It will return a blank array from S3 for any empty files until the UTC day is over and the data has been transferred to S3, therefore it is recommended you schedule any ETLs to fetch the data for the previous day around 7:00 am UTC.

IP์™€ ์œ„์น˜์ •๋ณด์˜ ๋ถˆ์ผ์น˜

IP๋กœ ์œ„์น˜๋ฅผ ๋ถ„์„ํ•  ์ˆ˜ ์—†๋Š” ๋งค์šฐ ์ ์€ ๋น„์œจ์˜ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด์„œ๋Š” ๊ตญ๊ฐ€ ๋ฐ ๋„์‹œ์™€ ๊ฐ™์€ ์ง€๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ์ œํ•œ

๋ฐ์ดํ„ฐ๋Š” ๊ฒŒ์‹œ์ผ ์ดํ›„ 6๊ฐœ์›” ๋™์•ˆ๋งŒ API๋ฅผ ํ†ตํ•ด ์ด์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. 6๊ฐœ์›” ์ „์˜ ๋ฐ์ดํ„ฐ ๊ธฐ๋ก์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๋ฐ˜๋ณต ์ถ”์ถœ์„ ์„ค์ •ํ•˜๊ณ  ์‹œ์Šคํ…œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์‹ญ์‹œ์˜ค.

7์ผ ์ด์ƒ ๋‚ด๋ณด๋‚ด๊ธฐ

GDPR ๋ฐ ๊ธฐํƒ€ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๋‚ด๋ถ€ ์ •์ฑ…์— ๋”ฐ๋ผ IP ์ฃผ์†Œ ๋ฐ ๊ด‘๊ณ  ์‹๋ณ„์ž๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ ํ•„๋“œ๋ฅผ 7์ผ ํ›„์— ํ•ด์‹œํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋Œ€์‹œ๋ณด๋“œ์˜ CSV Export๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์ˆ˜๋™ ๋ฐ์ดํ„ฐ ๋คํ”„๋ฅผ ์š”์ฒญํ•˜์—ฌ 7์ผ์ด ์ง€๋‚œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ•„๋“œ์— ๋” ์ด์ƒ ์›๋ž˜ ๊ฐ’์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ญ์ƒ 7์ผ ์ด๋‚ด์— ์›์‹œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๐Ÿ“˜

์ˆ˜๋™ ๋ฐ์ดํ„ฐ ๋คํ”„

์ˆ˜๋™ ๋ฐ์ดํ„ฐ ๋คํ”„๋ฅผ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๋กœ ์ธํ•ด ํ•ด๋‹น ์„œ๋น„์Šค๋Š” Branch ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Tier ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Daily Exports Fields

id
origin
name
timestamp
timestamp_iso
event_timestamp
store_install_begin_timestamp
referrer_click_timestamp
days_from_install_to_opt_in
days_from_last_attributed_touch_to_event
hours_from_last_attributed_touch_to_event
minutes_from_last_attributed_touch_to_event
seconds_from_last_attributed_touch_to_event
deep_linked
first_event_for_user
customer_event_alias
di_match_click_token
hash_version
request_id
match_guaranteed
custom_data
last_attributed_touch_type
last_attributed_touch_timestamp
last_attributed_touch_timestamp_iso
last_attributed_touch_data_tilde_id
last_attributed_touch_data_tilde_campaign
last_attributed_touch_data_tilde_campaign_id
last_attributed_touch_data_tilde_channel
last_attributed_touch_data_tilde_feature
last_attributed_touch_data_tilde_stage
last_attributed_touch_data_tilde_tags
last_attributed_touch_data_tilde_advertising_partner_name
last_attributed_touch_data_tilde_secondary_publisher
last_attributed_touch_data_tilde_creative_name
last_attributed_touch_data_tilde_creative_id
last_attributed_touch_data_tilde_ad_set_name
last_attributed_touch_data_tilde_ad_set_id
last_attributed_touch_data_tilde_ad_name
last_attributed_touch_data_tilde_ad_id
last_attributed_touch_data_tilde_branch_ad_format
last_attributed_touch_data_tilde_technology_partner
last_attributed_touch_data_tilde_banner_dimensions
last_attributed_touch_data_tilde_placement
last_attributed_touch_data_tilde_keyword_id
last_attributed_touch_data_tilde_agency
last_attributed_touch_data_tilde_optimization_model
last_attributed_touch_data_tilde_secondary_ad_format
last_attributed_touch_data_tilde_journey_name
last_attributed_touch_data_tilde_journey_id
last_attributed_touch_data_tilde_view_name
last_attributed_touch_data_tilde_view_id
last_attributed_touch_data_plus_current_feature
last_attributed_touch_data_plus_via_features
last_attributed_touch_data_dollar_3p
last_attributed_touch_data_plus_web_format
last_attributed_touch_data_custom_fields
last_attributed_touch_data_tilde_keyword
last_attributed_touch_data_tilde_customer_campaign
last_attributed_touch_data_tilde_campaign_type
last_attributed_touch_data_tilde_agency_id
last_attributed_touch_data_plus_touch_id
last_attributed_touch_data_tilde_keyword_match_type
last_attributed_touch_data_tilde_organic_search_url
last_attributed_touch_data_dollar_marketing_title
last_cta_view_timestamp
last_cta_view_timestamp_iso
last_cta_view_data_tilde_id
last_cta_view_data_tilde_campaign
last_cta_view_data_tilde_campaign_id
last_cta_view_data_tilde_channel
last_cta_view_data_tilde_feature
last_cta_view_data_tilde_stage
last_cta_view_data_tilde_tags
last_cta_view_data_tilde_advertising_partner_name
last_cta_view_data_tilde_secondary_publisher
last_cta_view_data_tilde_creative_name
last_cta_view_data_tilde_creative_id
last_cta_view_data_tilde_ad_set_name
last_cta_view_data_tilde_ad_set_id
last_cta_view_data_tilde_ad_name
last_cta_view_data_tilde_ad_id
last_cta_view_data_tilde_branch_ad_format
last_cta_view_data_tilde_technology_partner
last_cta_view_data_tilde_banner_dimensions
last_cta_view_data_tilde_placement
last_cta_view_data_tilde_keyword_id
last_cta_view_data_tilde_agency
last_cta_view_data_tilde_optimization_model
last_cta_view_data_tilde_secondary_ad_format
last_cta_view_data_plus_via_features
last_cta_view_data_dollar_3p
last_cta_view_data_plus_web_format
last_cta_view_data_custom_fields
last_cta_view_data_plus_touch_id
last_cta_view_data_tilde_campaign_type
user_data_os
user_data_os_version
user_data_model
user_data_browser
user_data_geo_country_code
user_data_app_version
user_data_sdk_version
user_data_geo_dma_code
user_data_environment
user_data_platform
user_data_aaid
user_data_idfa
user_data_idfv
user_data_android_id
user_data_limit_ad_tracking
user_data_user_agent
user_data_ip
user_data_developer_identity
user_data_language
user_data_brand
user_data_cross_platform_id
user_data_past_cross_platform_ids
user_data_prob_cross_platform_ids
user_data_os_version_android
user_data_geo_city_code
user_data_geo_city_en
user_data_http_referrer
user_data_installer_package_name
user_data_cpu_type
user_data_screen_width
user_data_screen_height
user_data_build
user_data_internet_connection_type
user_data_opted_in
user_data_opted_in_status
user_data_oaid
event_data_revenue_in_usd
event_data_exchange_rate
event_data_transaction_id
event_data_revenue
event_data_currency
event_data_shipping
event_data_tax
event_data_coupon
event_data_affiliation
event_data_search_query
event_data_description