/* * 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 water.ga; import static water.ga.GoogleAnalyticsParameter.EVENT_ACTION; import static water.ga.GoogleAnalyticsParameter.EVENT_CATEGORY; import static water.ga.GoogleAnalyticsParameter.EVENT_LABEL; import static water.ga.GoogleAnalyticsParameter.EVENT_VALUE; /** * GA request to track events. * * <p>For more information, see <a href="https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters#events">GA Parameters Reference</a></p> * * @author Santhosh Kumar * * This copy of google-analytics-java is a back port of version 1.1.1 of the library. * This backport removes the slf4j dependency, and modifies the code to work with the * 4.1 version of the Apache http client library. * * Original sources can be found at https://github.com/brsanthu/google-analytics-java. * All copyrights retained by original authors. */ public class EventHit extends GoogleAnalyticsRequest<EventHit> { public EventHit () { this(null, null, null, null); } public EventHit (String eventCategory, String eventAction) { this(eventCategory, eventAction, null, null); } public EventHit (String eventCategory, String eventAction, String eventLabel) { this(eventCategory, eventAction, eventLabel, null); } public EventHit (String eventCategory, String eventAction, String eventLabel, Integer eventValue) { super("event"); eventCategory(eventCategory); eventAction(eventAction); eventLabel(eventLabel); eventValue(eventValue); } /** * <h2 id="events">Event Tracking</h2> * <div class="ind"> * <p> * Optional. * </p> * <p>Specifies the event category. Must not be empty.</p> * <table border="1"> * <tbody> * <tr> * <th>Parameter</th> * <th>Value Type</th> * <th>Default Value</th> * <th>Max Length</th> * <th>Supported Hit Types</th> * </tr> * <tr> * <td><code>ec</code></td> * <td>text</td> * <td><span class="none">None</span> * </td> * <td>150 Bytes * </td> * <td>event</td> * </tr> * </tbody> * </table> * <div> * Example value: <code>Category</code><br> * Example usage: <code>ec=Category</code> * </div> * </div> */ public EventHit eventCategory(String value) { setString(EVENT_CATEGORY, value); return this; } public String eventCategory() { return getString(EVENT_CATEGORY); } /** * <div class="ind"> * <p> * Optional. * </p> * <p>Specifies the event action. Must not be empty.</p> * <table border="1"> * <tbody> * <tr> * <th>Parameter</th> * <th>Value Type</th> * <th>Default Value</th> * <th>Max Length</th> * <th>Supported Hit Types</th> * </tr> * <tr> * <td><code>ea</code></td> * <td>text</td> * <td><span class="none">None</span> * </td> * <td>500 Bytes * </td> * <td>event</td> * </tr> * </tbody> * </table> * <div> * Example value: <code>Action</code><br> * Example usage: <code>ea=Action</code> * </div> * </div> */ public EventHit eventAction(String value) { setString(EVENT_ACTION, value); return this; } public String eventAction() { return getString(EVENT_ACTION); } /** * <div class="ind"> * <p> * Optional. * </p> * <p>Specifies the event label.</p> * <table border="1"> * <tbody> * <tr> * <th>Parameter</th> * <th>Value Type</th> * <th>Default Value</th> * <th>Max Length</th> * <th>Supported Hit Types</th> * </tr> * <tr> * <td><code>el</code></td> * <td>text</td> * <td><span class="none">None</span> * </td> * <td>500 Bytes * </td> * <td>event</td> * </tr> * </tbody> * </table> * <div> * Example value: <code>Label</code><br> * Example usage: <code>el=Label</code> * </div> * </div> */ public EventHit eventLabel(String value) { setString(EVENT_LABEL, value); return this; } public String eventLabel() { return getString(EVENT_LABEL); } /** * <div class="ind"> * <p> * Optional. * </p> * <p>Specifies the event value. Values must be non-negative.</p> * <table border="1"> * <tbody> * <tr> * <th>Parameter</th> * <th>Value Type</th> * <th>Default Value</th> * <th>Max Length</th> * <th>Supported Hit Types</th> * </tr> * <tr> * <td><code>ev</code></td> * <td>integer</td> * <td><span class="none">None</span> * </td> * <td><span class="none">None</span> * </td> * <td>event</td> * </tr> * </tbody> * </table> * <div> * Example value: <code>55</code><br> * Example usage: <code>ev=55</code> * </div> * </div> */ public EventHit eventValue(Integer value) { setInteger(EVENT_VALUE, value); return this; } public Integer eventValue() { return getInteger(EVENT_VALUE); } }