sample_one/
sample_one.rs

1use rudderanalytics::client::RudderAnalytics;
2use rudderanalytics::message::{
3    Alias, Batch, BatchMessage, Group, Identify, Message, Page, Screen, Track,
4};
5use serde_json::json;
6fn main() {
7    let rudder_analytics = RudderAnalytics::load(
8        "YOUR_WRITE_KEY".to_string(),
9        "YOUR_DATA_PLANE_URL".to_string(),
10    );
11    let identify_msg = Message::Identify(Identify {
12        user_id: Some("sample_user_id".to_string()),
13        traits: Some(json!({
14            "name": "Test User",
15            "email": "test@user.com",
16        })),
17        ..Default::default()
18    });
19    let track_msg = Message::Track(Track {
20        user_id: Some("sample_user_id".to_string()),
21        event: "Track Event".to_owned(),
22        properties: Some(json!({
23            "some property": "some value",
24            "some other property": "some other value",
25        })),
26        ..Default::default()
27    });
28    let page_msg = Message::Page(Page {
29        user_id: Some("sample_user_id".to_string()),
30        name: "Cart".to_owned(),
31        properties: Some(json!({
32            "some property": "some value",
33            "some other property": "some other value",
34        })),
35        ..Default::default()
36    });
37    let group_msg = Message::Group(Group {
38        user_id: Some("sample_user_id".to_string()),
39        group_id: "sample_group_id".to_owned(),
40        traits: Some(json!({
41            "some property": "some value",
42            "some other property": "some other value",
43        })),
44        ..Default::default()
45    });
46    let screen_msg = Message::Screen(Screen {
47        user_id: Some("sample_user_id".to_string()),
48        name: "sample screen".to_owned(),
49        properties: Some(json!({
50            "some property": "some value",
51            "some other property": "some other value",
52        })),
53        ..Default::default()
54    });
55    let alias_msg = Message::Alias(Alias {
56        user_id: "sample_user_id".to_owned(),
57        previous_id: "sample_previous_user_id".to_owned(),
58        traits: Some(json!({
59            "some property": "some value",
60            "some other property": "some other value",
61        })),
62        ..Default::default()
63    });
64    let batch_msg = Message::Batch(Batch {
65        batch: vec![
66            BatchMessage::Track(Track {
67                user_id: Some("foo".to_string()),
68                event: "Foo".to_owned(),
69                properties: Some(json!({})),
70                ..Default::default()
71            }),
72            BatchMessage::Track(Track {
73                user_id: Some("bar".to_string()),
74                event: "Bar".to_owned(),
75                properties: Some(json!({})),
76                ..Default::default()
77            }),
78            BatchMessage::Track(Track {
79                user_id: Some("baz".to_string()),
80                event: "Baz".to_owned(),
81                properties: Some(json!({})),
82                ..Default::default()
83            }),
84        ],
85        context: Some(json!({
86            "foo": "bar",
87        })),
88        ..Default::default()
89    });
90
91    rudder_analytics
92        .send(&identify_msg)
93        .expect("Identify call failed to send data to Rudderstack");
94
95    rudder_analytics
96        .send(&track_msg)
97        .expect("Track call failed to send data to Rudderstack");
98
99    rudder_analytics
100        .send(&page_msg)
101        .expect("Page call failed to send data to Rudderstack");
102
103    rudder_analytics
104        .send(&group_msg)
105        .expect("Group call failed to send data to Rudderstack");
106
107    rudder_analytics
108        .send(&screen_msg)
109        .expect("Screen call failed to send data to Rudderstack");
110
111    rudder_analytics
112        .send(&alias_msg)
113        .expect("Alias call failed to send data to Rudderstack");
114
115    rudder_analytics
116        .send(&batch_msg)
117        .expect("Batch call failed to send data to Rudderstack");
118}