com.brsanthu.googleanalytics.GoogleAnalyticsParameter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of google-analytics-java Show documentation
Show all versions of google-analytics-java Show documentation
This is Java API for Google Analytics (Measurement Protocol). More information about the protocol is available at https://developers.google.com/analytics/devguides/collection/protocol/v1/.
/*
* Licensed under the Apache License, Version 2.0 (the "License")),
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.brsanthu.googleanalytics;
/**
* Google Analytics Measurement Protocol Parameters.
*
* For more information, see GA Parameters Reference
*
* @author Santhosh Kumar
*/
public enum GoogleAnalyticsParameter {
//General
PROTOCOL_VERSION("v", true),
TRACKING_ID("tid", true),
ANONYMIZE_IP("aip", "boolean"),
QUEUE_TIME("qt", "integer"),
CACHE_BUSTER("z"),
USER_IP("uip"),
USER_AGENT("ua"),
//Visitor
CLIENT_ID("cid", true),
USER_ID("uid"),
//Session
SESSION_CONTROL("sc"),
//Traffic Sources
DOCUMENT_REFERRER("dr"),
CAMPAIGN_NAME("cn"),
CAMPAIGN_SOURCE("cs"),
CAMPAIGN_MEDIUM("cm"),
CAMPAIGN_KEYWORD("ck"),
CAMPAIGN_CONTENT("cc"),
CAMPAIGN_ID("ci"),
ADWORDS_ID("gclid"),
DISPLAY_ADS_ID("dclid"),
//System Info
SCREEN_RESOLUTION("sr"),
VIEWPORT_SIZE("vp"),
DOCUMENT_ENCODING("de"),
SCREEN_COLORS("sd"),
USER_LANGUAGE("ul"),
JAVA_ENABLED("je", "boolean"),
FLASH_VERSION("fl"),
//Hit
HIT_TYPE("t", true),
NON_INTERACTION_HIT("ni"),
//Content Information
DOCUMENT_URL("dl"),
DOCUMENT_HOST_NAME ("dh"),
DOCUMENT_PATH ("dp"),
DOCUMENT_TITLE ("dt"),
CONTENT_DESCRIPTION ("cd"),
//App Tracking
APPLICATION_NAME("an"),
APPLICATION_VERSION("av"),
//Event Tracking
EVENT_CATEGORY("ec", new String[] {"event"}),
EVENT_ACTION("ea", new String[] {"event"}),
EVENT_LABEL("el", new String[] {"event"}),
EVENT_VALUE("ev", false, "integer", new String[] {"event"}),
//E-Commerce
TRANSACTION_ID("ti", new String[] {"transaction", "item"}),
TRANSACTION_AFFILIATION("ta", new String[] {"transaction"}),
TRANSACTION_REVENUE("tr", false, "currency", new String[] {"transaction"}),
TRANSACTION_SHIPPING("ts", false, "currency", new String[] {"transaction"}),
TRANSACTION_TAX("tt", false, "currency", new String[] {"transaction"}),
ITEM_NAME("in", new String[] {"item"}),
ITEM_PRICE("ip", false, "currency", new String[] {"item"}),
ITEM_QUANTITY("iq", false, "integer", new String[] {"item"}),
ITEM_CODE("ic", new String[] {"item"}),
ITEM_CATEGORY("iv", new String[] {"item"}),
CURRENCY_CODE("cu", new String[] {"transaction", "item"}),
//Social Interactions
SOCIAL_NETWORK("sn", new String[] {"social"}),
SOCIAL_ACTION("sa", new String[] {"social"}),
SOCIAL_ACTION_TARGET("st", new String[] {"social"}),
//Timing
USER_TIMING_CATEGORY("utc", new String[] {"timing"}),
USER_TIMING_VARIABLE_NAME("utv", new String[] {"timing"}),
USER_TIMING_TIME("utt", false, "integer", new String[] {"timing"}),
USER_TIMING_LABEL("utl", new String[] {"timing"}),
PAGE_LOAD_TIME("plt", false, "integer", new String[] {"timing"}),
DNS_TIME("dns", false, "integer", new String[] {"timing"}),
PAGE_DOWNLOAD_TIME("pdt", false, "integer", new String[] {"timing"}),
REDIRECT_RESPONSE_TIME("rrt", false, "integer", new String[] {"timing"}),
TCP_CONNECT_TIME("tcp", false, "integer", new String[] {"timing"}),
SERVER_RESPONSE_TIME("srt", false, "integer", new String[] {"timing"}),
//Exceptions
EXCEPTION_DESCRIPTION("exd", new String[] {"exception"}),
EXCEPTION_FATAL("exf", false, "boolean", new String[] {"exception"}),
//Experiment Variations
EXPERIMENT_ID("xid"),
EXPERIMENT_VARIANT("xvar");
private String parameterName = null;
private boolean required = false;
private String type = "text";
private String[] supportedHitTypes = null;
private GoogleAnalyticsParameter(String name) {
this(name, false);
}
private GoogleAnalyticsParameter(String name, boolean required) {
this(name, required, "text", null);
}
private GoogleAnalyticsParameter(String name, String type) {
this(name, false, type, null);
}
private GoogleAnalyticsParameter(String name, String[] supportedHitTypes) {
this(name, false, "text", supportedHitTypes);
}
private GoogleAnalyticsParameter(String name, boolean required, String type, String[] supportedHitTypes) {
this.parameterName = name;
this.required = required;
this.type = type;
this.supportedHitTypes = supportedHitTypes;
}
public String getParameterName() {
return parameterName;
}
public String[] getSupportedHitTypes() {
return supportedHitTypes;
}
public String getType() {
return type;
}
public boolean isRequired() {
return required;
}
}