사이드 메뉴
Getting started
Kakao Developers
Login
Communication
Advertisement
- Concepts
- Ad creation: Ad account
- Ad creation: Campaign
- Ad creation: Ad group
- Targeting for ad group
- Custom audience targeting for ad group
- Ad creation: Creative common
- Ad creation: Display creative
- Ad creation: Message creative
- Ad creation: Personalized message creative
- Bizboard landing settings
- Report
- Message management
- Personalized message management
- Message ad management
- Message ad operation
- Ad View management
- Business Form linkage management
- Pixel & SDK linkage management
- Audience management
- Engagement targeting management
- Customer file management
- Friend group management
- Ad account management
- Reference
- Type information
- Error code
Ad creation: Campaign
This document describes how to use the campaign APIs.
| Method | URL | Authorization |
|---|---|---|
GET | https://apis.moment.kakao.com/openapi/v4/campaigns | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Retrieves a list of campaigns.
Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns an array of each campaign's detailed information in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| config | String | Campaign's status. One of ON, OFF, or DEL (Deleted). | O |
| Name | Type | Description |
|---|---|---|
| content | Campaign[] | List of campaign information. |
| Name | Type | Description |
|---|---|---|
| id | Long | Campaign's ID. |
| name | String | Campaign's name. |
| config | String | Campaign status. One of ON, OFF, or DEL (Deleted). |
| userConfig | String | Campaign status. One of ON, OFF, or DEL (Deleted).Note: userConfig has the same value as config. This field is deprecated and provided for reference. |
| systemConfig | String | Campaign's system status. One of the followings:
|
Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns?config=ON" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
{"content": [{"id": 1111,"name": "Campaign1","config": "ON","userConfig": "ON","systemConfig": "ADMIN_STOP"},{"id": 1112,"name": "Campaign2","config": "OFF","userConfig": "ON","systemConfig": "ON"}]}
| Method | URL | Authorization |
|---|---|---|
GET | https://apis.moment.kakao.com/openapi/v4/campaigns/${ID} | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Retrieves the detailed information of the specified campaign.
A campaign's status (statusDescription) is determined by the combination of the campaign status(config) and whether the daily budget is exceeded(isDailyBudgetAmountOver).
Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the campaign in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| ID | Long | Campaign's ID. | O |
| Name | Type | Description |
|---|---|---|
| id | Long | Campaign's ID. |
| name | String | Campaign's name. |
| campaignTypeGoal | CampaignTypeGoal | Campaign Type X Goal. |
| objective | Objective | Objective of the advertising goal. |
| dailyBudgetAmount | Long | Daily budget. If not specified, no limitation on the budget. |
| config | String | Campaign status. One of ON, OFF, or DEL (Deleted). |
| statusDescription | String | Status of the campaign. |
| trackId | String | Conversion tracking ID. |
| adAccountId | Long | Ad account's ID. |
| status | String[] | Status. Refer to Status. |
| systemConfig | String | Campaign's system status. One of the followings:
|
| isDailyBudgetAmountOver | Boolean | Whether or not the daily budget is exceeded. |
Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
{"id": 1234,"name": "Campaign1","campaignTypeGoal": {"campaignType": "DISPLAY","goal": "VISITING"},"objective": null,"dailyBudgetAmount": null,"config": "ON","statusDescription": "운영중","trackId": "5360727718927577526","adAccountId": 10000,"status": ["LIVE"],"systemConfig": "ON","isDailyBudgetAmountOver": false}
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 31001,"detailMsg": "캠페인이 존재하지 않습니다."}}
| Method | URL | Authorization |
|---|---|---|
POST | https://apis.moment.kakao.com/openapi/v4/campaigns | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Creates a new campaign.
If you want to create a campaign with the Conversion(전환) goal, first check the id value for the objective in the response of the Viewing list of Kakao Talk Channel profiles API and Viewing Pixel & SDK API.
The Kakao Click ID should be configured after sufficient testing. If a landing error occurs because the service was not pre-checked in advance, it is not eligible for compensation.
For a Kakao Talk Channel X Reach(도달), the Kakao Talk Channel profile to which the message will be sent must be entered.
The daily budget of campaigns is not mandatory. You cannot set a daily budget for Kakao Talk Channel and personalized message types. For the campaign strategies, see below:
| Type X Goal | Ad objective | Conversion tracking settings (전환 추적 설정) | Kakao Click ID settings |
|---|---|---|---|
| Display X Visit(방문) | - | Pixel & SDK | Option |
| Display X Conversion(전환) | Pixel & SDK | Automatically set with the same one set for Ad goal settings of the Pixel & SDK. Not allowed to set ID manually when creating a campaign. Required to enter the same ID that is automatically set when creating a campaign. | Option |
| Display X Conversion(전환) | Kakao Talk Channel | Not allowed to set conversion tracking. | - |
| Video X View(조회) | - | Pixel & SDK | Option |
| Kakao Bizboard X Visit(방문) | - | Pixel & SDK | Option |
| Kakao Bizboard X Conversion(전환) | Pixel & SDK | Automatically set with the same one set for Ad goal settings of the Pixel & SDK. Not allowed to set ID manually when creating a campaign. Required to enter the same ID that is automatically set when creating a campaign. | Option |
| Kakao Bizboard X Conversion(전환) | Kakao Talk Channel | Not allowed to set conversion tracking. | - |
| Kakao Talk Channel X Reach(도달) | Kakao Talk Channel | Pixel & SDK | - |
| Personalized message X Reach(도달) | Kakao Talk Channel | Pixel & SDK | - |
Send a POST request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the detailed information of the created campaign in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| name | String | Campaign's name. Character limits: 50 characters If not specified, the name is automatically set in {TYPE}_{GOAL}_yyyyMMddHHmm format according to the default naming rule of Kakao Moment. | X |
| campaignTypeGoal | CampaignTypeGoal | Campaign Type X Goal | O |
| objective | Objective | Objective of the advertising goal. Refer to Tracking options by Type X Goal. | O* |
| dailyBudgetAmount | Long | Campaign's daily budget. If not specified, no limitation on the budget. Not allowed to set for the 'Kakao Talk Channel X Reach' type of campaign. | X |
| trackId | String | Conversion tracking ID. If the campaign's goal is 'Visit(방문)', you can use id that is passed in the response of the Viewing Pixel & SDK API for trackId. | X |
| kclid | Boolean | Kakao Click ID setting Refer to Kakao Click ID settings by Type X Goal. | X |
| Name | Type | Description | Required |
|---|---|---|---|
| campaignType | CampaignType | Campaign's type. | O |
| goal | Goal | Campaign's goal. | O |
| Name | Type | Description |
|---|---|---|
| id | Long | Campaign's ID. |
| name | String | Campaign's name. |
| campaignTypeGoal | CampaignTypeGoal | Campaign Type X Goal. |
| objective | Objective | Objective of the advertising goal. |
| dailyBudgetAmount | Long | Daily budget. If not specified, no limitation on the budget. |
| config | String | Campaign status. One of ON, OFF, or DEL (Deleted). |
| statusDescription | String | Status of the campaign. |
| trackId | String | Conversion tracking ID. |
| adAccountId | Long | Ad account's ID. |
| status | String[] | Status. Refer to Status. |
| systemConfig | String | Campaign's system status. One of the followings:
|
| kclid | Boolean | Whether to set Kakao Click ID. |
| isDailyBudgetAmountOver | Boolean | Whether or not the daily budget is exceeded. |
Request
curl -X POST "https://apis.moment.kakao.com/openapi/v4/campaigns" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json" \-d '{"name": "first_campaign","campaignTypeGoal" : {"campaignType" : "DISPLAY","goal" : "CONVERSION"},"objective" : {"type" : "TALK_CHANNEL","value" : "abcd1234"},"dailyBudgetAmount" : 200000}'
Response
{"id": 1234,"name": "Campaign1","campaignTypeGoal": {"campaignType": "DISPLAY","goal": "VISITING"},"objective": null,"dailyBudgetAmount": null,"config": "ON","statusDescription": "운영중","trackId": "5360727718927577526","adAccountId": 10000,"status": ["LIVE"],"systemConfig": "ON","isDailyBudgetAmountOver": false}
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"status": 400,"message": "존재하지 않는 광고계정입니다."}}
| Method | URL | Authorization |
|---|---|---|
PUT | https://apis.moment.kakao.com/openapi/v4/campaigns | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Enables you to edit the campaign information.
In the case of the 'Kakao Talk Channel, Personalized message X Reach(도달)' campaign, you can only change the campaign's name and track ID, and the changes in other fields are not applied.
The Kakao Click ID should be configured after sufficient testing. If a landing error occurs because the service was not pre-checked in advance, it is not eligible for compensation.
Send a PUT request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the changed information of the campaign in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| id | Long | Campaign's ID. | O |
| name | String | Campaign's name. If not specified, the previous name is used. | X |
| dailyBudgetAmount | Long | Daily budget. | X |
| trackId | String | Conversion tracking ID. If the campaign's goal is 'Visit(방문)', use the id that is passed in the response of the Viewing Pixel & SDK API for trackId.For the campaigns with the other goals, use the existing ID of the campaign to be edited.
| X |
| kclid | Boolean | Kakao Click ID setting Refer to Kakao Click ID settings by Type X Goal. | X |
| Name | Type | Description |
|---|---|---|
| id | Long | Campaign's ID. |
| name | String | Campaign's name. |
| campaignTypeGoal | CampaignTypeGoal | Campaign Type X Goal. |
| objective | Objective | Objective of the advertising goal. |
| dailyBudgetAmount | Long | Daily budget. If not specified, no limitation on the budget. |
| config | String | Campaign status. One of ON, OFF, or DEL (Deleted). |
| statusDescription | String | Status of the campaign. |
| trackId | String | Conversion tracking ID. |
| adAccountId | Long | Ad account's ID. |
| status | String[] | Status. Refer to Status. |
| systemConfig | String | Campaign's system status. One of the followings:
|
| kclid | Boolean | Whether to set Kakao Click ID. |
| isDailyBudgetAmountOver | Boolean | Whether or not the daily budget is exceeded. |
Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/campaigns" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json" \-d '{"id": 5678,"name" : "edit_first_campaign","dailyBudgetAmount":100000,"trackId":null}'
Response
{"id": 1234,"name": "Campaign1","campaignTypeGoal": {"campaignType": "DISPLAY","goal": "VISITING"},"objective": null,"dailyBudgetAmount": null,"config": "ON","statusDescription": "운영중","trackId": "5360727718927577526","adAccountId": 10000,"status": ["LIVE"],"systemConfig": "ON","isDailyBudgetAmountOver": false}
| Method | URL | Authorization |
|---|---|---|
PUT | https://apis.moment.kakao.com/openapi/v4/campaigns/dailyBudgetAmount | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Enables you to change the daily budget for a Display campaign.
You cannot change the daily budget of Kakao Bizboard, Kakao Talk Channel or Daum Shopping type of campaign whose goal is set to 'Reach(도달)'.
You can set the campaign's daily budget from 50,000 to 1 billion(1,000,000,000) won in multiples of 10 won. If you change the daily budget to a lower value than the daily budget saved previously, the following rules are applied:
- If the ad group's daily budget exceeds the changed daily budget for campaign,
→ the changed campaign daily budget is applied. - If the ad group's bid amount exceeds 50 % of the daily budget of the ad group to be changed,
→ 50% of the changed ad group's daily budget is applied.
Send a PUT request with the issued business token and an ad account ID (adAccountId) in the request header. If you do not set the daily budget for a campaign, there is no limitation on the budget. If the request is successful, this API returns the HTTP status code 200 without the response body. If failed, refer to Error code to figure out its failure cause.
This API limits the number of calls you can make to every five seconds per user account and ad account.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| id | Long | Campaign's ID. | O |
| dailyBudgetAmount | Long | Campaign's daily budget. Allowed to set a value between 50,000 and 1 billion won in multiples of 10 won. Allowed to set to null. | X |
Request: Setting campaign daily budget
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/campaigns/dailyBudgetAmount" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json" \-d '{"id": 5678,"dailyBudgetAmount": 5000000}'
Request: Setting campaign daily budget to null
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/campaigns/dailyBudgetAmount" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json" \-d '{"dailyBudgetAmount" : null}'
Response
HTTP/1.1 200 OKContent-Length: 0Content-Type: application/json;charset=UTF-8
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 31011,"detailMsg": "캠페인 일예산은 최소 50,000보다 크거나 같아야 합니다."}}
| Method | URL | Authorization |
|---|---|---|
PUT | https://apis.moment.kakao.com/openapi/v4/campaigns/onOff | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Enables you to change the status of the specified campaign.
You can only change its status if the campaign status is ON or OFF.
In the case of the 'Kakao Talk Channel X Reach(도달)' campaign, all ad groups under the campaign must be 'OFF' or 'Contract canceled'. If you request to change the status of the campaign with the 'Kakao Talk Channel X Reach(도달)' type, the messages being sent are stopped and the messages scheduled to be sent are canceled.
Send a PUT request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the HTTP status code 200 without the response body. If failed, refer to Error code to figure out its failure cause.
This API limits the number of calls you can make to every five seconds per user account and ad account.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| id | Long | Campaign's ID. | O |
| config | String | Campaign's status. Either ON or OFF. | O |
Request
curl -X PUT "https://apis.moment.kakao.com/openapi/v4/campaigns/onOff" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json" \-d '{"id": 5678,"config" : "ON"}'
Response
HTTP/1.1 200 OKContent-Length: 0Content-Type: application/json;charset=UTF-8
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 31001,"detailMsg": "캠페인이 존재하지 않습니다."}}
| Method | URL | Authorization |
|---|---|---|
DELETE | https://apis.moment.kakao.com/openapi/v4/campaigns/${ID} | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Deletes a campaign.
Send a DELETE request with the issued business token and an ad account ID (adAccountId) in the request header. You must pass the campaign's ID as a parameter when you request. If the request is successful, this API returns the HTTP status code 200 without the response body. If failed, refer to Error code to figure out its failure cause.
- Deleting does not mean removing the data, but rather relinquishing management of the sub-campaign.
- You cannot delete campaigns of the 'Kakao Bizboard X Reach(도달)' or 'Daum Shopping' type.
- When a campaign is deleted, the following restrictions apply:
- All functions related to the campaign, such as editing or suspending, become unavailable.
- All ads under the campaign stop running and displaying.
- All ad groups and creatives under the campaign are deleted.
- However, statistics from the operational period before deletion can still be viewed.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| ID | Long | Campaign's ID. | O |
Request
curl -v -X DELETE "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}" \-H "Content-Type: application/json"
Response
HTTP/1.1 200 OKContent-Length: 0Content-Type: application/json;charset=UTF-8
Response: Fail
HTTP/1.1 400 Bad requestContent-Type: application/json;charset=UTF-8{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 75006,"detailMsg": "카카오톡 채널_도달 캠페인은 삭제할 수 없습니다.","path": "/v2/moment/campaigns","timestamp": "2018-10-01T10:16:14.294+0000"}}
| Method | URL | Authorization |
|---|---|---|
GET | https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/latestSystemConfigHistory | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Retrieves the reason why the specified campaign's system is stopped.
If there are multiple reasons for the system stop, the most recent reason is returned. Only when the value of systemConfig (Campaign's system status) is ADMIN_STOP or EXTERNAL_SERVICE_STOP, the response is returned.
Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the system stop reason and details in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| ID | Long | Campaign's ID. | O |
| Name | Type | Description |
|---|---|---|
| id | Long | System stop ID. |
| systemConfig | String | System status. One of the followings:
|
| reason | String | Reason for the system stop. |
| detailReason | String | Detailed reason for the system stop. Only returned if a system reason exists. |
| createdDate | String | Date and time when the system stop reason is created in yyyy-MM-dd'T'HH:mm:ss format. |
| lastModifiedDate | String | Date and time when the system stop reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format. |
Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/latestSystemConfigHistory" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
{"id": 1234,"systemConfig": "ADMIN_STOP","reason": "해당 캠페인유형은 지원 종료되었습니다.","createdDate": "2021-01-01T00:00:00","lastModifiedDate": "2021-01-01T00:00:00"}
{"id": 1234,"systemConfig": "EXTERNAL_SERVICE_STOP","reason": "채널 파트너센터에서 제재됨","detailReason": "메시지 집행 가이드, 운영정책 위반으로 2022년 7월 15일까지 메시지 발송이 불가","createdDate": "2021-01-01T00:00:00","lastModifiedDate": "2021-01-01T00:00:00"}
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 31001,"detailMsg": "캠페인이 존재하지 않습니다."}}
| Method | URL | Authorization |
|---|---|---|
GET | https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/systemConfigHistories | Business token |
| Permission | Prerequisite | Business Authentication | Business consent items |
|---|---|---|---|
| Required: Request permission | Switch to a Biz app Set Business redirect URI Business consent items | Required | Required |
Retrieves the list of reasons why the specified campaign's system is stopped, which occurred for the last two years.
Only when the value of systemConfig (Campaign's system status) is ADMIN_STOP or EXTERNAL_SERVICE_STOP, the response is returned.
Send a GET request with the issued business token and an ad account ID (adAccountId) in the request header. If the request is successful, this API returns the list of the system stop reasons and details in JSON format. If failed, refer to Error code to figure out its failure cause.
| Name | Description | Required |
|---|---|---|
| Authorization | Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}Business token as a type of user authentication. | O |
| adAccountId | adAccountId: ${AD_ACCOUNT_ID}Ad account's ID. | O |
| Name | Type | Description | Required |
|---|---|---|---|
| ID | Long | Campaign's ID. | O |
| Name | Type | Description |
|---|---|---|
| - | SystemStopReason[] | List of system stop reasons. |
| Name | Type | Description |
|---|---|---|
| id | Long | System stop ID. |
| systemConfig | String | System status. One of the followings:
|
| reason | String | Reason for the system stop. |
| detailReason | String | Detailed reason for the system stop. Only returned if a system reason exists. |
| createdDate | String | Date and time when the system stop reason is created in yyyy-MM-dd'T'HH:mm:ss format. |
| lastModifiedDate | String | Date and time when the system stop reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format. |
Request
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/systemConfigHistories" \-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \-H "adAccountId: ${AD_ACCOUNT_ID}"
Response
[{"id": 1235,"systemConfig": "ADMIN_STOP","reason": "해당 캠페인유형은 지원 종료되었습니다.","createdDate": "2021-01-01T00:00:00","lastModifiedDate": "2021-01-01T00:00:00"},{"id": 1234,"systemConfig": "EXTERNAL_SERVICE_STOP","reason": "채널 파트너센터에서 제재됨","detailReason": "메시지 집행 가이드, 운영정책 위반으로 2022년 7월 15일까지 메시지 발송이 불가","createdDate": "2021-01-01T00:00:00","lastModifiedDate": "2021-01-01T00:00:00"}]
Response: Fail
{"code": -813,"msg": "KakaoMomentException","extras": {"detailCode": 31001,"detailMsg": "캠페인이 존재하지 않습니다."}}