{-# LANGUAGE DeriveDataTypeable, PatternGuards, FlexibleContexts, TypeFamilies, OverloadedStrings, QuasiQuotes #-}
module HSP.Google.Analytics
( UACCT(..)
, analytics
, analyticsAsync
, universalAnalytics
) where
import Data.Generics (Data, Typeable)
import Data.Text.Lazy (Text,pack)
import HSP
import Prelude hiding (head)
import Language.Haskell.HSX.QQ (hsx)
newtype UACCT = UACCT String -- ^ The UACCT provided to you by Google (looks like: @UA-XXXXX-X@)
deriving (Read, Show, Eq, Ord, Typeable, Data)
-- | create the google analytics asynchronous tracking script tag
--
-- This uses the now dubbed 'classic google analytics'
--
-- NOTE: you must put this right before the \<\/head\> tag
-- see also: universalAnalytics
analyticsAsync :: (XMLGenerator m, StringType m ~ Text) =>
UACCT -- ^ web property ID (looks like: @UA-XXXXX-X@)
-> GenXML m
analyticsAsync (UACCT uacct) = [hsx|
|]
universalAnalytics :: (XMLGenerator m, StringType m ~ Text) =>
UACCT -- ^ web property ID (looks like: @UA-XXXXX-X@)
-> GenXML m
universalAnalytics (UACCT uacct) = [hsx|
|]
-- | create the (even older) google analytics script tags
--
-- NOTE: you must put the <% analytics yourUACCT %> immediately before the