Snowplow-google-analytics-plugin send the data to what endpoint?

Hello,

I’m thinking of using this plugin to fork my GA data to my Snowplow collector. In the documentation here https://github.com/snowplow-incubator/snowplow-google-analytics-plugin/blob/develop/README.md, I see that the payload is sent to a /vendor/version endpoint of my snowplow collector. I cannot find any documentation talk about the url in the form of /vendor/version . I found some code here https://github.com/snowplow/snowplow/blob/master/3-enrich/scala-common-enrich/src/main/scala/com.snowplowanalytics.snowplow.enrich/common/adapters/AdapterRegistry.scala but it seems to be the enrichment in later stage

Anyone got any insight?
Thanks

It’ll be the /com.google.analytics/v1 path on the collector, the collector logic allows a vendor / version path to be sent and then the enricher downstream determines which adapter to utilise to enrich and process this data.

Thank you mike! Is there a documentation on what list of vendor/version Snowplow supports?

@sunshineo,

I don’t think they are available in one place. Below are some guidance and ideas

  • /i: GET requests
  • /com.snowplowanalytics.snowplow/tp2: POST requests
  • /r/tp2: redirects
  • /com.google.analytics/v1: GA plugin

The others could be checked against various webhooks as most of them would require a dedicated endpoint: https://github.com/snowplow/snowplow/wiki/Setting-up-a-webhook. For example, /com.mailchimp/v1 for MailChimp webhook, etc.

1 Like

Thank you ihor!

As @ihor has mentioned above the /i and .../tp2 are typically used for GET and POSTs respectively. Currently third party vendor / version style paths are all registered in the Adapter Registry here.

Hey Sunshineo,
I know the answers is a bit late but for future ref if anyone needs it the routes for the collectors are available on GitHub (https://github.com/snowplow/snowplow/blob/master/2-collectors/clojure-collector/java-servlet/src/snowplow/clojure_collector/core.clj)

(defroutes routes
  "Our routes"
  (GET     "/i"                {c :cookies, hs :headers} (send-cookie-pixel-or-200' c hs true))
  (GET     "/ice.png"          {c :cookies, hs :headers} (send-cookie-pixel-or-200' c hs true))  ; legacy name for i
  (GET     "/:vendor/:version" {{v :vendor} :params, p :params, c :cookies, hs :headers} (send-cookie-pixel-or-200-or-redirect' c hs true v p))  ; for tracker GET support. Need params for potential redirect
  (POST    "/:vendor/:version" {c :cookies, hs :headers} (send-cookie-pixel-or-200' c hs false)) ; for tracker POST support, no pixel
  (OPTIONS "/:vendor/:version" {hs :headers} (responses/send-preflight-response hs)) ; for CORS requests
  (HEAD    "/:vendor/:version" request responses/send-200)                       ; for webhooks' own checks e.g. Mandrill
  (GET     "/healthcheck"      request responses/send-200)
  (GET     "/crossdomain.xml"  request send-flash-crossdomain)                   ; for Flash cross-domain posting
  (compojure.route/not-found   responses/send-404))

Hopefully helpful
Best
Fred