Send rich media interaction signals with the API

Send a rich media interaction signal to Connect with the createSignals mutation. For authentication, contact mapping, consent and the response, see Send signals with the API (GraphQL).

To learn what this signal captures and how to use it in Connect, see Rich media interaction signal guide. To send it from your website or app instead, use Log signal: web, Android, iOS.

Records user interactions with video and audio content on your website. Valuable for audience segmentation based on product/category interest.

mutation {
  createSignals(
    signals: [
      {
        appKey: "{YOUR_APP_KEY}"
        sessionId: "SESS-789456123AB"
        audience: [
          { name: "Customer ID", value: "AAUN-1417508" }
          { name: "Communication language", value: "fr" }
        ]
        signalContent: {
          signalType: "richMediaInteraction"
          category: "Behavior"
          name: "Video review interaction in online store"
          effect: "positive"
          mediaId: "jhaf6r76a"
          interactionType: "LAUNCH"
          mediaCategory: "video"
          mediaName: "How I used AWESOME COLORS Brush to paint the ceiling"
          url: "https://www.example.com/opinions/painting-and-decorating/"
          signalTimestamp: "2026-02-22T08:29:30.001Z"
        }
      }
    ]
  ) {
    signalIds
  }
}

Required fields

  • mediaId: String - Media file URL
  • signalType: String - Signal type (valid values: richMediaInteraction)

Optional fields

  • category: String - Signal category (valid values: Behavior)
  • description: String - Description of the signal
  • effect: String - Signal engagement effect (valid values: negative, positive) - Usually rich media interactions are positive signals
  • interactionType: String - User interaction type (valid values: LOAD, LAUNCH, PAUSE, CONTINUE, COMPLETE, STOP, ENLARGE)
  • mediaCategory: String - Media category (e.g., "video")
  • mediaName: String - Audio or video file title
  • name: String (up to 256 characters) - Signal name to differentiate from other signals
  • signalCustomAttributes: Array of objects - Additional custom attributes (each object needs name and value string fields)
  • signalTimestamp: Date - When signal happened (if omitted, Connect uses time when signal was received). Valid values: DateTime strings (ISO 8601). Example: 2026-02-28T16:22:15.001Z.
  • url: String - URL of page where media file is embedded