Review feed semantics
Semantics for reviews feed are slightly nuanced:
For snapshot review feeds:
- Any service provider in the review feed, if the provider currently does not exist in LSA provider database, then the provider’s reviews will not be ingested.
- Any service provider in the review feed, if the provider currently exists in
LSA provider database, then the provider’s reviews will be processed as
- For any review in the feed, if the corresponding review doesn’t exist in LSA storage, then it should be created.
- For any review in the feed, if corresponding review exists in LSA storage, then the review will be updated with new info.
- For any review not in the feed, if corresponding review exists in LSA storage, then the review will be deleted.
- Any service provider not in the review feed, if the provider currently exists in LSA provider database, their reviews will be deleted and the provider will stop serving.
- Note that a provider with 0 reviews should also have an entry (instead of being omitted) in review feeds in order for them to serve (see Review feed sample - listingId 2)
Note that incremental is not supported for review feeds. A corresponding review feed is required for each profile feed.
Error handling on reviews
If a review feeditem is invalid, we will skip processing of that feed item, and continue to process the remaining valid feed items.
If a review feed is invalid (e.g. not compliant with the schema), we will stop processing the entire review feed.
|serviceProviderId||number||Unique identifier of a listing (a service provider)||12345||Yes||Must fit into int64|
|ratingCount||integer||Number of verified consumer ratings||10||Yes||Must be zero or more.|
|author||string||The author name of the review||“Jack L.”||No|
|reviewId||string||The unique id of the review. If each review doesn’t come with a unique id, need 3p to generate a unique id for each review (e.g hash of review text and user), at least unique among all reviews from one provider.||“123”||Yes|
|reviewText||string||Review text written by the author||“Good job!”||No|
|rating||integer||Rating (must be an integer between 1 and 5)||4||Yes||Must be an integer between 1 and 5.|
|serviceLocationCity||string||City where the service was performed||“New York”||No|
|reviewTimestampMicros||integer||Timestamp when the review was written in microsecond format.||1.45142E+15||No|
|serviceTimestampMicros||integer||Timestamp when the service was finished in microsecond format.||1.45132E+15||No|
|language||string||Language of the review text in ISO 639-1 language code (lowercase, 2-letter). Must match with a targeting language of the provider.||“en”||No||Must match with a targeting language specified for the associated provider. Defaults to “en” if not specified.|
|category->categoryId||enum||category of the service (in LSA Taxonomy)||“garage_door_pro”||No|
|category->task||enum||Job type (task) of the service (in LSA Taxonomy)||“Repair a Garage Door”||No|
|confirmedCustomer||boolean||If the review comes from a confirmed customer (with a lead)||TRUE||No|