BV Pixel

This documentation explains how to use the Bazaarvoice Pixel to capture product purchases as well as non-transactional events, such as 'Store Locator' or 'Where To Buy' clicks.


The Bazaarvoice API Analytics solution, better known as BV Pixel, aims to pass events from all views containing user-generated content (UGC) within a client's mobile application to Bazaarvoice. This includes viewing product statistics and UGC display views for Reviews, Questions, and Answers. Using this collected data, Bazaarvoice reports on the influence that UGC has throughout the client's mobile application.


With Gradle

Include the Maven Central repository and add the appropriate Bazaarvoice Mobile SDK modules to your dependencies:

dependencies {  
  compile 'com.bazaarvoice.bvandroidsdk:analytics:{BV_SDK_VERSION}.+'  
repositories {  

Replace the {tokens}, including brackets, with the appropriate values. Refer to the Installation guide for {BV_SDK_VERSION}.

Extending the application

Create a class that extends, and initialize the Mobile SDK using its builder.

You can find a full list of build options in

public class MyApplication extends Application {  
  public void onCreate(){  
    BVPixel.builder(context, {YOUR_CLIENT_ID}, isStaging)  

Replace the {tokens} with the appropriate values. Ex: {token} becomes value. If you are unsure about the correct value, contact Bazaarvoice Support or your implementation team.

App manifest file

Add the following to your AndroidManifest.xml file.

<!-- set the name of the class for the application entry -->


Generating events

Event map generation steps

The following code sample demonstrates how to dispatch an analytics events:

// Step 1  
// Setup BVPixel  
BVPixel.builder(context, "clientId", false)  

// Step 2  
// Create Event  
BVPageViewEvent event = new BVPageViewEvent(  

// Step 3  
// Send event  

Event map generation examples


The Transaction event should execute once the user has completed a purchase. This will often be after a payment has been processed or when loading of a payment confirmation page. The sample code below shows the necessary initializer for creating and sending an eCommerce transactions analytics event.

BVTransactionItem item1 = new BVTransactionItem.Builder("productId1")  

BVTransactionItem item2 = new BVTransactionItem.Builder("productId2")  

BVTransaction transaction = new BVTransaction.Builder()  
  .setItems(Arrays.asList(item1, item2))  

BVTransactionEvent event = new BVTransactionEvent(transaction);


For non-eCommerce sites, this analytics metric that should be implemented is described below. Known as a non-eCommerce conversion, this analytic event handles user-interaction not converted by other events, such as downloading a brochure, or logging into a service.

BVConversionEvent event = new BVConversionEvent("customType", "customValue", "customLabel");


Execute a PageView event when a product detail page is fully rendered and the page view data is available. A PageView will typically be associated with review and/or question statistics.

BVPageViewEvent event = new BVPageViewEvent(  


An InView event should be used to indicate that UGC is visible on the view. This event is triggered when consumer-generated content is made visible on the mobile screen. This should only be fired once per ViewController load. The code below shows you how to track an InView event.

BVInViewEvent event = new BVInViewEvent(  


This event communicates the various pieces of consumer generated content on a given view back to Bazaarvoice. For each review, question or answer on a UIView, an Impression event must be sent. The code below show you how to implement an Impression Event.

BVImpressionEvent event = new BVImpressionEvent(  


It is not enough to know that a user has viewed a product page. It is valuable to also know how end users interact with consumer-generated content on a mobile app view. This information can provide insights on the information users value before making a conversion, or purchase.

BVFeatureUsedEvent event = new BVFeatureUsedEvent(  


This event is triggered when consumer-generated content is made visible for a set amount of time. Typically this means that UGC was on the mobile screen for greater than 5 seconds, giving an understanding the end-user likely read the content.

BVViewedCgcEvent event = new BVViewedCgcEvent(  

Multi client analytics

There is an additional API for sending an event with a different clientId if necessary,

bvPixel.trackEventForClient(event, otherClientId);