This document outlines guidelines for implementing gRPC-based real-time data integrations. All new real-time data integrations should use gRPC. While HTTP-based integrations may exist for legacy use cases, all new feature development and enhancements are designed for gRPC.
These guidelines apply whether the service is:
Hosted by the partner
Deployed in the Index Cloud
gRPC integration build guide
Download the official OpenRTB 2.6 Protocol Buffers specification.
Get the necessary build and proto files.
To generate the language-specific OpenRTB and gRPC bindings required by your service, from the command line:
Install
makeand the latest version ofprotoc.From the build files that you downloaded, open the
Makefileand choose the language(s) for which the Protocol Buffers object code should be generated.Run:
make
Classification endpoint
| Endpoint | Description |
|---|---|
Partners must expose an endpoint accessible through a gRPC request following the agentic RTB Protobuf Schema that you downloaded with your build files. | The SLA for Index to use your response in our auction processing is 5 milliseconds. All requests should be made in approximately 5 milliseconds, with no more than 5% of requests allowed to exceed the timeout value specified in the Note: This specification will be continually updated to support new requirements. Let us know if you have new fields that you would like Index to support. |
Response codes
Standard gRPC status codes should be returned.
Circuit breaker logic
If Index receives any status code other than OK, or more than 5% of requests have exceeded an HTTP timeout value of 30 ms, Index's internal circuit breaker logic is triggered, and requests to the affected partner's API are throttled. Requests to a partner's API that time out will also trigger this same circuit breaker logic. Circuit breaker logic exists to protect both Index and our partners' systems. When errors rates return to nominal levels, circuit breakers will reopen and regular traffic volume will resume.
gRPC-supported lifecycle extension points and mutations
| OpenRTB lifecycle extension point | Mutations | Supported paths | Use case |
|---|---|---|---|
Publisher request |
|
| Activate a list of segment IDs for a given request. |
|
| Activate a list of deal IDs for a given request for a given imp ID. Each mutation should contain only one deal ID. Multiple deal IDs require separate mutations. | |
|
| Suppress a list of deal IDs for a given request for a given imp ID. Each mutation should contain only one deal ID. Multiple deal IDs require separate mutations. | |
|
| Adjust the bid floor of a specific deal. | |
|
| Add a list of content data to site or app content object. | |
DSP bid response |
|
| Modify a DSP bid price. |