Skip to content

Commit 9e21c21

Browse files
felipecslemetelkapetzel
authored
feat: Add new event tracking page (#582)
* feat: Add new event tracking page * fix nit * add TODOs * fix more broken links * Update docs/sdks/event-logging/event-tracking.md Co-authored-by: Eric Metelka <[email protected]> * rename and fix links * add js config * add more details * event logging section to javascript quickstart. tweaks to event tracking page * data organization, and SDK configuration updates * fix broken link * minor reword * fix track calls --------- Co-authored-by: Eric Metelka <[email protected]> Co-authored-by: Eric Petzel <[email protected]> Co-authored-by: Eric Petzel <[email protected]>
1 parent 24c0ab6 commit 9e21c21

26 files changed

+312
-164
lines changed

docs/data-management/definitions/assignment-sql.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ We'll now provide a step-by-step walkthrough for creating Assignment SQL Definit
7373
![Write Assignment SQL Query](/img/building-experiments/add-assignment-sql-query.png)
7474

7575
:::info
76-
If you do not yet have assignment logs in your warehouse, see the [Event Logging page](/sdks/event-logging).
76+
If you do not yet have assignment logs in your warehouse, see the [Assignment Logging page](/sdks/event-logging/assignment-logging/).
7777
:::
7878

7979
5. After clicking **Run**, you'll see some sample data. Annotate these columns into Eppo's data model using the right panel:

docs/guides/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,5 @@ Don't hesitate to shoot us an email at [email protected].
2121

2222
## Experimentation
2323

24-
- Learn how to set up [event logging](/sdks/event-logging/) with Segment, Rudderstack, mParticle, or Snowplow.
24+
- Learn how to set up [assignment logging](/sdks/event-logging/assignment-logging/) with Segment, Rudderstack, mParticle, or Snowplow.
2525
- Analyze experiments with [anonymous user IDs](/guides/advanced-experimentation/anonymous-explainer).

docs/guides/marketing/integrating-with-webflow.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ window.eppo.init(opts).then(setHeader);
109109

110110
- Provide your SDK key and Feature Flag key in the `'<SDK-KEY>'` and `'<FEATURE-FLAG-KEY>'` placeholders above.
111111
- Provide the id you are going to use for analytics logging to `'<SUBJECT-ID>'`. Ideally this would be an id from a managed platform such as Segment, Rudderstack, Google Analytics, or an internal platform.
112-
- Add your client side analytics tracking call once the assignment has been made. Make sure your analytics platform is sending data to your data warehouse connected to Eppo. This will ensure that assignments made by Eppo will be tracked and can be used for experiment analysis. For more information on Eppo's event logging integrations with popular platforms like Segment, mParticle, Rudderstack, and Snowplow, see our documentation [here](/sdks/event-logging).
112+
- Add your client side analytics tracking call once the assignment has been made. Make sure your analytics platform is sending data to your data warehouse connected to Eppo. This will ensure that assignments made by Eppo will be tracked and can be used for experiment analysis. For more information on Eppo's event logging integrations with popular platforms like Segment, mParticle, Rudderstack, and Snowplow, see our documentation [here](/sdks/event-logging/assignment-logging/).
113113

114114
## Edge cases
115115

@@ -120,4 +120,3 @@ If you end up using a subject key or user traits from a cookie, make sure that t
120120
## Demo
121121

122122
To see a demo of the Webflow integration in action, see this link: https://star-wars-demo.webflow.io/.
123-

docs/guides/migrations/launchdarkly-migration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
1. **Install the Eppo SDK**
44
- Login to Eppo with your work email: https://eppo.cloud/
55
- [Generate an SDK key](https://docs.geteppo.com/sdks/sdk-keys) by navigating to “SDK Keys” under Configuration
6-
- [Define a logging function](https://docs.geteppo.com/sdks/event-logging/) for the Eppo SDK to log assignments so they end up in your data warehouse.
6+
- [Define a logging function](https://docs.geteppo.com/sdks/event-logging/assignment-logging/) for the Eppo SDK to log assignments so they end up in your data warehouse.
77

88
*TypeScript Example:*
99

@@ -290,4 +290,4 @@
290290
```tsx
291291
const values =
292292
getInstance().getJSONAssignment(userId, featureKey, attributes);
293-
```
293+
```

docs/guides/migrations/optimizely-migration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
1. **Install the Eppo SDK**
44
- Login to Eppo with your work email: https://eppo.cloud/
55
- [Generate an SDK key](/sdks/sdk-keys) by navigating to “SDK Keys” under Configuration
6-
- [Define a logging function](/sdks/event-logging/) for the Eppo SDK to log assignments so they end up in your data warehouse
6+
- [Define a logging function](/sdks/event-logging/assignment-logging/) for the Eppo SDK to log assignments so they end up in your data warehouse
77

88
*TypeScript Example:*
99

docs/quick-starts/bandit-quickstart.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Store the SDK key securely; it is not possible to view it after closing the moda
2727

2828
Eppo leverages your existing event logging infrastructure to track experiment assignments. Whether you use a third-party system to log events to the data warehouse or have an internally built solution, you'll simply pass in a logging function when initializing the SDK.
2929

30-
The [event logging](/sdks/event-logging/) page has more information on how to set up logging using different logging tools.
30+
The [Assignment event logging](/sdks/event-logging/assignment-logging/) page has more information on how to set up logging using different logging tools.
3131

3232
This logger should write to a table with columns with the following names (they can be in any order):
3333
* **timestamp** - Timestamp of the bandit assignment
@@ -46,7 +46,7 @@ Additional information that is provided to the logger that can optionally--but i
4646
* **optimality_gap** - The difference between the score of the selected action and the highest-scored action
4747
* **metadata** - Any additional freeform metadata, in JSON format, such as the version of the SDK
4848

49-
Below is an example bandit assignment logger for the Java SDK, defined when building the SDK client. This example writes directly to Snowflake. This is illustrative and not recommended practice. Refer to our [event logging](/sdks/event-logging/) page for recommended options.
49+
Below is an example bandit assignment logger for the Java SDK, defined when building the SDK client. This example writes directly to Snowflake. This is illustrative and not recommended practice. Refer to our [assignment logging](/sdks/event-logging/assignment-logging/) page for recommended options.
5050

5151
```java
5252
.banditLogger(logData -> {

docs/sdks/client-sdks/android/assignments.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ import cloud.eppo.android.EppoClient;
3737
EppoClient eppoClient = EppoClient.getInstance();
3838

3939
String flagKey = "new-landing-page";
40-
String subjectKey = getUserId() != null ? getUserId() : "anonymous";Map<String, Object>
41-
subjectAttributes = new HashMap<>();
40+
String subjectKey = getUserId() != null ? getUserId() : "anonymous";
41+
Map<String, Object> subjectAttributes = new HashMap<>();
4242
subjectAttributes.put("country", "US");
4343
subjectAttributes.put("device", "android");
4444
String defaultValue = "control";
@@ -155,7 +155,7 @@ EppoClient eppoClient = new EppoClient.Builder("YOUR_SDK_KEY", getApplication())
155155
```
156156

157157
:::note
158-
More details about logging and examples can be found in the [event logging](/sdks/event-logging/) page.
158+
More details about logging and examples can be found in the [assignment logging](/sdks/event-logging/assignment-logging/) page.
159159
:::
160160

161161
## Debugging Assignments
@@ -175,4 +175,4 @@ AssignmentDebugInfo debugInfo = eppoClient.getAssignmentDebugInfo(
175175
Log.d("Eppo", "Assignment debug info: " + debugInfo.toString());
176176
```
177177

178-
For more information about debugging, see the [debugging documentation](/sdks/sdk-features/debugging-flag-assignment).
178+
For more information about debugging, see the [debugging documentation](/sdks/sdk-features/debugging-flag-assignment).

docs/sdks/client-sdks/android/quickstart.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class MyApplication extends Application {
3535
@Override
3636
public void onCreate() {
3737
super.onCreate();
38-
38+
3939
// Initialize the SDK
4040
try {
4141
EppoClient eppoClient = new EppoClient.Builder("YOUR_SDK_KEY", this)
@@ -96,7 +96,7 @@ public class MyApplication extends Application {
9696
@Override
9797
public void onCreate() {
9898
super.onCreate();
99-
99+
100100
// Create assignment logger
101101
AssignmentLogger logger = new AssignmentLogger() {
102102
@Override
@@ -165,5 +165,5 @@ JSONObject config = eppoClient.getJSONAssignment(key, subject, attributes, defau
165165
Now that you have the basics working, here are some advanced topics to explore:
166166

167167
- [Advanced SDK Initialization](/sdks/client-sdks/android/initialization)
168-
- [Assignment Logging Setup](/sdks/event-logging)
169-
- [Debugging Flag Assignments](/sdks/sdk-features/debugging-flag-assignment)
168+
- [Assignment Logging Setup](/sdks/event-logging/assignment-logging/)
169+
- [Debugging Flag Assignments](/sdks/sdk-features/debugging-flag-assignment)

docs/sdks/client-sdks/ios/assignments.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ Assignments are the mechanism through which a given [Subject](/sdks/sdk-features
99

1010
## How Assignments Work
1111

12-
The SDK retrieves configuration rules from the Eppo server in two cases:
12+
The SDK retrieves configuration rules from the Eppo server in two cases:
1313

14-
1. when starting a new session
15-
2. when calling the load function.
14+
1. when starting a new session
15+
2. when calling the load function.
1616

1717
These rules determine variant assignments for subjects. All assignment evaluations happen locally, without additional network requests.
1818

@@ -208,5 +208,5 @@ struct ContentView: View {
208208

209209

210210
:::note
211-
More details about logging and examples can be found in the [event logging](/sdks/event-logging/) page.
211+
More details about logging and examples can be found in the [assignment logging](/sdks/event-logging/assignment-logging/) page.
212212
:::

docs/sdks/client-sdks/ios/initialization.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ When using the SDK for experiments (rather than just feature flags), you'll need
4242

4343
```swift
4444
eppoClient = try await EppoClient.initialize(
45-
sdkKey: "mock-sdk-key",
45+
sdkKey: "mock-sdk-key",
4646
assignmentLogger: segmentAssignmentLogger
4747
)
4848

@@ -58,7 +58,7 @@ func segmentAssignmentLogger(assignment: Assignment) {
5858
]
5959

6060
analytics.track(
61-
name: "Eppo Assignment",
61+
name: "Eppo Assignment",
6262
properties: TrackProperties(assignmentDictionary)
6363
)
6464
}
@@ -141,7 +141,7 @@ It is recommended to use the `load()` method to fetch the latest flag configurat
141141

142142
The SDK will invoke the `logAssignment` function with an `Assignment` object that contains the following fields:
143143

144-
<ApiOptionRef
144+
<ApiOptionRef
145145
name="timestamp"
146146
type="string"
147147
defaultValue=""
@@ -150,7 +150,7 @@ The SDK will invoke the `logAssignment` function with an `Assignment` object tha
150150
The time when the subject was assigned to the variation. Example: `"2021-06-22T17:35:12.000Z"`
151151
</ApiOptionRef>
152152

153-
<ApiOptionRef
153+
<ApiOptionRef
154154
name="featureFlag"
155155
type="string"
156156
defaultValue=""
@@ -159,7 +159,7 @@ The time when the subject was assigned to the variation. Example: `"2021-06-22T1
159159
An Eppo feature flag key. Example: `"recommendation-algo"`
160160
</ApiOptionRef>
161161

162-
<ApiOptionRef
162+
<ApiOptionRef
163163
name="allocation"
164164
type="string"
165165
defaultValue=""
@@ -168,7 +168,7 @@ An Eppo feature flag key. Example: `"recommendation-algo"`
168168
An Eppo allocation key. Example: `"allocation-17"`
169169
</ApiOptionRef>
170170

171-
<ApiOptionRef
171+
<ApiOptionRef
172172
name="experiment"
173173
type="string"
174174
defaultValue=""
@@ -177,7 +177,7 @@ An Eppo allocation key. Example: `"allocation-17"`
177177
An Eppo experiment key. Example: `"recommendation-algo-allocation-17"`
178178
</ApiOptionRef>
179179

180-
<ApiOptionRef
180+
<ApiOptionRef
181181
name="subject"
182182
type="string"
183183
defaultValue=""
@@ -186,7 +186,7 @@ An Eppo experiment key. Example: `"recommendation-algo-allocation-17"`
186186
An identifier of the subject or user assigned to the experiment variation. Example: UUID
187187
</ApiOptionRef>
188188

189-
<ApiOptionRef
189+
<ApiOptionRef
190190
name="subjectAttributes"
191191
type="[String: EppoValue]"
192192
defaultValue="[:]"
@@ -195,7 +195,7 @@ An identifier of the subject or user assigned to the experiment variation. Examp
195195
A dictionary mapping String keys to EppoValue values. These attributes are used for targeting and are only logged if passed to the SDK assignment function. EppoValue can be a String, Number, or Boolean.
196196
</ApiOptionRef>
197197

198-
<ApiOptionRef
198+
<ApiOptionRef
199199
name="variation"
200200
type="string"
201201
defaultValue="undefined"
@@ -205,5 +205,5 @@ The experiment variation the subject was assigned to. Example: `"control"`
205205
</ApiOptionRef>
206206

207207
:::note
208-
More details about logging and examples (with Segment, Rudderstack, mParticle, and Snowplow) can be found in the [event logging](/sdks/event-logging/) page.
209-
:::
208+
More details about logging and examples (with Segment, Rudderstack, mParticle, and Snowplow) can be found in the [assignment logging](/sdks/event-logging/assignment-logging/) page.
209+
:::

0 commit comments

Comments
 (0)