Skip to content

Instantly share code, notes, and snippets.

@jmas
Last active April 6, 2016 11:41
Show Gist options
  • Save jmas/3c767814a7d0f2abe30c5229176daf0b to your computer and use it in GitHub Desktop.
Save jmas/3c767814a7d0f2abe30c5229176daf0b to your computer and use it in GitHub Desktop.
SM: GA Endpoints

Auth in GA

  1. Open link /seo-tools/admin/google-analytics/api/auth in child window
  2. 301 Redirect to GA OAuth service with Callback URL /seo-tools/admin/google-analytics/api/auth/callback
  3. Authed in GA service and redirected to Callback URL
  4. Callback URL page make JS call to parent window to switch UI into authed mode

Attribute data-auth-state=[true|false] attached to .js-react-container is a flag that indicate authed state.

Summary

/seo-tools/admin/google-analytics/api/summary

REQUEST: GET ?filter-begin=<DATE_UNIXTIME>&filter-end=<DATE_UNIXTIME>

RESPONSE: 200-201 (success)

{
  traffic: {
    visits: 1,
    uniqueVisitors: 1,
    pageviews: 1,
    conversions: 1
  },
  visitors: {
    direct: 26,
    organic: 32,
    referal: 14,
    email: 10,
    paid: 7,
    forced: 6
  },
  uniqueVisits: {
    count: 2541000,
    graph: [
      [ <UNIXTIME_DATE>, <COUNT> ],
      [1095292800, 100],
      ...
      [1095292800, 12]
    ]
  },
  pagesVisit: {
    count: 6.8,
    graph: [
      [ <UNIXTIME_DATE>, <COUNT> ],
      [1095292800, 1],
      ...
      [1095292800, 4]
    ]
  },
  timeOnSite: {
    time: <TIME_IN_SECONDS>,
    graph: [
      [ <UNIXTIME_DATE>, <COUNT> ],
      [1095292800, 1],
      ...
      [1095292800, 4]
    ]
  },
  newVisits: {
    percent: <FLOAT>,
    graph: [
      [ <UNIXTIME_DATE>, <COUNT> ],
      [1095292800, 1],
      ...
      [1095292800, 4]
    ]
  },
  bounceRate: {
    percent: <FLOAT>,
    graph: [
      [ <UNIXTIME_DATE>, <COUNT> ],
      [1095292800, 1],
      ...
      [1095292800, 4]
    ]
  }
}

RESPONSE: 400-404 (error)

{
  filter-begin: "Error, wrong begin date.",
  filter-end: "Error, wrong end date."
}

Searchers

/seo-tools/admin/google-analytics/api/searchers/list

REQUEST: GET ?filter-begin=<DATE_UNIXTIME>&filter-end=<DATE_UNIXTIME>[&search-query=<TEXT>]

RESPONSE: 200-201 (success)

[
  {
    name: "Search Term Name",
    visits: <INT>,
    pagesVisits: <INT>,
    timeOnSite: <INT_SECONDS>,
    newVisits: <FLOAT_PERCENT>,
    bounceRate: <FLOAT_PERCENT>
  },
  ...
  {
    name: "Search Term Name",
    visits: <INT>,
    pagesVisits: <INT>,
    timeOnSite: <INT_SECONDS>,
    newVisits: <FLOAT_PERCENT>,
    bounceRate: <FLOAT_PERCENT>
  }
]

RESPONSE: 400-404 (error)

{
  filter-begin: "Error, wrong begin date.",
  filter-end: "Error, wrong end date."
}

/seo-tools/admin/google-analytics/api/searchers/visits

/seo-tools/admin/google-analytics/api/searchers/pages-visits

/seo-tools/admin/google-analytics/api/searchers/time-on-site

/seo-tools/admin/google-analytics/api/searchers/bounce-rate

REQUEST: GET ?filter-begin=<DATE_UNIXTIME>&filter-end=<DATE_UNIXTIME>

RESPONSE: 200-201 (success)

[
  [ <UNIXTIME_DATE>, <COUNT> ],
  [1095292800, 1],
  ...
  [1095292800, 4]
]

RESPONSE: 400-404 (error)

{
  filter-begin: "Error, wrong begin date.",
  filter-end: "Error, wrong end date."
}

Referals

/seo-tools/admin/google-analytics/api/referals/list

The same as Searchers.

/seo-tools/admin/google-analytics/api/referals/visits

/seo-tools/admin/google-analytics/api/referals/pages-visits

/seo-tools/admin/google-analytics/api/referals/time-on-site

/seo-tools/admin/google-analytics/api/referals/bounce-rate

The same as Searchers.

Mobile

/seo-tools/admin/google-analytics/api/mobile/list

The same as Searchers.

/seo-tools/admin/google-analytics/api/mobile/visits

/seo-tools/admin/google-analytics/api/mobile/pages-visits

/seo-tools/admin/google-analytics/api/mobile/time-on-site

/seo-tools/admin/google-analytics/api/mobile/bounce-rate

The same as Searchers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment