The Conversations API lets you programmatically retrieve and submit Bazaarvoice Conversations data for use in your applications. To learn more, go to the Conversations API documentation home page.

Bazaarvoice Conversations Mobile SDKs
Developers starting new Mobile apps or who have the resources to update existing apps should use the Bazaarvoice Mobile SDKs available for iOS and Android instead of following the instructions on this page.

This tutorial documents how to use iovation's mobile SDKs and the Bazaarvoice Conversations API to create and submit a device fingerprint from a native mobile application.

Contents

(+ show- hide)

Introduction

Mass advertising campaigns, trolling, and attempts at automated content submission are all sources of inauthentic content. To combat them Bazaarvoice has partnered with iovation, an industry leader in device reputation technology.

iovation offers both an Android SDK as well as an IOS SDK. iovation identifies devices through information collected by an iovation SDKs run on an end-user’s mobile device and generate a blackbox value. This blackbox value is then transmitted to Bazaarvoice and used in a reputation check.

Per the Bazaarvoice Authenticity Policy, you must send a device fingerprint attached to each submission. If you fail to send a device fingerprint with your submission, Bazaarvoice may take any action deemed necessary in Bazaarvoice’s sole discretion to protect the integrity of the network. Such actions may include but are not limited to: rejection of your content, halting syndication of your content on the Bazaarvoice network, revocation of your API key, or revocation of your API license.

Aquiring iovation SDKs

The iovation SDKs for Android and iOS can be downloaded from iovation's Github account at the following URLs:

Android https://github.com/iovation/deviceprint-SDK-Android
iOS https://github.com/iovation/deviceprint-SDK-iOS

You should dowload the latest available version.

Installation and usage

The README.html included with each SDK provides detailed installation, configuration and usage instructions.

Submitting device fingerprint to Bazaarvoice

Device fingerprints must be submitted to Bazaarvoice along with the consumer generated content (reviews, questions, etc). The following example demonstrates what the submission would look like as a raw HTTP request to the Bazaarvoice Converstaions API. You should refer to the documentation for your application programming environment to learn how to perform HTTP requests.

Parameters

Name Description Default Value
fp Value is iovation device fingerprint black box string. N/A

Content types

The fp parameter is available for the following content types.

Example

Submission should be performed using the HTTP POST method with a request body due to the length of the black box string and limitations imposed on query string length by some servers. Additional information on API submission can be found by reading the Submission Fundamentals tutorial.

The following example assumes you are performing the submission from the users device. If you are submitting to your server first and then to Bazaarvoice, then you must also capture the IP address of the user's device. See the Author IP address section of the Authenticity tutorial for more information.

This is a generic example. Your fields and API key will be different.
The following code applies to full submission only. It does not apply to progressive submission.
POST /data/submitreview.json HTTP/1.1
Host: stg.api.bazaarvoice.com
Content-Type: application/x-www-form-urlencoded
...

rating=5&title=This+is+a+review+title&reviewtext=This+is+review+text.+This+is+review+text.+This+is+review+text.+This+is+review+text.+This+is+review+text.+This+is+review+text.+This+is+review+text.+&UserNickname=bvtester&productId=io_bb_callback&userId=1234567&apiversion=5.4&action=submit&passkey=hk5pv3pfasrrdjyq487m699s&fp=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

Ellipses (…) indicated that your app may generate additional headers.

Encoding the blackbox string

Failure to correctly encode the black box string will result in your content being considered inauthentic.

The black box string contains characters that are reserved for special purposes in a URI. For example, the plus sign (+) is an encoding for the white space character. Because submission is performed using the Content-Type: application/x-www-form-urlencoded header, our appliction will decode the black box string and interprete a plus sign as a white space character.

To correctly submit the black box string, you must ensure that the black box string is itself percent encoded, so that any reserved characters are not misinterpreted. For example, the percent encoding for a plus sign is %2B. When our application encounter that sequence of characters, it will be interpreted as a + character.

The following examples demonstrate unencoded and encoded black box strings:

Unencoded

The black box string depicted in this example should not be submitted to Bazaarvoice because it is not encoded.

0400mTR4Z7+BQcwNf94lis1ztli3mJEkJyoNdUgbrAJXB1FL4OEJMXZmD5jK1MaVRDhlAQ9qVcA9LW6vVIn0Up+4mzLLK7Xd4mGlEKa0Y+mB3pcCMqvMh8qRwB6l1hlSasV82UeoAtphovcW/PXBDOAZObSUZpybFcXAARVnJuq5mFWxH1ZPRIwM6iaikdE2N/iBS7gHh9oerxrosS1xgSAgNfLEMokGoGJxq3nJn2qrpH3U8XBpd1sDgWA73rYZtIsVyoA80pXCaXYch6NDTeqGONC1UJgA1BQZDi8R6wVNV9r6qoxEqm2gQ71/Y9e8eiB48zOQG3Lx3BMX0E/AY6vmjxNpiXJ/hZ…

Ellipses (…) indicated that the string has been shortened for demonstration purposes.

Encoded

This black box string is encoded and is safe to submit to Bazaarvoice.

0400mTR4Z7%2BBQcwNf94lis1ztli3mJEkJyoNdUgbrAJXB1FL4OEJMXZmD5jK1MaVRDhlAQ9qVcA9LW6vVIn0Up%2B4mzLLK7Xd4mGlEKa0Y%2BmB3pcCMqvMh8qRwB6l1hlSasV82UeoAtphovcW%2FPXBDOAZObSUZpybFcXAARVnJuq5mFWxH1ZPRIwM6iaikdE2N%2FiBS7gHh9oerxrosS1xgSAgNfLEMokGoGJxq3nJn2qrpH3U8XBpd1sDgWA73rYZtIsVyoA80pXCaXYch6NDTeqGONC1UJgA1BQZDi8R6wVNV9r6qoxEqm2gQ71%2FY9e8eiB48zOQG3Lx3BMX0E%2FAY6vmjxNpiXJ%2FhZ…

Ellipses (…) indicated that the string has been shortened for demonstration purposes.