• About Us
  • Blog
  • Basket
  • Account
  • Sign In
  •  

Golang API

What's Covered

This tutorial illustrates how to return a match for a Device Id. It shows how to first get the Device Id from a match, then get a match for that Device Id and return the value of the IsMobile property. This can be useful to look at devices that have already been matched at a previous date.

Code and Explanation

Match with device id example of using 51Degrees device detection. The example shows how to:

  1. Instantiate the 51Degrees device detection provider.

    provider = FiftyOneDegreesPatternV3.NewProvider(dataFile)
    

  2. Produce a match for a single device id

    match = provider.GetMatchForDeviceId(deviceId)
    

  3. Extract the value of the IsMobile property

    match.GetValue("IsMobile")
    

This example assumes you have the 51Degrees Go API installed correctly.
Full Source File
package main

import (
    "fmt"
    "./src/pattern"
)

// Location of data file.
var dataFile = "../data/51Degrees-LiteV3.2.dat"

// Which properties to retrieve
var properties = []string{"IsMobile", "PlatformName", "PlatformVersion"}


// Provides access to device detection functions.
var provider =
    FiftyOneDegreesPatternV3.NewProvider(dataFile)

// User-Agent string of an iPhone mobile device.
var mobileUserAgent = "Mozilla/5.0 (iPhone; CPU iPhone OS 7_1 like Mac OS X) " +
    "AppleWebKit/537.51.2 (KHTML, like Gecko) 'Version/7.0 Mobile/11D167 " +
    "Safari/9537.53"

// User-Agent string of Firefox Web browser version 41 on desktop.
var desktopUserAgent = "Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) " +
    "Gecko/20100101 Firefox/41.0"

// User-Agent string of a MediaHub device.
var mediaHubUserAgent = "Mozilla/5.0 (Linux; Android 4.4.2; X7 Quad Core " +
    "Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 " +
    "Chrome/30.0.0.0 Safari/537.36"


func main() {
    fmt.Println("Starting Match With Device Id Example.")

    // Fetches the device id for a mobile User-Agent.
    var match = provider.GetMatch(mobileUserAgent)
    var mobileDeviceId = match.GetDeviceId()

    // Fetches the device id for a desktop User-Agent.
    match = provider.GetMatch(desktopUserAgent)
    var desktopDeviceId = match.GetDeviceId()

    // Fetches the device id for a MediaHub User-Agent.
    match = provider.GetMatch(mediaHubUserAgent)
    var mediaHubDeviceId = match.GetDeviceId()

    // Carries out a match with a mobile device id.
    fmt.Println("\nMobile Device Id: ", mobileDeviceId)
    match = provider.GetMatchForDeviceId(mobileDeviceId)
    fmt.Println("   IsMobile: ", match.GetValue("IsMobile"))

    // Carries out a match with a desktop device id.
    fmt.Println("\nDesktop Device Id: ", desktopDeviceId)
    match = provider.GetMatchForDeviceId(desktopDeviceId)
    fmt.Println("   IsMobile: ", match.GetValue("IsMobile"))

    // Carries out a match with a MediaHub device id.
    fmt.Println("\nMediaHub Device Id: ", mediaHubDeviceId)
    match = provider.GetMatchForDeviceId(mediaHubDeviceId)
    fmt.Println("   IsMobile: ", match.GetValue("IsMobile"))
}

Full Source File

Summary

In this tutorial you have seen how to use the detector to retrieve the IsMobile property for a pre-defined Device ID string. The example can easily be modified to retrieve the value of any other property. Premium and Enterprise data files provide considerably more properties such as IsCrawler, PriceBand, HardwareVendor and ScreenInchesWidth. For a full list of properties and the data files they exist in please see the Property Dictionary.