Troubleshooting Campaign Issues

In this topic you will learn about troubleshooting techniques when using the Campaign module.

Enabling verbose logging

Enabling verbose logging allows you to view Campaign related information in the browser console. This is helpful when trying to debug Campaign issues. Verbose logging can be enabled by adding bcverbose=1 to the URL of the page with the Campaign-enabled player or by configuring the Campaign plugin with the "verbose": true option:

configure plugin

Log messages can be viewed in the console.


Lead form issues

Below are some common issues and questions we have seen with lead forms.

Why do lead forms continue to show for Marketo Munchkin integrations even after the form has been submitted?

The Munchkin integration doesn't have an API that we can use to ask if the user is known or not. Since we don't know if they’re a known user, we always display the lead form. The Marketo REST integration does offer APIs so we can determine known vs. unknown users. Switching to a Marketo REST integration is recommended and can avoid this issue.

My custom lead form is set to redirect on submit. Why do I see the page that’s redirected to for a second or two after submitting the form?

We have to wait until the page that’s redirected to has fully loaded before dismissing the lead form. One solution is to redirect to a page that is lightweight (doesn’t have many images or JavaScript), or the blank page we set up (located at specifically to address this problem.

I configured my lead form with confirmation HTML. Why do I see a black screen for a couple seconds after submission?

Make sure to change the text color of the HTML. The confirmation HTML is probably visible, you just can’t see it because the default text color is black.

Why doesn't my HubSpot lead form dismiss after submission?

Make sure the lead form in HubSpot is configured to redirect to If you want to display a confirmation message, configure this within Campaign and not HubSpot.

Why is my lead form not displaying?

If your lead form is not displaying, first ensure all the criteria for showing a lead form have been met. Note that criteria that depend on multiple videos being watched will not work across page refreshes. They are meant for use cases where the next video is automatically queued in the same player.

  1. Confirm that the Campaign plugin has been added to the player. For information, see Creating a Campaign-enabled Player.
  2. Confirm that the integration has been correctly set up and is sent to the plugin.
  3. Confirm that the lead form has been added to that player. The response to the call the plugin makes for its config should contain lead form display information under the leadForm property if a lead form has been added to the player.
    leadform debug
  4. Confirm that the viewer is not already a lead. The lead form will only be shown if Campaign has identified that the viewer is not already a lead in the marketing automation platform (MAP) or has not already filled out a lead form. The plugin makes a separate JSONP call to the Campaign server to check if the viewer is a lead. If the viewer is a lead, the server responds with a status of 1 and any other identifiers that could be useful in syncing the view data to the MAP. If the viewer is not a lead, the server responds with a status of 0.
    • Example response for a viewer that is not a lead:
        /**/ typeof jsonpCallback_2935650618 === 'function' &&
    • Example response for a viewer that is a lead:
        /**/ typeof jsonpCallback_45936049288 === 'function' &&

Sync issues

Below are some common sync issues we have seen.

Marketo REST view events fail to sync with the error Activity type id ‘000000’ not found

This happens when the custom Marketo activity associated with the integration has been deleted. When a Marketo REST integration is created, we fetch the activity, store its ID, and use that ID to sync events. The solution (assuming a new Brightcove Video View activity has been created) is to disconnect and re-create the integration to pick up the ID of the new activity.

View Events not Syncing

When the integration is correctly set up with a MAP, viewing data from a Campaign-enabled player should populate the All Recent Activity page and view events corresponding to a known lead in the respective MAP should eventually sync to the tool.

First, ensure view data is being displayed on the All Recent Activity page:

viewer activity

If view events are listed but are not in the MAP, the user may have authorized Campaign with their MAP as a user that doesn’t have sufficient permissions to import view data into the MAP via the API or the integration is not correctly configured. The Campaign homepage lists the status of recent view event sync operations. Feedback should be available there to indicate why view events are not syncing to the MAP.

If view events are showing up in Campaign, check to see if the Status column is synced. This indicates that Campaign was able to successfully deliver the data into your MAP. If you see a status of unknown_contact, this means the user was not known and your MAP cannot receive it. Most MAPs only accept third-party data for known users. The solution is to use a custom lead form created in your MAP to ensure you are indeed a known user.

If view events are not listed, Campaign may have not been setup with a Campaign-enabled player. Using a browser with developer tools enabled, visit a page that contains the problematic video and ensure that certain HTTP calls are made by the Campaign plugin.

When the player loads, the plugin should make a call to the Campaign config endpoint to obtain parameters that determine the behavior of the plugin based on the integration:

plugin config

If this call is missing from the network traffic, it means the player has not been assigned an integration. For information on how to do this, see Creating a Campaign-enabled Player.

This call is made using JSONP. If the JSONP response is an empty object, then it is possible the embed code is incorrect and specifies the wrong account ID. An empty object will be returned from this endpoint if the config request fails to include both account and player URL parameters or if the specified account could not be retrieved from the Campaign-specific database (most likely the wrong account was specified in the URL/embed code and it was not found in the database).

  /**/ typeof jsonpCallback_78754666587 === 'function' && jsonpCallback_78754666587({});

If the object has an ID parameter, but is missing an integration parameter, the user has not set up an integration with their marketing automation tool and view events will not be recorded.

You will also have data sync issues if the Standard Embed (iframe) code was used when publishing the Campaign-enabled player. Use the Advanced Embed (in-page) code when publishing your player. Standard Embed (iframe) publishing code will not work as the Campaign plugin will be running inside of an iframe and therefore will be unable to access the parent page cookies or URL parameters.

Connection issues

The Campaign module says that it can’t setup an Eloqua integration

Check the requirements for Eloqua. If you are using the IP whitelist security feature, Campaign won’t be able to communicate with Eloqua unless you whitelist the specified IP addresses to allow Campaign - Eloqua traffic. Contact Brightcove Support for more information.

Campaign says that my Marketo REST custom activity is missing fields, but when I look in Marketo, I can see that all fields exist

There are a few things to check:

  1. The field names must match exactly. "Event 1" is not the same as "Event1".
  2. The activity must be approved and not in a draft state.
  3. If you deleted the custom activity and re-created it without setting up a new Marketo REST integration, you must disconnect your old integration and create a new one. We lookup the custom activity and store its ID value for each integration. If the ID changes by deleting it, we won’t be able to pick up the new one automatically.
  4. If new fields were recently added to the activity it could take up to 24 hours for the change to take effect in Marketo’s system.