Yelp

Retest Observations

We retested this app on 19.02.2019. The app still exhibits the behaviour documented below.

Disclaimer: Additionally the tested app may still share data with other third parties. This is outside the scope of this work.

Read more

Yelp is an app for finding local amenities and services

From the Google Play Store page:

"Yelp has over 135 million restaurant and business reviews worldwide. Whether you’re looking for a new pizzeria, a great coffee shop nearby, a new salon, or the best handyman in town, Yelp is your city guide to finding the perfect places to eat, shop, drink, relax, visit and play. "

Observed Behaviour

 This documentation demonstrates actions taken by the test user and the apps subsequent responses.

Test user action 1: The user taps on the application icon, which opens the application
Response from app: The application is initialised and the following data is sent and received by the app:

Immediately after the app is opened, the following data is sent to graph.facebook.com (Graph)

The following GET request was made:

GET https://graph.facebook.com/v3.1/97534753161?fields=supports_implicit_sdk_logging%2Cgdpv4_nux_content%2Cgdpv4_nux_enabled%2Cgdpv4_chrome_custom_tabs_enabled%2Candroid_dialog_configs%2Candroid_sdk_error_categories%2Capp_events_session_timeout%2Capp_events_feature_bitmask%2Cauto_event_mapping_android%2Cauto_event_setup_enabled%2Cseamless_login%2Csmart_login_bookmark_icon_url%2Csmart_login_menu_icon_url&format=json&advertiser_id=474364c6-e9cf-4971-8dd2-b1dc3c605450&sdk=android HTTP/1.1

With the response

 {
  "supports_implicit_sdk_logging":true,"gdpv4_nux_enabled":false,"gdpv4_chrome_custom_tabs_enabled":true,"android_sdk_error_categories":[ {
    "name":"login_recoverable","items":[ {
      "code":102
    }
    , {
      "code":190
    }
    ],"recovery_message":"Please log in to this app again to reconnect your Facebook account."
  }
  ],"app_events_session_timeout":60,"app_events_feature_bitmask":5,"auto_event_setup_enabled":false,"seamless_login":1,"smart_login_bookmark_icon_url":"https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yh\/r\/HyQ4Fq_iGUX.png","smart_login_menu_icon_url":"https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yR\/r\/xi3BPJ134MF.png","id":"97534753161"
}

Without any further user action, the app sends the following request to graph.facebook.com

format:                       json
sdk:                          android
event:                        MOBILE_APP_INSTALL
advertiser_id:                474364c6-e9cf-4971-8dd2-b1dc3c605450
advertiser_tracking_enabled:  true
installer_package:            com.android.vending
anon_id:                      XZ4e0f5a61-8cf9-40fe-93b4-67126270f77e
application_tracking_enabled: true
extinfo:                      ["a2","com.yelp.android",21030003,"10.31.0-21030003","8.1.0","Nexus 5","en_GB","GMT","",1080,1776,"3.00",4,13,8,"Europe\/London"]
application_package_name:     com.yelp.android

The app receives the following response from graph.facebook.com:

 {
  "success":true
}

Test user action 2: The user makes further interaction with app
Response from app: No futher data is sent to graph.facebook.com

Test user action 3: The user closes the application
Response from app: No futher data is sent or received by the app from graph.facebook.com

 

 

Notes and Commentary

Note 1: In the videos below, the clocks between the VirtualBox Virtual Machine and the Phone handset are not synchronised.
Note 2: The phone videos are split into multiple parts due to a 180 second limitation in Android Developer Bridge screenrecord command

Date Tested
01/12/2018
App Version
10.31.0-21030003
Number of App Installs (according to Google Play Store at time of analysis)
10,000,000+
Facebook SDK Version
4.37.0
Opt out of Ads Personalisation (Google Settings)
Not Enabled (Default Setting)