ProductABC Integration Options
Info/Context
Type: End-user documentation
Audience: Current and prospective CompanyName users
Purpose: A product overview that compares the two available integration options for ProductABC, including the benefits and limitations of each.
Note: Some words and phrases are enclosed in [brackets] to represent hyperlinks to other docs not included in this sample library.
If you'd like to integrate [ProductABC]'s pre-bid predictions into your bidding workflows, you can do so via the ProductABC SDK or the ProductABC API.
Despite differences in their implementation, the core functionality of each integration option is the same: they both provide a mechanism for sending bid request data to ProductABC's servers, and they both respond with predictions about whether those bid requests are a form of invalid traffic (or IVT). Regardless of which integration option you select, or which format you use to send and receive data, you'll receive the same predictions from ProductABC and have access to an identical range of insights.
A CompanyName representative will set up the corresponding ProductABC clusters for your integration.
ProductABC SDK (gRPC)
The ProductABC SDK is a performant client-side gRPC service that lets you send pre-bid data to CompanyName and receive IVT predictions accordingly. Of the available integration options, the ProductABC SDK offers the best performance and lowest latency, so we recommend this option for most users.
The ProductABC SDK is available in several languages, including Java, Go, and C++. You can also build your own gRPC integration in the language of your choosing. However, custom gRPC integrations are subject to similar limitations as HTTP integrations built on the ProductABC API—for example, you'll need to handle load balancing and connection pooling.
- Authentication
- Data formats
- Load balancing
- Connection pooling
- Metrics
The ProductABC SDK uses Mutual TLS (mTLS) authentication. We'll provide you with an SDK cert and an SDK key, which you can use to authenticate your connection with ProductABC's servers. This connection-level authentication (in contrast to request-level authentication) reduces the overhead for individual requests.
The ProductABC SDK uses Protocol Buffers to send and receive data, which helps minimize the size of each request/response body and reduce latency.
The ProductABC SDK automatically handles its own load balancing via round robin DNS, which optimizes performance by removing intermediary network hops between your clients and ProductABC's servers. There's no need to implement your own load balancing layer, nor do we recommend doing so.
The ProductABC SDK runs over HTTP 2.0, which automatically handles connection pooling.
The ProductABC SDK includes a thin wrapper that sends request timing metrics to CompanyName. These metrics help us monitor and troubleshoot any latency issues that may arise.
ProductABC API (HTTP)
The [ProductABC API] is a simple HTTP service that lets you send pre-bid data to CompanyName and receive IVT predictions accordingly. You can use any HTTP client to access the ProductABC API, which makes this option ideal if you're unable to use gRPC or if you'd like to integrate ProductABC with an existing monitoring service without using custom code.
- Authentication
- Data formats
- Load balancing
- Connection pooling
- Metrics
The ProductABC API uses [Basic authentication]. We'll provide you with a unique auth ID and key, which you can use to authenticate each request you make to ProductABC's servers.
You can configure the ProductABC API to either use JSON or Protocol Buffers to send and receive data.
Neither the ProductABC API nor ProductABC's servers handle load balancing, so you must [manually implement load balancing] in your integration.
Neither the ProductABC API nor ProductABC's servers handle connection pooling on their own, so you must build your own mechanism to manage connection pooling.
The performance of each ProductABC node is inversely proportional to the number of connections it receives. As such, it's important to set up connection pooling to reduce the number of new or open connections to each node, although API integrations still tend to require more nodes per cluster than SDK integrations do.
CompanyName does not automatically collect timeout information from the ProductABC API, so we may ask you to provide this information manually for [troubleshooting] purposes.