본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

Related sites
  • Docs
  • Kakao Moment
  • Ad creation: Campaign

사이드 메뉴

Search

This document describes how to use the campaign APIs.

MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/campaignsBusiness token

Returns a list of campaigns.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
configStringCampaign's status.
One of ON, OFF, or DEL (Deleted).
X
NameTypeDescription
contentCampaign[]List of campaign information.
NameTypeDescription
idLongCampaign's ID.
nameStringCampaign's name.
configStringCampaign status.
One of ON, OFF, or DEL (Deleted).
userConfigStringCampaign status.
One of ON, OFF, or DEL (Deleted).
Note: userConfig has the same value as config. This field is deprecated and provided for reference.
systemConfigStringCampaign's system status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns?config=ON" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
{
"content": [
{
"id": 1111,
"name": "Campaign1",
"config": "ON",
"userConfig": "ON",
"systemConfig": "ADMIN_STOP"
},
{
"id": 1112,
"name": "Campaign2",
"config": "OFF",
"userConfig": "ON",
"systemConfig": "ON"
}
]
}
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/campaigns/${ID}Business token

Returns detailed information about 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).

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDLongCampaign's ID.O
NameTypeDescription
idLongCampaign's ID.
nameStringCampaign's name.
campaignTypeGoalCampaignTypeGoalCampaign Type X Goal.
objectiveObjectiveObjective of the advertising goal.
dailyBudgetAmountLongDaily budget.
If not specified, no limitation on the budget.
configStringCampaign status.
One of ON, OFF, or DEL (Deleted).
statusDescriptionStringStatus of the campaign.
trackIdStringConversion tracking ID.
adAccountIdLongAd account's ID.
statusString[]Status.
Refer to Status.
systemConfigStringCampaign's system status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
isDailyBudgetAmountOverBooleanWhether or not the daily budget is exceeded.
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
{
"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
}
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 31001,
"detailMsg": "캠페인이 존재하지 않습니다."
}
}
MethodURLAuthorization
POSThttps://apis.moment.kakao.com/openapi/v4/campaignsBusiness token

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 View list of Kakao Talk Channel profiles API and the View 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 campaign, you must enter the Kakao Talk Channel profile to which the message will be sent.

If a campaign name is not specified at creation, it is automatically set in the {Type}_{Goal}_yyyyMMddHHmm format according to Kakao Moment's default naming rule.

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 GoalAd objectiveConversion tracking settings (전환 추적 설정)Kakao Click ID settings
Display X
Visit(방문)
-Pixel & SDKOption
Display X
Conversion(전환)
Pixel & SDKAutomatically 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 ChannelNot allowed to set conversion tracking.-
Video X
View(조회)
-Pixel & SDKOption
Kakao Bizboard X
Visit(방문)
-Pixel & SDKOption
Kakao Bizboard X
Conversion(전환)
Pixel & SDKAutomatically 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 ChannelNot allowed to set conversion tracking.-
Kakao Talk Channel X Reach(도달)Kakao Talk ChannelPixel & SDK-
Personalized message X
Reach(도달)
Kakao Talk ChannelPixel & SDK-
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
nameStringCampaign'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
campaignTypeGoalCampaignTypeGoalCampaign Type X GoalO
objectiveObjectiveObjective of the advertising goal.
Refer to Tracking options by Type X Goal.
O*
dailyBudgetAmountLongCampaign'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
trackIdStringConversion tracking ID.
If the campaign's goal is 'Visit(방문)', you can use id that is passed in the response of the View Pixel & SDK API for trackId.
X
kclidBooleanKakao Click ID setting
Refer to Kakao Click ID settings by Type X Goal.
X
* objective: Required only when the corresponding objective type is set.
NameTypeDescriptionRequired
campaignTypeCampaignTypeCampaign's type.O
goalGoalCampaign's goal.O
NameTypeDescription
idLongCampaign's ID.
nameStringCampaign's name.
campaignTypeGoalCampaignTypeGoalCampaign Type X Goal.
objectiveObjectiveObjective of the advertising goal.
dailyBudgetAmountLongDaily budget.
If not specified, no limitation on the budget.
configStringCampaign status.
One of ON, OFF, or DEL (Deleted).
statusDescriptionStringStatus of the campaign.
trackIdStringConversion tracking ID.
adAccountIdLongAd account's ID.
statusString[]Status.
Refer to Status.
systemConfigStringCampaign's system status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
kclidBooleanWhether to set Kakao Click ID.
isDailyBudgetAmountOverBooleanWhether or not the daily budget is exceeded.
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
}'
{
"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
}
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"status": 400,
"message": "존재하지 않는 광고계정입니다."
}
}
MethodURLAuthorization
PUThttps://apis.moment.kakao.com/openapi/v4/campaignsBusiness token

Enables you to edit the campaign information.

  • Campaigns with the Conversion goal can be edited after retrieving the Kakao Talk Channel profile list and Pixel & SDK list.
  • For Kakao Talk Channel and Personalized Message X Reach campaigns, only the name and conversion tracking ID can be edited. Changes to 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.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
idLongCampaign's ID.O
nameStringCampaign's name.
If not specified, the previous name is used.
X
dailyBudgetAmountLongDaily budget.X
trackIdStringConversion tracking ID.
If the campaign's goal is 'Visit(방문)', use the id that is passed in the response of the View Pixel & SDK API for trackId.
For the campaigns with the other goals, use the existing ID of the campaign to be edited.
  • Not required if the existing campaign to be edited does not have an ID.
X
kclidBooleanKakao Click ID setting
Refer to Kakao Click ID settings by Type X Goal.
X
NameTypeDescription
idLongCampaign's ID.
nameStringCampaign's name.
campaignTypeGoalCampaignTypeGoalCampaign Type X Goal.
objectiveObjectiveObjective of the advertising goal.
dailyBudgetAmountLongDaily budget.
If not specified, no limitation on the budget.
configStringCampaign status.
One of ON, OFF, or DEL (Deleted).
statusDescriptionStringStatus of the campaign.
trackIdStringConversion tracking ID.
adAccountIdLongAd account's ID.
statusString[]Status.
Refer to Status.
systemConfigStringCampaign's system status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
kclidBooleanWhether to set Kakao Click ID.
isDailyBudgetAmountOverBooleanWhether or not the daily budget is exceeded.
* adminStop: Deprecated, whether the administrator is suspended (Boolean). Replaced with systemConfig.
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
}'
{
"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
}
MethodURLAuthorization
PUThttps://apis.moment.kakao.com/openapi/v4/campaigns/dailyBudgetAmountBusiness token

Enables you to change the daily budget for a Display campaign.

  • This API does not apply to Reach campaigns of the Kakao Bizboard, Kakao Talk Channel, or Daum Shopping type.
  • Set the campaign daily budget from 50,000 to 1 billion (1,000,000,000) won in multiples of 10 won.

If you lower the existing daily budget and the daily budget or bid amount of a child ad group violates the conditions, the values are adjusted in bulk as follows:

  • If an ad group's daily budget exceeds the changed campaign daily budget: Changed to the campaign daily budget.
  • If an ad group's bid amount exceeds 50% of the changed ad group daily budget: Changed to 50% of the ad group daily budget.

This API limits the number of calls you can make to every five seconds per user account and ad account.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
idLongCampaign's ID.O
dailyBudgetAmountLongCampaign's daily budget.
May be omitted. If omitted, the budget is consumed based on each ad group's daily budget without a campaign-level consolidated spending limit.
If set, enter a value between 50,000 and 1 billion won in multiples of 10 won.
X
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
}'
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
}'
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 31011,
"detailMsg": "캠페인 일예산은 최소 50,000보다 크거나 같아야 합니다."
}
}
MethodURLAuthorization
PUThttps://apis.moment.kakao.com/openapi/v4/campaigns/onOffBusiness token

Enables you to change the status of the specified campaign.

  • The campaign status can be changed only when it is ON or OFF.
  • A Kakao Talk Channel X Reach campaign can be changed only when all child ad groups are OFF or their contracts have been terminated.
  • Requesting a status change for a Kakao Talk Channel X Reach campaign pauses messages being delivered or scheduled for delivery.

This API limits the number of calls you can make to every five seconds per user account and ad account.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
idLongCampaign's ID.O
configStringCampaign's status.
Either ON or OFF.
O
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"
}'
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 31001,
"detailMsg": "캠페인이 존재하지 않습니다."
}
}
MethodURLAuthorization
DELETEhttps://apis.moment.kakao.com/openapi/v4/campaigns/${ID}Business token

Deletes a campaign.

Caution when deleting campaign
  • 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.
NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDLongCampaign's ID.O
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"
HTTP/1.1 200 OK
Content-Length: 0
Content-Type: application/json;charset=UTF-8
// HTTP/1.1 400 Bad request
// Content-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"
}
}
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/latestSystemConfigHistoryBusiness token

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

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDLongCampaign's ID.O
NameTypeDescription
idLongSystem stop ID.
systemConfigStringSystem status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
reasonStringReason for the system stop.
detailReasonStringDetailed reason for the system stop.
Only returned if a system reason exists.
createdDateStringDate and time when the system stop reason is created in yyyy-MM-dd'T'HH:mm:ss format.
lastModifiedDateStringDate and time when the system stop reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format.
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/latestSystemConfigHistory" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
{
"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"
}
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 31001,
"detailMsg": "캠페인이 존재하지 않습니다."
}
}
MethodURLAuthorization
GEThttps://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/systemConfigHistoriesBusiness token

Returns the list of reasons why the specified campaign's system was stopped during 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.

NameDescriptionRequired
AuthorizationAuthorization: Bearer ${BUSINESS_ACCESS_TOKEN}
Business token as a type of user authentication.
O
adAccountIdadAccountId: ${AD_ACCOUNT_ID}
Ad account's ID.
O
NameTypeDescriptionRequired
IDLongCampaign's ID.O
NameTypeDescription
-SystemStopReason[]List of system stop reasons.
NameTypeDescription
idLongSystem stop ID.
systemConfigStringSystem status.
One of the followings:
  • ON: Available to run ads.
  • ADMIN_STOP: Unavailable to run ads because the administrator is suspended.
  • EXTERNAL_SERVICE_STOP: Unavailable to run ads because the linked service is restricted.
reasonStringReason for the system stop.
detailReasonStringDetailed reason for the system stop.
Only returned if a system reason exists.
createdDateStringDate and time when the system stop reason is created in yyyy-MM-dd'T'HH:mm:ss format.
lastModifiedDateStringDate and time when the system stop reason is lastly updated in yyyy-MM-dd'T'HH:mm:ss format.
curl -X GET "https://apis.moment.kakao.com/openapi/v4/campaigns/${ID}/systemConfigHistories" \
-H "Authorization: Bearer ${BUSINESS_ACCESS_TOKEN}" \
-H "adAccountId: ${AD_ACCOUNT_ID}"
[
{
"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"
}
]
{
"code": -813,
"msg": "KakaoMomentException",
"extras": {
"detailCode": 31001,
"detailMsg": "캠페인이 존재하지 않습니다."
}
}

Was this helpful?

    Kakao Moment > Ad creation: Campaign - Kakao Developers | Docs