Self-Serve Data Upload

    API를 통해 직접 데이터를 업로드하고 리포트에서 데이터를 함께 볼 수 있습니다.

    Ad Spend Data

    API를 통해 연동할 수 없는 매체에 대해 노출, 클릭, 비용데이터를 직접 업로드하고 업로드 상태를 조회할 수 있습니다.

    Metric Data

    신규 메트릭 데이터를 직접 업로드하고 업로드 상태를 조회할 수 있습니다.


    Ad Spend Data 업로드 요청하기

    POST

    https://api.airbridge.io/self-serve-data/v1/ad-spend/requests

    광고 비용 데이터를 CSV 포맷으로 업로드 요청합니다.

    Request Header 내 'Content-Type' 은 multipart/form-data 를 사용합니다.

    header-multipart
    1
    Content-Type: multipart/form-data; charset=utf-8

    CSV 파일 포맷 및 스키마

    CSV 파일 내 컬럼명 및 컬럼값

    Category

    Column Name

    Type

    Description

    Required

    Group by

    date

    string

    데이터가 기록된 날짜. 'YYYY-MM-DD' 포맷의 데이터만 허용됩니다

    Required

    Group by

    channel

    string

    광고 채널. 에어브릿지와 연동된 채널은 에어브릿지 대시보드에서 사용되는 이름으로 입력해야 합니다

    Required

    Group by

    currency

    string

    3문자 통화 코드(ISO 4217)
    - KRW, USD 등

    Required

    Group by

    campaign

    string

    광고를 집행한 캠페인 이름

    Required

    Metric

    impressions

    int

    노출 수. 자리수 구분을 위한 기호(,)를 허용하지 않습니다

    Required

    Metric

    clicks

    int

    클릭 수. 자리수 구분을 위한 기호(,)를 허용하지 않습니다

    Required

    Metric

    cost

    float

    광고 등에 쓰인 비용. 자리수 구분을 위한 기호(,)를 허용하지 않습니다.

    Required

    Group by

    campaign_id

    string

    캠페인 ID

    Optional

    Group by

    ad_group

    string

    광고 그룹 이름

    Optional

    Group by

    ad_group_id

    string

    광고 그룹 ID

    Optional

    Group by

    ad_creative

    string

    광고 소재

    Optional

    Group by

    ad_creative_id

    string

    광고 소재 ID

    Optional

    Group by

    term

    string

    광고 키워드

    Optional

    Group by

    term_id

    string

    광고 키워드 ID

    Optional

    Group by

    ad_account_id

    string

    광고 계정 ID

    Optional

    Group by

    sub_publisher

    string

    하위 광고 채널 이름

    Optional

    Group by

    sub_sub_publisher_1

    string

    하하위 광고 채널1 이름

    Optional

    Group by

    sub_sub_publisher_2

    string

    하하위 광고 채널2 이름

    Optional

    Group by

    sub_sub_publisher_3

    string

    하하위 광고 채널3 이름

    Optional

    Group by

    country

    string

    2문자 국가 코드

    Optional

    Group by

    os_name

    string

    OS 이름. 에어브릿지 대시보드와 대소문자까지 동일한 표기로 입력해야 함께 분석할 수 있습니다

    Optional

    Sample CSV File

    주의하세요

    대소문자 입력에 주의해 주세요. Type이 string인 칼럼의 데이터들은 대소문자를 구분하여 인식합니다.

    Airbridge에서 측정한 모바일 OS Name은 각각 'Android', 'iOS'로 기록하고 있지만 직접 업로드한 데이터의 OS Name을 'android', 'ios'로 입력한 경우 대시보드 내 별개의 Row로 분리됩니다. 따라서 Group by 결과를 위해서 ‘Android’, 'iOS’로 기록해주셔야 합니다.

    데이터 Overwrite 및 삭제

    데이터 Ovewrite

    비용 데이터 업로드 시 'date', 'channel', 'campaign' 3개 필드값을 기준으로 기존에 동일한 조합이 있는 경우 기존 데이터를 신규 데이터로 Overwrite합니다.

    예시 시나리오1

    1. 2022-08-03: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    KRW

    1000

    10000

    100000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    KRW

    800

    12000

    80000

    2. 2022-08-04: date, channel, campaign 레벨의 데이터 업로드

    date

    channel

    campaign

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    KRW

    2000

    20000

    150000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'campaign' 3개 필드값을 기준으로 8월 3일에 업로드한 동일 데이터가 있기 때문에 해당 데이터 대신 최종적으로 8월 4일 업로드 데이터만 남게됩니다. (ad group 값은 null)

    date

    channel

    campaign

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    KRW

    2000

    20000

    150000

    예시 시나리오 2

    1. 2022-08-03: date, channel, campaign 레벨의 데이터 업로드

    date

    channel

    campaign

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    KRW

    1000

    10000

    100000

    2. 2022-08-04: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    KRW

    2000

    20000

    150000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'campaign' 3개 필드값을 기준으로 8월 3일에 업로드한 동일 데이터가 있기 때문에 해당 데이터 대신 최종적으로 8월 4일 업로드 데이터만 남게됩니다.

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    KRW

    2000

    20000

    150000

    예시 시나리오 3

    1. 2022-08-03: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    promotion_campaign

    2030_female

    KRW

    1200

    15000

    10000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    KRW

    1000

    10000

    100000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    KRW

    800

    12000

    80000

    2. 2022-08-04: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    KRW

    900

    15000

    90000

    2022-08-01

    owned_website

    ua_campaign

    2030_female

    KRW

    1200

    15000

    120000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'campaign' 3개 필드값을 기준으로 8월 3일에 업로드 데이터 중 동일 데이터는 8월 4일의 데이터로 대체되며, 나머지 데이터는 그대로 남게됩니다.

    date

    channel

    campaign

    ad_group

    currency

    clicks

    impressions

    cost

    2022-08-01

    owned_website

    promotion_campaign

    2030_female

    KRW

    1200

    15000

    10000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    KRW

    900

    15000

    90000

    2022-08-01

    owned_website

    ua_campaign

    2030_female

    KRW

    1200

    15000

    120000

    데이터 삭제

    기존에 업로드한 비용 데이터를 삭제하기 위해서는 동일한 Group by에 대해서 clicks, impressions, cost 메트릭의 값을 모두 0으로 설정하여 다시 업로드합니다.

    유의 사항

    • 현재 비용 데이터 업로드 요청 및 상태 조회 API는 오너, 사내마케터 권한 계정의 API Token으로만 사용 가능합니다.

    • CSV 파일 내 컬럼명은 정해진 소문자 값만 허용됩니다. 또한 channel, currency, country, os_name 등은 에어브릿지 대시보드에 나오는 데이터와 동일한 표기를 사용해야 함께 조회할 수 있습니다.

    • 1번에 요청할 수 있는 CSV 파일의 최대 row는 10000개입니다. 또한 CSV 파일의 최대 크기는 1MB입니다.

    • CSV 파일의 열에 공백을 허용하지 않습니다. 값이 없는 메트릭은 0으로 입력하여 업로드해야 합니다. 예를 들어 Cost 데이터는 있지만, Clicks, Impressions 데이터는 없는 경우 Clicks, Impression 컬럼을 추가하되 값을 모두 0으로 입력하여 업로드합니다.

    • string 타입의 컬럼값은 1글자 이상, 256글자 이하로 제한됩니다.

    • 컬럼명 및 컬럼값 앞뒤로 공백이 없도록 유의해 주세요.

    Response

    200 SUCCESS

    Name

    Description

    Example

    requestId

    업로드 요청에 대한 고유 ID로, 요청 시 마다 새로운 ID가 부여됩니다. 업로드 요청 상태 조회 시 해당 ID가 사용됩니다.

    08844672-62d8-4da8-9d48-e14961651e0c

    status

    업로드 요청에 대한 진행 상태값입니다.

    ingested

    prevStatus

    현재 status 이전의 상태값입니다.

    validated

    reason

    status가 'failed'로 업로드 실패 이유에 대한 값입니다.

    {"date": ["invalid date"]}

    createdAt

    요청이 생성된 날짜 및 시간입니다.

    2022-08-09T08:59:15

    updatedAt

    업데이트가 진행된 날짜 및 시간입니다.

    2022-08-09T08:59:15

    Response
    12345678
    {
      "reason": null,
      "status": "uploaded",
      "createdAt": "2023-01-01T09:00:00",
      "requestId": "08844672-62d8-4da8-9d48-e14961651e0c",
      "updatedAt": "2023-01-01T09:00:00",
      "prevStatus": null
    }

    Ad Spend Data 업로드 진행 상태 조회하기

    GET

    https://api.airbridge.io/self-serve-data/v1/ad-spend/requests/{request_id}

    업로드 요청 상태

    업로드 요청된 파일의 처리 상태는 API 요청 결과의 status로 확인할 수 있습니다.

    Status

    Description

    uploaded

    API를 통해 데이터가 서버로 업로드 된 상태.

    validated

    업로드한 파일의 Validation이 완료된 상태.

    ingested

    업로드한 파일을 데이터베이스에 저장한 상태.

    succeeded

    업로드한 파일이 리포트에 조회할 수 있도록 처리 완료된 상태. 최대 10분 이내에 대시보드 리포트에서 확인 가능.

    failed

    업로드한 파일의 처리가 실패한 상태로, Response 중 'reason' 값을 참고하여 올바른 파일로 재업로드 필요.

    Request

    Path Params

    request_id
    필수string

    업로드 요청에 대한 고유 ID.

    Request
    1234
    curl -X GET 'https://api.airbridge.io/self-serve-data/v1/ad-spend/requests/08844672-62d8-4da8-9d48-e14961651e0c' \
      -H 'Aceept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

    Response

    200 (업로드 성공)SUCCESS

    200 (업로드 실패)SUCCESS

    Response
    12345678
    {
      "reason": null,
      "status": "succeeded",
      "createdAt": "2023-01-01T09:00:00",
      "requestId": "08844672-62d8-4da8-9d48-e14961651e0c",
      "updatedAt": "2022-01-01T09:00:00",
      "prevStatus": "ingested"
    }

    Metric Data 업로드 요청하기

    POST

    https://api.airbridge.io/self-serve-data/v1/metric/requests

    메트릭 데이터를 CSV 포맷으로 업로드 요청합니다.

    Header

    Request Header 내 'Content-Type' 은 multipart/form-data 를 사용합니다.

    header-multipart
    1
    Content-Type: multipart/form-data; charset=utf-8

    CSV 파일 포맷 및 스키마

    CSV 파일 내 컬럼명 및 컬럼값

    Category

    Column Name

    Type

    Description

    Required

    Group by

    date

    string

    데이터가 기록된 날짜, 'YYYY-MM-DD' 포맷의 데이터만 허용합니다

    Required

    Group by

    channel

    string

    광고 채널. 에어브릿지와 연동된 채널은 에어브릿지 대시보드에서 사용되는 이름으로 입력해야 합니다

    Required

    Group by

    event_category

    string

    업로드 데이터의 카테고리 명칭

    Required

    Metric

    event_value

    double

    업로드 데이터의 값

    Required

    Group by

    campaign

    string

    캠페인 이름

    Optional

    Group by

    ad_group

    string

    광고 그룹 이름

    Optional

    Group by

    ad_creative

    string

    광고 소재

    Optional

    Group by

    content

    string

    광고 콘텐츠 종류

    Optional

    Group by

    event_source

    string

    데이터 출처

    - app

    - web

    - tracking_link

    Optional

    Group by

    os_name

    string

    OS 이름

    Optional

    Group by

    term

    string

    광고 키워드

    Optional

    Group by

    country

    string

    2문자 국가 코드

    Optional

    Group by

    currency

    string

    3문자 통화 코드(ISO 4217)

    Optional

    Group by

    sub_publisher

    string

    하위 광고 채널 이름

    Optional

    Group by

    sub_sub_publisher_1

    string

    하하위 광고 채널1 이름

    Optional

    Group by

    sub_sub_publisher_2

    string

    하하위 광고 채널2 이름

    Optional

    Group by

    sub_sub_publisher_3

    string

    하하위 광고 채널 이름

    Optional

    Group by

    is_first_event_per_device_id

    boolean

    디바이스 ID 기준 각 이벤트의 최초 발생 여부

    - true, TRUE: 최초로 발생한 이벤트

    - false, FALSE: 추가로 발생한 이벤트

    Optional

    Group by

    is_first_event_per_user_id

    boolean

    유저 ID 기준 각 이벤트의 최초 발생 여부

    - true, TRUE: 최초로 발생한 이벤트

    - false, FALSE: 추가로 발생한 이벤트

    Optional

    하나의 CSV 파일 내에 Group by와 event_category가 모두 동일한 Row들이 존재할 경우, 해당 데이터는 리포트에서 동일한 Row들이 합쳐진 값으로 표시됩니다.

    • 업로드 데이터

    date

    channel

    campaign

    event_category

    event_Value

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    150000

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    100000

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    10000

    • 리포트에 나오는 데이터

    date

    channel

    campaign

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    251000

    Sample CSV File

    주의하세요

    대소문자 입력에 주의해 주세요. Type이 string인 칼럼의 데이터들은 대소문자를 구분하여 인식합니다.

    Airbridge에서 측정한 모바일 OS Name은 각각 'Android', 'iOS'로 기록하고 있지만 직접 업로드한 데이터의 OS Name을 'android', 'ios'로 입력한 경우 대시보드 내 별개의 Row로 분리됩니다. 따라서 Group by 결과를 위해서 ‘Android’, 'iOS’로 기록해주셔야 합니다.

    데이터 Overwrite 및 삭제

    데이터 Ovewrite

    Self-serve 데이터 업로드 시 'date', 'channel', 'event_category' 3개 필드값을 기준으로 기존에 동일한 조합이 있는 경우 기존 데이터를 신규 데이터로 Overwrite합니다.

    예시 시나리오 1

    1. 2022-08-03: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    self_event

    100000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    self_event

    80000

    2. 2022-08-04: date, channel, campaign 레벨의 데이터 업로드

    date

    channel

    campaign

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    150000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'event_category' 3개 필드값을 기준으로 8월 3일에 업로드한 동일 데이터가 있기 때문에 해당 데이터 대신 최종적으로 8월 4일 업로드 데이터만 남게됩니다. (ad group 값은 null)

    date

    channel

    campaign

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    150000

    예시 시나리오 2

    1. 2022-08-03: date, channel, campaign 레벨의 데이터 업로드

    date

    channel

    campaign

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    self_event

    100000

    2. 2022-08-04: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    self_event

    150000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'event_category' 3개 필드값을 기준으로 8월 3일에 업로드한 동일 데이터가 있기 때문에 해당 데이터 대신 최종적으로 8월 4일 업로드 데이터만 남게됩니다.(ad_group 값도 추가 업데이트됨)

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    self_event

    150000

    예시 시나리오 3

    1. 2022-08-03: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    promotion_campaign

    2030_female

    self_event

    10000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_female

    self_event

    100000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    self_event2

    80000

    2. 2022-08-04: date, channel, campaign, ad_group 레벨의 데이터 업로드

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    self_event

    90000

    2022-08-01

    owned_website

    ua_campaign

    2030_female

    self_event

    120000

    3. 최종 반영: 8월 4일 업로드 데이터 처리 시 'date', 'channel', 'event_category' 3개 필드값을 기준으로 8월 3일에 업로드 데이터 중 동일 데이터는 8월 4일의 데이터로 대체되며, 나머지 데이터는 그대로 남게됩니다.

    date

    channel

    campaign

    ad_group

    event_category

    event_value

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    self_event2

    80000

    2022-08-01

    owned_website

    retargeting_campaign

    2030_male

    self_event

    90000

    2022-08-01

    owned_website

    ua_campaign

    2030_female

    self_event

    120000

    데이터 아카이브

    기존에 업로드한 메트릭을 리포트에서 보이지 않게 하고 싶으신 경우 담당 CSM을 통해 요청해주세요.

    유의사항

    • 현재 Metric 데이터 업로드 요청 및 상태 조회 API는 앱 역할이 오너 또는 사내 마케터인 에어브릿지 사용의 API Token으로만 사용 가능합니다.

    • CSV 파일 내 컬럼명은 정해진 소문자 값만 허용됩니다. CSV 파일 내 모든 Row에서 Required 열은 값이 반드시 존재해야 합니다. 또한 Required 열은 공백을 허용하지 않습니다. event_value도 공백이 아닌 0으로 입력하여 업로드해야 합니다.

    • CSV 파일 내 칼럼 순서는 업로드 기능에 영향을 미치지 않습니다.

    • 한번의 요청으로 업로드하는 CSV 파일의 최대 크기는 1MB입니다. 만약 1MB 이상 크기의 CSV 파일 업로드가 필요한 경우 gzip 압축을 한 뒤 업로드하거나, 여러 번의 API 호출로 나눠서 업로드 해주세요.

    • string 타입의 칼럼값은 256글자 이하로 제한됩니다. 또한 칼럼명 및 칼럼값 앞뒤로 공백이 없도록 유의합니다.

    • event_category에는 영어와 숫자를 사용할 수 있습니다. 하지만 일부 기호(, , ", \)는 사용할 수 없습니다.

    • 등록된 메트릭은 Actuals Report와 Trends Reports의 메트릭 중 Self-serve Metric에서 업로드한 event_category 이름을 찾으면 사용할 수 있습니다.

    • Upload 시 등록된 새로운 데이터는 (ex. campaign에 self_serve_test_campaign) Filter 사용시 선택옵션에 나타나지 않지만 freeform으로 등록해서 사용할 수 있습니다.

    Response

    200 SUCCESS

    Name

    Description

    Example

    requestId

    업로드 요청에 대한 고유 ID로, 요청마다 새로운 ID가 부여됩니다. 업로드 요청 상태 조회 시 해당 ID가 사용됩니다.

    08844672-62d8-4da8-9d48-e14961651e0c

    status

    업로드 요청에 대한 진행 상태값입니다.

    ingested

    prevStatus

    현재 status 이전의 상태값입니다.

    validated

    reason

    status가 'failed'로 업로드 실패 이유에 대한 값입니다.

    {"date": ["invalid date"]}

    createdAt

    요청이 생성된 날짜 및 시간입니다.

    2023-01-01T09:00:00

    updatedAt

    업데이트가 진행된 날짜 및 시간입니다.

    2023-01-01T09:09:00

    Response
    12345678
    {
      "reason": null,
      "status": "uploaded",
      "createdAt": "2023-01-01T09:00:00",
      "requestId": "08844672-62d8-4da8-9d48-e14961651e0c",
      "updatedAt": "2023-01-01T09:00:00",
      "prevStatus": null
    }

    Metric Data 업로드 진행 상태 조회하기

    GET

    https://api.airbridge.io/self-serve-data/v1/metric/requests/{request_id}

    업로드 요청 상태

    업로드 요청된 파일의 처리 상태는 API 요청 결과의 status로 확인할 수 있습니다.

    Status

    Description

    uploaded

    API를 통해 데이터가 서버로 업로드 된 상태.

    validated

    업로드한 파일의 Validation이 완료된 상태.

    ingested

    업로드한 파일을 데이터베이스에 저장한 상태.

    succeeded

    업로드한 파일이 리포트에 조회할 수 있도록 처리 완료된 상태. 최대 10분 이내에 대시보드 리포트에서 확인 가능.

    failed

    업로드한 파일의 처리가 실패한 상태로, Response 중 'reason' 값을 참고하여 올바른 파일로 재업로드 필요.

    Request

    Path Params

    request_id
    string
    Request
    1234
    curl -X GET 'https://api.airbridge.io/self-serve-data/v1/metric/requests/08844672-62d8-4da8-9d48-e14961651e0c' \
      -H 'Aceept-Language: ko' \
      -H 'Content-Type: application/json' \
      -H 'Authorization: Bearer {AIRBRIDGE-API-TOKEN}'

    Response

    200 (업로드 성공)SUCCESS

    Name

    Description

    Example

    requestId

    업로드 요청에 대한 고유 ID로, 매 요청마다 새로운 ID가 부여됩니다. 업로드 요청 상태 조회 시 해당 ID가 사용됩니다.

    08844672-62d8-4da8-9d48-e14961651e0c

    status

    업로드 요청에 대한 진행 상태값입니다.

    ingested

    prevStatus

    현재 status 이전의 상태값입니다.

    validated

    reason

    status가 'failed'로 업로드 실패 이유에 대한 값입니다.

    {"date": ["invalid date"]}

    createdAt

    요청이 생성된 날짜 및 시간입니다.

    2023-01-01T09:00:00

    updatedAt

    업데이트가 진행된 날짜 및 시간입니다.

    2023-01-01T09:00:00

    200 (업로드 실패)SUCCESS

    Response
    12345678
    {
      "reason": null,
      "status": "succeeded",
      "createdAt": "2023-01-01T09:00:00",
      "requestId": "08844672-62d8-4da8-9d48-e14961651e0c",
      "updatedAt": "2023-01-01T09:00:00",
      "prevStatus": "ingested"
    }

    이 페이지가 도움이 되었나요?

    추가, 수정하면 좋을 내용이 있나요?