Conversations API: Retrieve and submit consumer-generated content (CGC), and retrieve your product catalog and statistics about your CGC.
iovation - Mobile
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.
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
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.
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.
- Review
- Review Comment
- Question
- Answer
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.
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
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.