Integration with Omniture on iOS

We have integrated the Ooyala SDK with Adobe Video Analytics' Heartbeat library. We call this integration the "Ooyala Adobe Analytics SDK."

This document uses an example application to show you how to use Ooyala Adobe Analytics SDK in an Xcode project to capture and send native video app activity (user, usage, behavior, gestures, etc.) to Adobe servers for SiteCatalyst® reporting.

What You Need

Download the following items:

As part of its capacity to capture analytics, Omniture draws from and provides information to the Adobe SiteCatalyst website. Before starting, you will also need to do the following:

  1. Have or get an account with login credentials for Adobe’s SiteCatalyst.
  2. Login to Adobe Marketing Cloud's Reports and Analytics site (previously, the Omniture SiteCatalyst site).
  3. Get the following information:
    • Report Suite ID
    • Tracking Server

      The following image shows sample tracking server information from SiteCatalyst.

Set Up Your Development Environment

  1. When Adobe VideoHeartbeat library for iOS download is complete, open the .zip file in Mac OS Finder.
  2. In Xcode, open your project and link to the following libraries in the VideoHeartbeatLibrary-ios-tvos-v* folder:
    • libs/VideoHearbeat.a
    • samples/BasicPlayerSample/libs/AdobeMobile/ADBMobile.h
    • samples/BasicPlayerSample/libs/AdobeMobile/AdobeMobileLibrary.a
  3. Download ADBMobileConfig.json from your Adobe account. Alternatively, you can use file in the the Ooyala Omniture Sample App for iOS (e.g., VideoHeartbeatLibrary-ios-tvos-v*/samples/BasicPlayerSample/libs/AdobeMobile/ADBMobileConfig.json).
  4. In Xcode, link to ADBMobileConfig.json file.
  5. In Xcode, update the following properties in the ADBMobileConfig.json with the values you obtained from SiteCatalyst:
        "analytics" : {
            "rsids" : "sample-account",
            "server" : "",
        "marketingCloud": {
            "org": "sample-marketing-cloud-org-id"

Use the iOS Sample App

To practice the integration process works and test whether it works, you can use the Ooyala Omniture Sample App for iOS.

  1. Using Mac OS Finder, open the downloaded Ooyala Omniture Sample App for iOS file,
  2. Using Xcode, open ~/Downloads/OmnitureSampleApp/OmnitureSampleAppOmnitureSampleApp/OmnitureSampleApp.xcodeproj.
  3. In Xcode, update the following properties in VideoHeartbeatLibrary-ios-tvos-v1.5.7/samples/BasicPlayerSample/libs/AdobeMobile/ADBMobileConfig.json as follows:
    "analytics" : {
         "rsids" : "ovppooyala",
         "server" : ""
    "marketingCloud": {
         "org": "2A5D3BC75244638C0A490D4D@AdobeOrg"
  4. Open the file Players/BasicPlayerViewController.m file and pdate the following variables as follows:
    self.hbTrackingServer = @"";
    self.hbProvider = @"ooyalatester";
    This file uses these two properties in the following example. When the app starts, it creates an Adobe analytics session that starts capturing and sending data to the tracking server using a OOAdobeHeartbeatConfiguration object:
      // Start adobe analytics
      OOAdobeHeartbeatConfiguration *hbConfig = [[OOAdobeHeartbeatConfiguration alloc]
      self.adobeAnalyticsManager = [[OOAdobeAnalyticsManager alloc] initWithPlayer:player config:hbConfig];
      [self.adobeAnalyticsManager startCapture];
  5. Build and run the sample app. If successful, you will be able to see the analytics on the Adobe Marketing Cloud's Reports and Analytics site (previously, the Omniture SiteCatalyst site).
  6. Use either Adobe Debug proxy or Charles proxy to detect data the apps sends to the tracking server.

Test Server Pings Using Adobe Debug Proxy

You can use the Adobe Debug dashboard to check if the pings from the sample app are reaching the Adobe server. To use the dashboard, follow it's Get Started instructions on how to install the Adobe debug proxy.

  1. Each time you want to record an HTTP listening session, click the New Report button on the dashboard.
  2. In the form that opens, name the report. Also select the Adobe Analytics and Video Heartbeats checkboxes. Don't edit the fields shown after selecting the checkboxes.
  3. Then, click Start Debug Report.
  4. When prompted, open the report page for the active session.
  5. When you stop the session, you won't be able to restart it in the same report. (Create a new report for each new session.)

Test Server Pings Using Charles Proxy

You can use the Charles Web Debugging Proxy Application instead of the Adobe Debug proxy. To download and install the Charles proxy, visit

If you run the sample app on the development system, the HTTP traffic from the sample app appears in Charles proxy.

If you run the sample app on a real iOS device, follow these steps to configure the iOS device to use the Charles proxy:

  1. Connect both the iOS device and the development system running Charles proxy to the same local network. (Doing this makes network traffic from the device visible to the proxy on the development system.)
  2. Get the IP address of the development system that is running the Charles proxy.
  3. On the iOS device, open Settings.
  4. Go to the Wi-Fi settings.
  5. Click the "info" icon for the network.
  6. In the network's advanced options change the following settings:
    • For HTTP Proxy, select Manual.
    • For Server, enter the IP address of the development system that runs Charles proxy.
    • For Port, enter the port number that Charles proxy uses. Unless you changed the default value, this port number is 8888.
  7. When you run the sample app on the iOS device, the Charles proxy software shows the HTTP requests from the iOS device.