RTB 문제 해결

이 가이드에서는 프로그래매틱 방식으로 액세스할 수 있는 RTB 문제 해결 리소스에 대해 설명합니다. 실시간 입찰 캠페인 측정항목이 RTB 분류 도구가 Authorized Buyers UI입니다. 여기에는 bidders.filterSets, bidders.accounts.filterSets, 그 아래에 있는 모든 리소스를 계층적으로 생성합니다

RTB 문제 해결 리소스의 측정항목을 사용하여 놓친 기회에 대한 유용한 정보 확보 실시간 입찰 캠페인을 최적화하는 데 도움이 되는 노출을 획득할 수 있습니다.

API 구조 및 스타일 조정

RTB 문제 해결 리소스는 액세스 권한을 부여하고, API에서 반환하는 데이터를 보다 세부적으로 관리하며, Google API 설계 권장사항

입찰자 수준 및 계정 수준 리소스

리소스는 biddersbidders.accounts로 구성됩니다. 이를 통해 API 호출이 입찰자 (상위 계정이라고도 함)를 타겟팅하는지 여부와 관련된 모든 하위 계정 또는 개별 Authorized Buyers 계정을 선택할 수 있습니다 RTB의 맥락에서 문제 해결, bidders.filterSets에 구조화된 리소스에서 집계된 측정항목을 반환합니다. 할 수 있습니다. 반면에 bidders.accounts.filterSets는 다음 쿼리와 관계없이 지정된 계정의 측정항목만 반환합니다. 확인할 수 있습니다.

참고: 다른 구매자에게 입찰을 위임하는 계정은 입찰자 계정이 아닙니다. 입찰자 수준의 리소스에 액세스할 수 없습니다. 또한 비입찰자 계정은 계정 수준 impressionMetrics, filteredBidResponses, bidResponseErrors에 액세스 리소스 bidResponsesWithoutBids개.

리소스 이름을 고유 식별자로 도입

리소스 이름은 다음과 같이 사용됩니다. 고유 식별자를 사용하는 것입니다. 특정 객체의 새 인스턴스를 만들 때 리소스 유형에 따라 다릅니다. 이제 상대 리소스 이름을 사용합니다. 이 다음은 RTB 문제 해결 리소스와 관련된 이름의 예입니다.

리소스 이름 예시
bidders.filterSets bidders/12345678/filterSets/fset_1
bidders.accounts.filterSets bidders/12345678/accounts/87654321/filterSets/fset_2

참고: 이름에서 bidders에 지정된 리소스 ID는 입찰자의 Authorized Buyers 계정 ID입니다. accounts의 경우 리소스 ID는 다음 중 하나의 계정 ID여야 합니다. 관리하는 하위 계정이라는 뜻입니다. 어떤 Authorized Buyers를 계정이 Google 계정과 연결되어 있으면 accounts.list 메서드를 사용하여 계정을 찾을 수 있습니다.

필터 세트

필터 세트는 가용하고 만들 수 있는 필터링 옵션을 표현한 것입니다. 입찰 또는 계정 수준에서 설정할 수 있습니다 RTB 문제 해결의 목록 결과를 필터링하는 데 사용됩니다. 실시간 입찰 캠페인에 대한 측정항목을 가져오는 리소스입니다.

측정항목을 가져올 때 적용되는 필터는 지정된 필터 세트 platforms와 같은 목록 필터는 목록에 있는 각 항목의 합집합으로 해석됩니다.

입찰자 및 계정 수준 필터 세트는 고유하며 만들 때 사용한 계정과 상관없이 생성된 모든 URL입니다. 입찰자와 하위 계정 공유 필터 세트는 계정 수준에서 생성된 반면, 입찰자만 지정할 수 있습니다. 다음 표에는 입찰자 및 하위 계정이 리소스에 액세스하는 방법이 요약되어 있습니다. 어느 수준에서든 사용할 수 있습니다.

  bidders.filterSets bidders.accounts.filterSets
입찰자 계정 입찰자 수준 필터 세트에만 영향을 미치는 API 호출입니다. 계정 수준 필터 세트에만 영향을 미치는 API 호출입니다.
자녀 계정 이 API 호출은 오류 응답을 반환합니다. 계정 수준 필터 세트에만 영향을 미치는 API 호출입니다.

필터 세트 만들기

필터 세트를 만들 때 기간을 relativeDateRange, absoluteDateRange 또는 realtimeTimeRange입니다. 측정항목을 가져올 때 기본 동작은 전체 기간 동안 모든 데이터가 제공되는 것입니다. 시간 범위의 시계열 분석인 경우 timeSeriesGranularity를 지정할 수 있습니다. HOURLY 또는 DAILY 간격을 나타냅니다.

단기간만 필터를 설정해야 하는 경우 isTransient 쿼리 매개변수를 true로 설정합니다. 이는 필터 세트가 일시적이라는 것을 나타냅니다. 즉, 무한정 유지되지 않습니다. 일시적인 필터 세트는 생성 후 최소 1시간 동안 사용할 수 있지만 나중에 삭제됩니다. 기본적으로 필터 조합은 일시적이지 않습니다.

입찰자 수준 예

새 입찰자 수준 필터 세트를 만들려면 다음과 같은 형식의 bidders.filterSets 리소스 URI에 POST 요청을 전송합니다.

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets

경고: 입찰자 수준 필터 세트는 광고 소재 또는 거래 ID를 기준으로 필터링할 수 없습니다. 입찰자 수준 필터 세트를 만들 때 이러한 필터를 지정하면 오류 응답이 표시됩니다.

요청

다음은 일시적이지 않은 입찰자 수준 필터 세트를 새로 만드는 POST 요청의 예입니다.

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

드림 응답

요청이 성공하면 서버는 200 OK 상태 코드로 응답합니다. 응답 본문에 생성된 필터 세트 리소스가 포함되며, 이는 요청에서 제출된 필터 세트와 동일합니다.

계정 수준 예

새 계정 수준 필터 세트를 만들려면 POST 요청을 다음으로 전송합니다. 다음과 같은 형식의 bidders.accounts.filterSets 리소스 URI입니다.

https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets

참고: accounts에 지정된 리소스 ID는 입찰자가 액세스할 수 있는 Authorized Buyers 계정의 계정 ID여야 함 사용자 인증 정보가 포함되어 있습니다.

요청

다음은 일시적이지 않은 계정 수준 필터 세트를 새로 만드는 POST 요청의 예입니다.

POST https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
Authorization: Bearer access token here
Content-Type: application/json

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}
드림 응답

요청이 성공하면 서버는 200 OK 상태 코드로 응답합니다. 응답 본문은 생성된 필터 세트 리소스를 포함해야 하며 이는 요청을 처리합니다

필터 세트 가져오기

get 메서드는 생성된 것과 동일한 수준의 필터 세트만 가져올 수 있습니다. 예를 들어 입찰자가 계정은 bidders.accounts.filterSets.get를 사용하여 계정에서 생성된 필터 세트를 가져와야 합니다. 수준입니다.bidders.filterSets.get

입찰자 수준

다음과 같은 형식의 bidders.filterSets 리소스 URI에 HTTP GET 요청을 전송하여 입찰자 수준 필터 세트를 검색할 수 있습니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
드림 요청

예를 들면 다음과 같습니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs
드림 응답

요청이 성공하면 서버에서 200 OK HTTP 상태 코드와 검색된 필터 세트를 반환합니다.

{
  "name": "bidders/12345678/filterSets/bidder-fs",
  "format": "DISPLAY",
  "environment": "APP",
  "platforms": ["TABLET", "MOBILE"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

계정 수준

다음과 같은 형식의 bidders.accounts.filterSets 리소스 URI에 HTTP GET 요청을 전송하여 계정 수준 필터 세트를 검색할 수 있습니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
드림 요청

예를 들면 다음과 같습니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs
드림 응답

요청이 성공하면 서버에서 200 OK HTTP 상태 코드와 검색된 필터 세트를 반환합니다.

{
  "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
  "format": "VIDEO",
  "environment": "WEB",
  "platforms": ["DESKTOP"],
  "absoluteDateRange": {
    "startDate": {
      "month": 11,
      "day": 26,
      "year": 2017
    },
    "endDate": {
      "month": 12,
      "day": 3,
      "year": 2017
    }
  },
  "timeSeriesGranularity": "DAILY"
}

필터 세트 나열

list 메서드는 호출 중인 레벨에서 액세스할 수 있는 필터 세트만 반환합니다. 예를 들어 입찰자 계정에는 bidders.filterSets.list를 호출할 때 bidders.accounts.filterSets.create

입찰자 수준

HTTP GET를 전송하여 특정 입찰자에 대한 모든 입찰자 수준 필터 세트를 검색할 수 있습니다. 다음과 같은 형식의 bidders.filtersets 리소스 URI에 대한 요청을 보냅니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets
드림 요청

다음은 계정 ID가 12345678인 입찰자에 대한 모든 입찰자 수준 필터 세트를 나열한 예입니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets
드림 응답
{
  "filterSets": [{
      "filterSetId": "99994",
      "name": "bidders/12345678/filterSets/test-b-1",
      "relativeDateRange": {
        "durationDays": 30
      }
    },
    {
      "realtimeTimeRange": {
        "startTimeStamp": "2017-11-15T12:30:30.072831583Z"
      },
      "filterSetId": "99995",
      "name": "bidders/12345678/filterSets/test-b-2",
      "timeSeriesGranularity": "HOURLY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 12,
          "month": 3,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99996",
      "name": "bidders/12345678/filterSets/bidder-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["TABLET", "MOBILE"],
      "environment": "APP",
      "format": "DISPLAY"
    }
  ]
}

계정 수준

HTTP GET를 전송하여 특정 계정의 모든 계정 수준 필터 세트를 검색할 수 있습니다. 다음과 같은 형식의 bidders.accounts.filtersets 리소스 URI에 대한 요청을 보냅니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets
드림 요청

다음은 계정 ID가 87654321인 하위 계정에 대한 모든 계정 수준 필터 조합을 나열한 예입니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets
드림 응답
{
  "filterSets": [{
        "realtimeTimeRange": {
        "startTimeStamp": "2017-11-19T04:24:43.252893487Z"
      },
      "filterSetId": "99997",
      "name": "bidders/12345678/accounts/87654321/filterSets/test-a-1",
      "timeSeriesGranularity": "DAILY"
    },
    {
      "absoluteDateRange": {
        "endDate": {
          "day": 3,
          "month": 12,
          "year": 2017
        },
        "startDate": {
          "day": 26,
          "month": 11,
          "year": 2017
        }
      },
      "filterSetId": "99998",
      "name": "bidders/12345678/accounts/87654321/filterSets/account-fs",
      "timeSeriesGranularity": "DAILY",
      "platforms": ["DESKTOP"],
      "environment": "WEB",
      "format": "VIDEO"
    }
  ]
}

필터 세트 삭제

delete 메서드를 사용하여 일시적이지 않은 필터 세트는 더 오래 걸릴 수 있습니다 호출 중인 수준에서 액세스 가능한 필터 세트만 삭제할 수 있습니다. 예를 들어 입찰자 계정은 bidders.accounts.filterSets.create(으)로 만든 필터 세트를 삭제할 수 없습니다. bidders.filterSets.delete.

입찰자 수준

HTTP DELETE 요청을 전송하여 특정 계정에 대한 입찰자 수준 필터 조합을 삭제할 수 있습니다. 다음과 같은 형식의 bidders.filtersets 리소스 URI에 추가합니다.

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}
드림 요청

다음은 입찰자 수준 필터 세트를 삭제하는 예입니다.

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/test-b-2
드림 응답

요청이 성공하면 요청 본문이 비어 있게 됩니다. 지정된 필터 세트에 더 이상 액세스할 수 없게 됩니다.

계정 수준

HTTP DELETE를 전송하여 특정 계정에 설정된 계정 수준 필터를 삭제할 수 있습니다. 다음과 같은 형식의 bidders.accounts.filtersets 리소스 URI에 대한 요청을 보냅니다.

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}
드림 요청

다음은 계정 수준의 필터 세트를 삭제하는 예입니다.

DELETE https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/test-a-1
드림 응답

요청이 성공하면 요청 본문이 비어 있게 됩니다. 지정된 필터 세트에 더 이상 액세스할 수 없게 됩니다.

RTB 문제 해결 측정항목 가져오기

측정항목을 수신하는 데 사용되는 모든 RTB 문제 해결 리소스는 filterSetName 경로를 통해 지정된 필터 세트의 측정항목을 나열하는 단일 메서드 매개변수 값으로 사용됩니다. 지정된 필터 조합에 따라 다음 경우에 적용될 필터와 설정이 결정됩니다. 측정항목을 쿼리할 수 있습니다 입찰자 수준에서 이러한 리소스를 호출하면 집계된 측정항목이 반환됩니다. 계정 수준에서의 호출은 개인 계정의 측정항목만 반환됩니다.

입찰 측정항목

bidMetrics 리소스는 입찰 수 예를 들어 이를 통해 정해진 기간 동안 발생한 총 입찰수를 확인할 수 입찰에서 필터링되지 않은 광고 노출, 노출 획득 측정항목 수집에 사용되는 다른 모든 RTB 문제 해결 리소스와 마찬가지로 list 메서드만 있습니다.

입찰자 수준 입찰 측정항목 나열

HTTP GET 다음과 같은 형식의 bidders.filtersets.bidMetrics 리소스 URI에 대한 요청을 보냅니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/filterSets/{filter set resource ID}/bidMetrics
드림 요청

다음은 입찰자 수준 입찰 측정항목을 나열한 예입니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/filterSets/bidder-fs/bidMetrics
드림 응답

요청에 성공하면 서버에서 200 OK 상태 코드와 지정된 측정기준 및 세부사항에 대한 측정항목 행이 포함된 본문을 반환합니다.

{
  "bidMetricsRows": [{
        "bids": {
        "value": "6160"
      },
      "bidsInAuction": {
        "value": "5698"
      },
      "billedImpressions": {
        "value": "1196"
      },
      "impressionsWon": {
        "value": "2920"
      },
      "measurableImpressions": {
        "value": "1160"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-29T08:00:00Z",
          "startTime": "2017-11-28T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "683"
      }
    },
    {
      "bids": {
        "value": "104288"
      },
      "bidsInAuction": {
        "value": "94016"
      },
      "billedImpressions": {
        "value": "99"
      },
      "impressionsWon": {
        "value": "125"
      },
      "measurableImpressions": {
        "value": "94"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-11-30T08:00:00Z",
          "startTime": "2017-11-29T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "87"
      }
    },
    {
      "bids": {
        "value": "3999"
      },
      "bidsInAuction": {
        "value": "3631"
      },
      "billedImpressions": {
        "value": "618"
      },
      "impressionsWon": {
        "value": "1819"
      },
      "measurableImpressions": {
        "value": "604"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "369"
      }
    },
    {
      "bids": {
        "value": "15"
      },
      "bidsInAuction": {
        "value": "3"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "3"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

참고: 특정 측정항목에 대해 0으로 설정된 필드는 응답에 표시되지 않습니다. 위의 빈 billedImpressionsmeasurableImpressions 측정항목 이는 값과 분산이 모두 0으로 설정되었음을 나타냅니다.

경고: 응답의 데이터 분류에 대해 응답은 0이 아닌 측정항목이 하나 이상 포함되지 않으면 행이 포함됩니다. 예를 들어 timeSeriesGranularity이(가) 지정되면 응답에 다음 행이 포함되지 않습니다. 모든 측정항목이 0인 필터 세트의 지정된 기간에 대한 timeInterval입니다.

계정 수준 입찰 측정항목 표시

HTTP GET bidders.accounts.filtersets.bidMetrics 리소스 URI에 대한 요청을 전송합니다. 다음 형식을 따릅니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/{bidder resource ID}/accounts/{account resource ID}/filterSets/{filter set resource ID}/bidMetrics
드림 요청

다음은 계정 수준의 입찰 측정항목을 나열한 예입니다.

GET https://adexchangebuyer.googleapis.com/v2beta1/bidders/12345678/accounts/87654321/filterSets/account-fs/bidMetrics
드림 응답

요청에 성공하면 서버에서 200 OK 상태 코드와 지정된 측정기준 및 세부사항에 대한 측정항목 행이 포함된 본문을 반환합니다.

{
  "bidMetricsRows": [{
      "bids": {
        "value": "1748"
      },
      "bidsInAuction": {
        "value": "1421"
      },
      "billedImpressions": {
        "value": "301"
      },
      "impressionsWon": {
        "value": "915"
      },
      "measurableImpressions": {
        "value": "298"
      },
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-01T08:00:00Z",
          "startTime": "2017-11-30T08:00:00Z"
        }
      },
      "viewableImpressions": {
        "value": "172"
      }
    },
    {
      "bids": {
        "value": "6"
      },
      "bidsInAuction": {
        "value": "2"
      },
      "billedImpressions": {},
      "impressionsWon": {
        "value": "1"
      },
      "measurableImpressions": {},
      "rowDimensions": {
        "timeInterval": {
          "endTime": "2017-12-02T08:00:00Z",
          "startTime": "2017-12-01T08:00:00Z"
        }
      },
      "viewableImpressions": {}
    }
  ]
}

참고: 특정 측정항목에 대해 0으로 설정된 필드는 응답에 표시되지 않습니다. 이 빈 billedImpressions 및 위의 measurableImpressions 측정항목은 값과 분산이 모두 0으로 설정되어 있다는 것을 알 수 있습니다.

경고: 응답의 데이터 분류의 경우 응답에 0이 아닌 측정항목이 하나 이상 포함되어 있지 않은 경우 행을 반환합니다. 예를 들어 timeSeriesGranularity이(가) 지정되면 응답에 다음 행이 포함되지 않습니다. 모든 측정항목이 0인 필터 세트의 지정된 기간에 대한 timeInterval입니다.