naver / searchad-apidoc

http://naver.github.io/searchad-apidoc/
99 stars 74 forks source link

공유예산 생성/추가 오류 문의 #962

Open kwak82721 opened 3 months ago

kwak82721 commented 3 months ago

공유예산 API 중 아래 2개의 API 에 대해서만 응답 오류가 발생해 원인문의드립니다. 또한 생성/수정을 위한 request 필수값을 알고 싶습니다. 계정당 API Call 제한도 있는지 문의드립니다.

  1. Create SharedBudget 오류 Request

    {
    "budgetLock" : true,
    "dailyBudget" : 10000,
    "deliveryMethod" : "STANDARD", // ACCELERATED, STANDARD  CampaignBudget use
    "name" : "테스트 공유예산_API"
    }

    Response

    {
    "code": 1018,
    "status": 404,
    "title": "No permission to access the resource."
    }

    --> 다른 API 에서 성공적으로 응답이 온 토큰으로 생성시 오류가 발생합니다.

  2. Add Adgroup To SharedBudget 오류 request

    {
    "nccAdgroupId": "grp-a001-01-000000037319590",
    "customerId": 2698066,
    "nccCampaignId": "cmp-a001-01-000000006080983",
    "mobileChannelId": "bsn-a001-00-000000007789470",
    "pcChannelId": "bsn-a001-00-000000007789470",
    "bidAmt": 70,
    "name": "test",
    "userLock": false,
    "useDailyBudget": true,
    "useKeywordPlus": false,
    "useCloseVariant": true,
    "keywordPlusWeight": 0,
    "contentsNetworkBidAmt": 70,
    "useCntsNetworkBidAmt": false,
    "mobileNetworkBidWeight": 100,
    "pcNetworkBidWeight": 100,
    "dailyBudget": 50,
    "budgetLock": false,
    "delFlag": false,
    "regTm": "2023-09-13T07:49:44.000Z",
    "editTm": "2024-07-01T04:59:41.000Z",
    "targets": [
        {
            "nccTargetId": "tgt-a001-01-000000422342019",
            "ownerId": "grp-a001-01-000000037319590",
            "targetTp": "MEDIA_TARGET",
            "target": {
                "type": 1,
                "contents": [],
                "search": [],
                "black": {
                    "media": null,
                    "mediaGroup": null
                },
                "white": {
                    "media": null,
                    "mediaGroup": null
                }
            },
            "delFlag": false,
            "regTm": "2023-09-13T07:49:44.000Z",
            "editTm": "2023-09-13T07:49:44.000Z"
        },
        {
            "nccTargetId": "tgt-a001-01-000000422342020",
            "ownerId": "grp-a001-01-000000037319590",
            "targetTp": "PC_MOBILE_TARGET",
            "target": {
                "pc": true,
                "mobile": true
            },
            "delFlag": false,
            "regTm": "2023-09-13T07:49:44.000Z",
            "editTm": "2023-09-13T07:49:44.000Z"
        }
    ],
    "targetSummary": {
        "pcMobile": "all",
        "media": "all"
    },
    "pcChannelKey": "https://mop.co.kr",
    "mobileChannelKey": "https://mop.co.kr",
    "status": "ELIGIBLE",
    "statusReason": "ELIGIBLE",
    "expectCost": 0,
    "migType": 0,
    "adgroupAttrJson": {
        "campaignTp": 1
    },
    "adRollingType": "PERFORMANCE",
    "adgroupType": "WEB_SITE",
    "systemBiddingType": "NONE",
    "useCntsNetworkBidWeight": false,
    "contentsNetworkBidWeight": 100,
    "sharedBudgetId": "nsb-a001-02-000000000018526",
    "sharedDailyBudget": 20000,
    "sharedBudgetName": "승은테스트_광고그룹_공유예산#1_api수정",
    "sharedBudgetLock": false,
    "sharedBudgetExpectCost": 0,
    "numberInUse": 1
    }

response

{
    "title": "Bad Request",
    "status": 400,
    "detail": "JSON parse error: Cannot deserialize value of type `java.util.ArrayList<com.naver.searchad.heroes.domain.manage.AdgroupRequest>` from Object value (token `JsonToken.START_OBJECT`); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type `java.util.ArrayList<com.naver.searchad.heroes.domain.manage.AdgroupRequest>` from Object value (token `JsonToken.START_OBJECT`)\n at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 1]"
}

--> Body 에 모든 정보를 입력해도 알 수없는 오류로 응답이 발생하여 원인 문의드립니다.

naver-searchad commented 3 months ago

안녕하세요? 네이버 검색광고 API입니다.

감사합니다.

kwak82721 commented 3 months ago

빠른 답변 감사합니다.

  1. 공유 예산 생성(POST /ncc/shared-budgets) api 문서에는 customerId 정의가 없어 업데이트가 필요할 것 같습니다. 가이드 주신대로 customerId를 body에 추가한 경우 다음 에러가 발생합니다.

    {
    "code": 1002,
    "status": 400,
    "title": "Invalid request"
    }
  2. 광고그룹을 공유예산 사용으로 변경 (PUT /ncc/adgroups?fields=sharedBudget) 에도 JSON Array 라는 정보가 api 문서에 없어 업데이트 해주시면 좋을 것 같습니다. 또한 request body항목이 많이 존재하는데 일부는 광고그룹에 대한 정보들이여서 추가할 경우 이 모든게 필요할지 궁금합니다. 필수 항목이 어떤 것인지 확인 부탁드립니다. [request]

    [
    {
        "nccAdgroupId": "grp-a001-01-000000037319590"
    }
    ]

    [response]

    {
    "code": 3726,
    "status": 400,
    "title": "Not support modify field."
    }
naver-searchad commented 3 months ago

안녕하세요? 네이버 검색광고 API입니다.

문의하신 공유 예산 생성의 경우 API 문서에서 정의한 항목중에 아래 내용이 모두 입력이 되어야 합니다.

{
    "customerId": long,
    "dailyBudget": long,
    "deliveryMethod": string,
    "name": string,
    "ownerType": string
}

광고그룹을 공유 예산 사용으로 변경할 경우 3726 에러 코드는 fields 파라미터를 잘못 입력한 경우에 발생합니다. fields=sharedBudget 으로 입력했는지 확인해 보셔야 합니다. 또한 request body에 광고그룹 정보 (GET 으로 받은 정보)에 sharedBudgetId, sharedDailyBudget, sharedBudgetName 가 같이 포함이 되어야 합니다.

kwak82721 commented 2 months ago
  1. 광고그룹을 공유 예산 사용으로 변경은 가이드 주신 대로 응답 성공확인완료했습니다. 다만, 신규 그룹으로 추가할 경우 해당 정보를 다 들고 있기가 어려울 수 있는데 광고그룹 정보 (GET 으로 받은 정보)가 모두 필수값일까요?

  2. 공유 예산 생성의 경우 API 의 경우에는 가이드 해 주신대로 요청을 해도 다음과 같은 에러가 발생합니다.

[request]

{
    "customerId": 2698066,
    "dailyBudget": 10000,
    "deliveryMethod": "STANDARD",
    "name": "테스트 공유예산_API",
    "ownerType": "ADGROUP"
}

[response]

{
    "code": 1002,
    "status": 400,
    "title": "Invalid request"
}
naver-searchad commented 2 months ago

안녕하세요? 네이버 검색광고 API입니다.

ownerType이 ADGROUP일 경우 예산 분배방식을 지원하지 않기 때문에, deliveryMethod값은 ACCELERATED만 가능합니다.

감사합니다.

kwak82721 commented 2 months ago

네, 확인 감사합니다. ACCELERATED 로 설정해도 동일한 오류가 발생하네요..

{
    "customerId": 2698066,
    "dailyBudget": 10000,
    "deliveryMethod": "ACCELERATED",
    "name": "테스트 공유예산_API",
    "ownerType": "ADGROUP"
}
naver-searchad commented 2 months ago

안녕하세요? 네이버 검색광고 API입니다.

공유 예산을 생성할 때 ownerTyp에 맞는 캠페인/광고그룹(GET으로 조회한 데이터)을 최소 1개는 포함 시켜야 합니다.

{ "name": "광고그룹_공유예산#1", "ownerType": "ADGROUP", "dailyBudget": 1000, "deliveryMethod": "ACCELERATED", "customerId": 123456789, "adgroupList": [ { "nccAdgroupId": "grp-a001-00-000000000000000", "customerId": 123456789, "nccCampaignId": "cmp-a001-000000000000000", "mobileChannelId": "bsn-a001-000000000000000", "pcChannelId": "bsn-a001-000000000000000", "bidAmt": 70000, "name": "일이삼사오육칠팔구십일이삼사오육칠팔구십일이삼사오육칠팔구십", "userLock": true, "useDailyBudget": true, "useKeywordPlus": false, "useCloseVariant": true, "keywordPlusWeight": 100, "contentsNetworkBidAmt": 70, "useCntsNetworkBidAmt": false, "mobileNetworkBidWeight": 100, "pcNetworkBidWeight": 50, "dailyBudget": 1000, "budgetLock": false, "delFlag": false, "regTm": "2016-04-05T02:30:14.000Z", "editTm": "2024-01-25T06:00:00.000Z", "pcChannelKey": "http://www.naver.com", "mobileChannelKey": "http://www.naver.com", "adgroupAttrJson": { "campaignTp": 1 }, "adRollingType": "PERFORMANCE", "adgroupType": "WEB_SITE", "systemBiddingType": "NONE", "useCntsNetworkBidWeight": false, "contentsNetworkBidWeight": 100, "sharedBudgetLock": false } ] }


* 캠페인 예제

{ "name": "캠페인_공유예산#1", "ownerType": "CAMPAIGN", "dailyBudget": 10000, "deliveryMethod": "STANDARD", "customerId": 123456789, "campaignList": [ { "nccCampaignId": "cmp-a001-000000000000000", "customerId": 123456789, "name": "첫번째", "userLock": false, "campaignTp": "WEB_SITE", "deliveryMethod": "ACCELERATED", "trackingUrl": "http://tracking.sample.com/?n_final_url={final_url}", "trackingMode": "TRACKING_DISABLED", "usePeriod": true, "periodStartDt": "2021-11-01T15:00:00.000Z", "periodEndDt": "2021-11-01T15:00:00.000Z", "dailyBudget": 100000, "useDailyBudget": false, "delFlag": false, "regTm": "2015-12-24T06:04:48.000Z", "editTm": "2022-12-16T11:02:16.000Z" } ] }


감사합니다.
kwak82721 commented 2 months ago

네, 확인 감사합니다. 생성 확인 완료했습니다. 한 가지 더 궁금한 사항이 있는데요, GET으로 조회한 데이터는 이미 공유예산 그룹으로 등록된 것으로 생성 시에는 새로 생성할 때는 이 정보가 없을 텐데 어떻게 가져올 수 있는지 궁금합니다. GET으로 조회한 데이터라는 것이 Master data api 를 말씀 하시는 것인지 확인 부탁드립니다. 또한 그럼 adgroupId 설정을 함께 넘겨주는데 (ex. bidAmt, budgetLock..) 기존 설정된 값이 아닌 다른 값을 넘겨주면 adgroup 정보도 변경되는건지 궁금합니다.

추가적으로 건의사항이 하나 있다면 api 문서와 Request 요청양식이 많이 다른 것 같은데 업데이트가 빠른 시일 내에 됐으면 좋겠습니다!!