Salesforce

Brand safety engines

« Go Back
Information
Brand safety engines
000004193
Public
Product Selection
aiWare - aiWare
Article Details
[API][yes]
[Search][no]
[UI][no]

Brand safety engines process media to determine where content falls on a scale of sensitivity or concern. This scale is composed of 11 designated sensitive topics created by the Global Alliance for Responsible Media (GARM), a social media and advertising industry body that helps standardize measures for insulating brands from harmful content posted to their sites and apps.

Engines used

The following engines are used to build a brand safety job:

NameDescription
Transcription engineRun transcription AI on content
Entity Extraction GRun entity extraction AI on content
Classification AC: IABRun IAB classification AI on content
Output writer engineAggregate AI data and store it in the content's TDO

Brand safety job

Enter the GraphQL mutation below. Update the payload data with your values.

This will create a job that will take a payload consisting of the media's URL, and optionally an array of webhooks for notification and additional processing.

GraphQL mutation:

mutation brandSafety(
  $url: String!,
  $notificationUris: [String]
) {
  createJob(
    input: {
      target: { name: "BrandSafety" }
      clusterId: "prd5-21xbyq0x-4h0s-o685-snas-oovhdai552v9"
      tasks: [
        {
          # Stream Ingestor  
          engineId: "8bdb0e3b-ff28-4f6e-a3ba-887bd06e6440"
          payload: { url: $url, ffmpegTemplate: "rawchunk" }
          ioFolders: [{ referenceId: "chunkOutput", mode: chunk, type: output }]
          
        }
        {
          # Transcription E7: English (Global) 
          engineId: "c0e55cde-340b-44d7-bb42-2e0d65e98255" 
          ioFolders: [
            { referenceId: "transcriptionInput", mode: chunk, type: input }
            { referenceId: "transcriptionOutput", mode: chunk, type: output }
          ]
          executionPreferences: {
            maxEngines: 10
            parentCompleteBeforeStarting: true
          }
        }
        {
          engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3" # outputwriter
          ioFolders: [
            { referenceId: "owTranscriptionInput", mode: chunk, type: input }
          ]
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
        }
        {
          #Chunk Aggregator, used to aggregate words from AION - Standard transcript into text
          engineId: "045e675b-ed7c-43bf-8300-a2f2102f57a4" 
          payload: { engineOutputOption: "text" }
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
          ioFolders: [
            { referenceId: "textCreatorInput", mode: chunk, type: input }
            { referenceId: "textCreatorOutput", mode: chunk, type: output }
          ]
        }
        {
          # Entity Extraction G
          engineId: "cb2b77b9-3478-4e51-844f-e4064384bb33" 
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
          ioFolders: [
            { referenceId: "entityInput", mode: chunk, type: input }
            { referenceId: "entityOutput", mode: chunk, type: output }
          ]
        }
        {
          # Output writer
          engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3"
          ioFolders: [
            { referenceId: "owEntityInput", mode: chunk, type: input }
          ]
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
        }
        {
          # Output writer
          engineId: "8eccf9cc-6b6d-4d7d-8cb3-7ebf4950c5f3"
          ioFolders: [
            { referenceId: "owClassificationInput", mode: chunk, type: input }
          ]
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
        }
        {
          # Classification AC: IAB
          engineId: "06bbc2e7-aa59-4c32-9ec3-1a147fff78a6" 
          executionPreferences: {
            parentCompleteBeforeStarting: true
          }
          ioFolders: [
            { referenceId: "classificationInput", mode: chunk, type: input }
            { referenceId: "classificationOutput", mode: chunk, type: output }
          ]
        }
      ]
      notificationUris: $notificationUris
      routes: [
        {
          parentIoFolderReferenceId: "chunkOutput"
          childIoFolderReferenceId: "transcriptionInput"
        }
        {
          parentIoFolderReferenceId: "transcriptionOutput"
          childIoFolderReferenceId: "textCreatorInput"
        }
        {
          parentIoFolderReferenceId: "textCreatorOutput"
          childIoFolderReferenceId: "entityInput"
        }
        {
          parentIoFolderReferenceId: "transcriptionOutput"
          childIoFolderReferenceId: "owTranscriptionInput"
        }
        {
          parentIoFolderReferenceId: "textCreatorOutput"
          childIoFolderReferenceId: "classificationInput"
        }
        {
          parentIoFolderReferenceId: "entityOutput"
          childIoFolderReferenceId: "owEntityInput"
        }
        {
          parentIoFolderReferenceId: "classificationOutput"
          childIoFolderReferenceId: "owClassificationInput"
        }
      ]
    }
  ) {
    id
    targetId
  }
}

GraphQL example variables for the mutation:

{
  "url": "https://example.com/path-to-media",
  "notificationUris": ["https://webhook.example.com"]
}

GraphQL response:

{
  "data": {
    "createJob": {
      "id": "22030903_Gq1GRNdmwc",
      "targetId": "1951002277",
     }
  }
}

Note the job ID (id) and target ID (targetId) for progress and result checks.

Next steps

Now, query the job status and results.

Additional Technical Documentation Information
Properties
1/16/2024 9:17 PM
1/16/2024 9:17 PM
1/16/2024 9:17 PM
Documentation
Documentation
000004193
Translation Information
English

Powered by