This page provides information that lets you troubleshoot some of the most common problems while creating or viewing ads with Flurry Publisher.

These are divided into the following categories:

Ads Not Showing

The following is a list of things you can check for if your ads are not showing:

Is your list of whitelisted domains still accurate?

Ensure that your list of whitelisted domains are still accurate. Note that only the top level domains need to be whitelisted. The system may be treating and as different domains. Please verify

Are you using the correct ad tag?

The ad tag must be cross-referencing the adUnitCode in the JavaScript with the SectionCode from the Edit ad unit in the Flurry portal.

Is your classname using the correct adUnitCode?

The classname should match the adUnitCode in your ad tag. If your partner is using the replace content method, make sure that the classname inserted is using the correct adUnitCode.

Check if the xpath is valid?

To check if your xpath is valid:

  1. Open Dev tools > console > enter: $x(“enter_xpath_here”). You can find the xpath in the Edit ad unit page.
  2. If this returns no result (in chrome just: [ ] ), then the xpath location does not exist or there are not enough items in the stream.
  3. In case the xpath does not exist, update the xpath in the ad unit.

Are there enough items in the stream for the ad position to exist?

Check if there are enough items in the stream for the ad position to exist. For example, if the ad is set to ‘position 6’ and there are only 4 items in the stream, the ad will not show, as position 6 does not exist.

Are there conflicts between xpath and show first ad at values in the edit ad unit view?

At the time of ad creation, adbuilder can set the position for an ad in 2 different ways. Sometimes adbuilder will incorrectly set an xpath which works initially, but if a user tries to update the show first ad at position value, the xpath would then reference the wrong location.

For example: If you select stream position 2 with ad builder, ad builder might set an xpath like this: /html/body/ul/li[2]/..

Whereas it should be: /html/body/ul/li with show first ad at position set to position 2.

/html/body/ul/li[2]/. is directly selecting the 2nd list element, meaning if you update ‘show first ad at’ to 3, it is looking for child number 3 of the 2nd list item.

Low Ad Impressions

Impressions are Viewable Impressions in the Flurry Portal. Impressions are calculated based on IAB Standards which defines that an Impression is counted when at least half of an ad is viewed for a minimum of 1 second. Keep in mind the distinction between the impression metric, which is raw page impressions, and viewable impressions.

Is your content overlapping the Flurry ad and hiding it?

Sometimes your content may overlap the Flurry ad and hide it.

To fix this, follow this step:

Apply z-index: 2 (or higher) to the container tag.

z-index defines where in the stack/layer the content is shown (if you have 2 overlapping items, one with z-index: 1; and the other with z-index: 2, the item with z-index=1 would be shown behind the other item.

Is the impression beacon firing?

Impressions are calculated based on IAB Standards.

To verify if the impressions beacons are getting fired:

  1. Open the Developer console in your browser.
  2. Select the Network tab.
  3. Enter ‘mbcsc’ in the filter textbox.
  4. Make sure you see the ad in view.

5. Check if an impression got fired when you viewed the ad. -

Note that, the steps listed above are for Chrome browser.

Are all URLs for your ad locations whitelisted?

You must whitelist all the URLs where your ad will get displayed. Check and verify if you missed to whitelist the URL.

Are there other ads hiding your ad?

There may be other ads like expanding units or pop-outs that may have moved your ad or hiding it.

Creating Ad Units

This section describes issues you may encounter when creating ad units.

Was an xpath and language set during initial set up?

To create an ad unit, use the Ad Builder tool to initially set up the basic xpath and language. It’s easier to alter the Ad Unit layout outside of ad builder so do not worry too much about the layout. To edit the ad unit, select ad unit > actions > edit ad unit. You can edit the image dimensions and ad unit html template and the xpath here.

Does your ad have all the required ad elements?

Make sure that your Flurry ad has the following required ad elements with the exception of the ad description:

  • {image} - This is the image you are using for your ad. You can add two types of images: rectangle and square.
  • {click_url} - This is the click url (required)
  • {title} - This is the ad title (required): 20-50 characters
  • {description} - This is the ad description. Including this element is optional. The description may contain between 20 and 150 characters.
  • {gemini} - This is the black starburst. {gemini_alt} is the white starburst.
  • {sponsor} - This is the advertiser’s name. This element accepts a maximum of 35 characters.

Layout Issues

If you are having trouble viewing the image in your ad or facing other layout issues, check for the following:

Was your image included in the tag?

Note: Flurry will override any tag in the HTML with the Flurry ad image. You must do one of the following, if you want your own image included in the ad tag:

  • You must host the image, since Flurry doesn’t host it.
  • You can insert it as a background image to any tag other than the tag. For example: style=”background: transparent url("http://ptnrhost/partner_image.png") no-repeat 50% 50% / cover; width: 50px; height: 50px;”>

Did you set up a minimum height for your image element?

The Flurry ad image is inserted as a background-image, due to the difference in how different browsers render height, the element the image is tied to must have a minimum height. % and auto generally do not work. Due to this reason responsive ad units become difficult as we are only able to use inline styling, unless you can give you us a class name/id to insert and your ad can handle the height.

With this workaround, the image will remain the same size on all the devices.

Are your image dimensions set up correctly?

To avoid images encountering bad-crops, the default setting for the images is background-size: contain. This fits the whole image into its container, the best way it can without cropping or squashing the image. This results in letterboxing. Letterboxing occurs when matte black bars are added above and below the image.

This is an example of your image letterboxed:

You can prevent your images from being letterboxed either by changing the image dimensions in the ad unit template, or by changing the size allocated to the image in the HTML. You can also force it, but this may result in bad cropping. If you decided to force the image, it is important to keep mind that bad cropping may occur.

You can serve the image as the background image of the <a> tag.

Note that you need the div with a position set to relative surrounding the <a> and <img> tags for Safari. Also, remember to set the original image tag’s opacity to 0; otherwise, it will hide the background image.

Distorted Ads

When you see distorted ads, check for the following:

Is your ad trying to load images that are not part of your ad?

Check the HTML file to look for images that aren’t supposed to be loading. You can delete images that are not being used in your ad.

Is there absolute positioning set up in the surrounding HTML?

Check for absolute positioning in the surrounding HTML. Absolute positioning will be replaced with relative positioning unless the !important flag is added to the ad tag html (style=”position: absolute !important; left: 300px !important;”).

Have you hard coded any images or text?

Check for hard-coded images and texts in your ad unit.

Is your image size too big?

Check the Original Height and Original Width values. These indicate the size of the ad image. The image is inserted as a background image, so the height of image is very important. If the height of the image set to auto or not defined, the image will not show. Width can be more easily manipulated using inline CSS.