MediaGuard Integration Options

If you'd like to integrate MediaGuard's pre-bid predictions into your bidding workflows, you can do so via the MediaGuard SDK or the MediaGuard 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 MediaGuard'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 MediaGuard and have access to an identical range of insights.

πŸ“˜

Info

A HUMAN representative will set up the corresponding MediaGuard clusters for your integration.

MediaGuard SDK (gRPC)

The MediaGuard SDK is a performant client-side gRPC service that lets you send pre-bid data to HUMAN and receive IVT predictions accordingly. Of the available integration options, the MediaGuard SDK offers the best performance and lowest latency, so we recommend this option for most users.

The MediaGuard 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 MediaGuard APIβ€”for example, you'll need to handle load balancing and connection pooling.

  • Authentication
    The MediaGuard SDK uses Mutual TLS (mTLS) authentication. We'll provide you with an SDK certificate and an SDK key, which you can use to authenticate your connection with MediaGuard's servers. This connection-level authentication (in contrast to request-level authentication) reduces the overhead for individual requests.
  • Data Formats
    The MediaGuard SDK uses Protocol Buffers to send and receive data, which helps minimize the size of each request/response body and reduce latency.
  • Load Balancing
    The MediaGuard SDK automatically handles its own load balancing via round-robin DNS, which optimizes performance by removing intermediary network hops between your clients and MediaGuard's servers. There's no need to implement your own load balancing layer, nor do we recommend doing so.
  • Connection Pooling
    The MediaGuard SDK runs over HTTP/2, which automatically handles connection pooling.
  • Metrics
    The MediaGuard SDK includes a thin wrapper that sends request timing metrics to HUMAN. These metrics help us monitor and troubleshoot any latency issues that may arise.

MediaGuard API (HTTP)

The MediaGuard API is a simple HTTP service that lets you send pre-bid data to HUMAN and receive IVT predictions accordingly. You can use any HTTP client to access the MediaGuard API, which makes this option ideal if you're unable to use gRPC or if you'd like to integrate MediaGuard with an existing monitoring service without using custom code.

  • Authentication
    The MediaGuard 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 MediaGuard's servers.

  • Data Formats
    You can configure the MediaGuard API to either use JSON or Protocol Buffers to send and receive data.

  • Load Balancing
    Neither the MediaGuard API nor MediaGuard's servers handle load balancing, so you must manually implement load balancing in your integration.

  • Connection Pooling
    Neither the MediaGuard API nor MediaGuard's servers handle connection pooling on their own, so you must build your own mechanism to manage connection pooling.

    🚧

    Note

    The performance of each MediaGuard 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.

  • Metrics
    HUMAN does not automatically collect timeout information from the MediaGuard API, so we may ask you to provide this information manually for troubleshooting purposes.