Meeting Title: Brainforge x J4 Project Check-in Date: 2025-08-22 Meeting participants: Robert Tseng, Zoran Selinger


WEBVTT

1 00:00:16.160 00:00:17.250 Zoran Selinger: Head over.

2 00:00:17.250 00:00:17.780 Robert Tseng: Hey, Zora.

3 00:00:20.710 00:00:21.680 Zoran Selinger: Good morning.

4 00:00:22.790 00:00:23.619 Robert Tseng: Thank you.

5 00:00:24.040 00:00:25.750 Zoran Selinger: Good afternoon.

6 00:00:29.360 00:00:30.580 Zoran Selinger: Yeah, so…

7 00:00:31.400 00:00:39.630 Zoran Selinger: A little bit of a mess, as you can see. I was surprised that this property was, at least at the moment.

8 00:00:39.740 00:00:45.680 Zoran Selinger: I mean, it was… it looks like it was that for the whole, kind of, …

9 00:00:46.180 00:00:53.190 Zoran Selinger: lifetime of this… of this property. It’s… the only… the only source is amplitude there.

10 00:00:53.550 00:00:54.100 Robert Tseng: Yep.

11 00:00:54.320 00:00:55.910 Zoran Selinger: Oh, that is, …

12 00:00:56.660 00:01:03.890 Zoran Selinger: So, you have more experience than I do with amplitude. So, what did you see before? Did you see something like this before?

13 00:01:05.310 00:01:09.300 Robert Tseng: No, I mean, I think what you’re saying is pretty spot on. I think, …

14 00:01:10.270 00:01:15.609 Robert Tseng: Yeah, I… I don’t… I don’t think they should only be sending data from Amplitude, so…

15 00:01:15.730 00:01:19.869 Robert Tseng: Yeah, Amplitude’s not a replacement for the… for GTM.

16 00:01:21.200 00:01:39.529 Zoran Selinger: Yes, exactly, exactly. So, I was talking to a Googler friend of mine that is working exactly on that, and yeah, those first visit and session start events are super important. Maybe we can, with a lot of work.

17 00:01:39.820 00:01:46.999 Zoran Selinger: achieve this with actually sending those two custom events from Amplitude.

18 00:01:47.230 00:02:00.509 Zoran Selinger: kind of… let’s say… let’s say, we would recreate the functionality of GTAG to some extent, at least, right? And maybe you can do a little bit, you know, you can do a lot of…

19 00:02:00.560 00:02:08.170 Zoran Selinger: If we import all the raw data to BigQuery, if we set up that connection, you can do a lot of work there, of course.

20 00:02:08.389 00:02:13.399 Zoran Selinger: But the interface itself, it just won’t work without those,

21 00:02:14.330 00:02:28.220 Zoran Selinger: with initializing GTAG and actually at least receiving the initial events, and everything that goes with it, so all the session and user properties that come with it automatically.

22 00:02:28.580 00:02:36.850 Zoran Selinger: … So, if we really wanna, confirm that really quickly, I would recommend…

23 00:02:37.270 00:02:41.539 Zoran Selinger: to go in and, at least enable a page view event.

24 00:02:41.710 00:02:52.189 Zoran Selinger: just for that particular property. So that would initialize… we would start receiving the first visit and session start events there.

25 00:02:52.260 00:03:04.710 Zoran Selinger: And, we should be able to see some stitching just from that. So, if you want to do something really quickly, we can do that, because that’s, like, 2 minutes of work.

26 00:03:04.840 00:03:14.530 Zoran Selinger: from their side, just enable pages for that, because I see they are… they… they do have GTM for other… other properties.

27 00:03:14.660 00:03:15.980 Zoran Selinger: In place, so…

28 00:03:16.130 00:03:24.710 Zoran Selinger: they know what to do and how to do it. Otherwise, obviously, we can do it if they can.

29 00:03:25.400 00:03:31.279 Zoran Selinger: So that’s on J4. What do you think? Is there… am I missing anything?

30 00:03:32.950 00:03:35.709 Zoran Selinger: Would you rush it?

31 00:03:36.490 00:03:41.780 Zoran Selinger: Or… what’s your initial thoughts? Should we…

32 00:03:43.520 00:03:54.530 Zoran Selinger: should we wait for us to actually properly audit everything, and then create a tagging, proper tagging plan, and then go into this? Or should we do something in short? I mean.

33 00:03:55.330 00:04:03.760 Zoran Selinger: from what I’m reading from you guys from before, you are fans of doing something that works quickly.

34 00:04:04.110 00:04:05.399 Zoran Selinger: So….

35 00:04:06.390 00:04:15.090 Robert Tseng: Yeah, I’m, like, looking through the feedback that we got off of the client-facing sheet. I don’t know if you got a chance to look at all this yet.

36 00:04:15.090 00:04:16.040 Zoran Selinger: Yes, yes.

37 00:04:16.519 00:04:17.509 Robert Tseng: You did? Okay.

38 00:04:17.769 00:04:20.919 Robert Tseng: Yeah, this is my first time looking at it. …

39 00:04:29.939 00:04:31.329 Robert Tseng: So…

40 00:04:37.789 00:04:48.829 Robert Tseng: Yeah, I think for when we meet with Allison later today, the most important thing would probably just to have a point of view on, like, what we should do about, …

41 00:04:49.299 00:05:00.119 Robert Tseng: Is it J4 to ads, Amplitude to ads, or both? What you’ve found is that Amplitude doesn’t give you everything you need for the ads, integration, like, things like…

42 00:05:00.589 00:05:05.859 Robert Tseng: First visit, sessions, kind of web properties don’t really exist.

43 00:05:05.959 00:05:07.059 Robert Tseng: I…

44 00:05:09.469 00:05:17.869 Robert Tseng: I mean, I think traditionally I’ve said that from Google Tag Manager, so I’ve never used only Amplitude to do that.

45 00:05:18.830 00:05:24.329 Zoran Selinger: Yeah, yeah, it’s very… it is uncommon. I’ve seen nothing online about this

46 00:05:24.630 00:05:32.310 Zoran Selinger: it being used this way. There’s absolutely nothing. I just couldn’t find anything. It’s not an intended use case.

47 00:05:32.410 00:05:35.400 Zoran Selinger: Yeah. … So…

48 00:05:36.810 00:05:50.720 Zoran Selinger: Yeah, and Google Ads, I mean, it’s very simple, it just seems to me… I have no… so, nothing’s been recorded at any point in time, so I have no proof that it was working at any point.

49 00:05:51.380 00:05:55.449 Zoran Selinger: So I have no proof of that, so I… we just have to ask them.

50 00:05:55.620 00:05:59.880 Zoran Selinger: Was this… was this connection working at some point or not?

51 00:06:00.490 00:06:01.130 Robert Tseng: Yeah.

52 00:06:01.330 00:06:15.949 Zoran Selinger: If… if the answer is no, then it’s probably that JSON key file. It’s… it’s very likely that… right now, it’s not working, it just… the error message points to, sounds like it’s some kind of formatting issue.

53 00:06:15.950 00:06:17.319 Robert Tseng: It’s a formatting issue.

54 00:06:17.700 00:06:22.979 Zoran Selinger: So that’s… okay, we can solve that pretty easily. if…

55 00:06:23.630 00:06:29.709 Zoran Selinger: just from knowing, because I’ve done a lot of click importing from the API,

56 00:06:30.410 00:06:41.620 Zoran Selinger: in my other work. Yep. And you really don’t need anything apart from Google Click ID and a correct timestamp. So, I don’t expect the system to make a mistake there.

57 00:06:41.880 00:06:47.659 Zoran Selinger: For Google Ads. So I, yeah, I see no reason for this not to work.

58 00:06:48.120 00:06:55.639 Zoran Selinger: There shouldn’t be anything complicated. We are collecting Google ClickID properly and mapping properly to… on the connection.

59 00:06:55.870 00:07:12.030 Zoran Selinger: for Google Ads, and we should be good there. There should be no issues. If there are issues, if the connection is working and we still don’t see anything, then it’s something to do with the timestamp, because that’s really the only two things.

60 00:07:12.220 00:07:15.559 Zoran Selinger: That, are relevant there. ….

61 00:07:17.720 00:07:18.070 Robert Tseng: Yeah.

62 00:07:18.310 00:07:23.010 Zoran Selinger: Need to figure out what, they, kind of… how…

63 00:07:23.500 00:07:39.550 Zoran Selinger: what they’re thinking. I see, like, this kind of implementation that they have has been… has been in place since February in that property. We have data, so I’m kind of surprised that they were just keeping it that way, and…

64 00:07:40.240 00:07:44.789 Zoran Selinger: Oh, kind of didn’t fix it. I see, earlier on, they had,

65 00:07:45.540 00:07:48.200 Zoran Selinger: They had more amplitude events imported.

66 00:07:48.600 00:07:51.190 Zoran Selinger: But it just did not stitch properly.

67 00:07:51.330 00:07:57.360 Zoran Selinger: Because I think the, it’s, it’s clear, yeah, we, we need, we need client-side,

68 00:07:57.590 00:07:58.739 Zoran Selinger: As well, there.

69 00:08:02.840 00:08:08.529 Zoran Selinger: I see no, also no nothing in the other ones.

70 00:08:09.150 00:08:10.810 Zoran Selinger: So I couldn’t confirm.

71 00:08:11.210 00:08:28.810 Zoran Selinger: that the amplitude events will work. I couldn’t confirm that, so I guess we’ll… we’ll just ask. So, if it worked for another property, we need to find the differences there, but I think there’s nothing like that. They have…

72 00:08:28.990 00:08:35.530 Zoran Selinger: It’s only this property that’s relevant for it. … in turn.

73 00:08:35.539 00:08:35.949 Robert Tseng: Yeah.

74 00:08:35.950 00:08:37.169 Zoran Selinger: Compliance.

75 00:08:37.549 00:08:47.199 Zoran Selinger: So I figured out, like, these events that they are naming as different, psycho… famous psychologists, right? …

76 00:08:48.120 00:08:58.159 Zoran Selinger: These are just, you know, events on the interactions on the website, different ones. I don’t know if there are any restrictions around

77 00:08:58.530 00:09:05.240 Zoran Selinger: You know, at least having First visit, session start, and PageO events.

78 00:09:06.030 00:09:11.329 Zoran Selinger: I hope that is… that’s not, … A problem with compliance.

79 00:09:12.060 00:09:17.750 Zoran Selinger: Because if that is a problem with compliance, I… we might be blocked there.

80 00:09:18.380 00:09:37.240 Robert Tseng: No, I mean, yeah, the compliance is pretty straightforward. Click IDs, session stitching, none of that matters. It’s just not passing PII data into GA4. So, we’re not sending, like, names, emails, phone number, nothing that’s personally identifying. We just have to hash all of that, or just not send it.

81 00:09:37.440 00:09:38.170 Zoran Selinger: Yeah, oh.

82 00:09:38.630 00:09:39.859 Robert Tseng: Yeah, that’s it.

83 00:09:40.580 00:09:44.070 Zoran Selinger: Okay, so I guess, yeah.

84 00:09:45.130 00:09:58.489 Zoran Selinger: if you think of anything else, let me know before the meeting, and… yeah, we’ll see, we’ll see what they say. I think we still lack a lot of background information from them.

85 00:09:58.710 00:10:14.289 Robert Tseng: Okay, so my understanding after reading this doc, they have two properties. This main one you already checked out, it hasn’t been working since February. They created this new one, this doesn’t really matter, like, it’s… they’re not using it. The one that only they’ve been using is this one.

86 00:10:14.430 00:10:22.979 Robert Tseng: And the events that they’ve been sending from Amplitude… I mean, I guess I’m looking at this doc, and it’s saying, like, you can…

87 00:10:23.170 00:10:27.640 Robert Tseng: basically use Amplitude like GTM, and…

88 00:10:27.890 00:10:36.930 Robert Tseng: send server-side events to J4. But we’re recommending, or you’re recommending now, that we should just…

89 00:10:37.710 00:10:46.039 Robert Tseng: set up, Google Tag, and… have… have GTM natively capture

90 00:10:46.250 00:10:49.809 Robert Tseng: Kind of, like, clicks and sessions or whatever.

91 00:10:50.030 00:10:53.510 Robert Tseng: … It’s not super clear to me….

92 00:10:53.510 00:10:53.979 Zoran Selinger: It seemed like.

93 00:10:53.980 00:10:58.699 Robert Tseng: you want to just circumvent amplitude, you just want to go GA4 directly into ads?

94 00:10:58.700 00:11:02.470 Zoran Selinger: Oh, no, not at all. So, these are two separate things.

95 00:11:02.470 00:11:03.060 Robert Tseng: Yeah.

96 00:11:03.060 00:11:10.149 Zoran Selinger: These are two separate things, so when I’m talking about GA4, I’m just talking about the connection between GA4 and amplitude.

97 00:11:10.420 00:11:11.110 Robert Tseng: Okay.

98 00:11:11.390 00:11:30.820 Zoran Selinger: Because I would, I would use just… when it comes to Google Ads and implemented, I would just use the native, native connection. I don’t see why that wouldn’t work, because it’s… that’s a really simple implementation. At least on the back end, I know the API very well, so that’s a simple one, really. That should work. Okay.

99 00:11:30.920 00:11:35.330 Zoran Selinger: So, yeah, I wouldn’t… I wouldn’t go through… through GA4 at all.

100 00:11:35.330 00:11:35.940 Robert Tseng: Okay.

101 00:11:36.240 00:11:42.410 Zoran Selinger: But still, GF4, we should have it on hand and been properly set up.

102 00:11:42.890 00:11:46.590 Zoran Selinger: So these are, yeah, two different things, two different things, completely.

103 00:11:46.800 00:11:47.580 Zoran Selinger: …

104 00:11:47.830 00:12:06.309 Zoran Selinger: I think Google Ads is fixable probably today, right? Yeah. We have a correct JSON file that can actually go through. I believe this will work. We don’t have many… we don’t have many settings there, it’s just mapping the Google Click ID, and there are, like, order…

105 00:12:06.310 00:12:22.339 Zoran Selinger: like, currency and all that, which we don’t need for… in our use case. We just need… we just need Google Click ID mapping, and that’s correct. They are collecting. I checked user profiles on… on Amplitude. We do have Google ClickIDs, so…

106 00:12:22.830 00:12:27.620 Zoran Selinger: We are good there. That should… that should… that should be fixable immediately.

107 00:12:29.110 00:12:32.410 Zoran Selinger: Yeah, but GF4 is a little bit more work there.

108 00:12:34.230 00:12:40.509 Robert Tseng: Okay, got it. Yeah, so yeah, so the ad stuff we can fix, yeah, I think that would be…

109 00:12:40.880 00:12:48.049 Robert Tseng: that’s what we would… I don’t know, is there… do we have to wait for her to fix it? Can we… can we do that now, before the call, so we can have that done?

110 00:12:48.050 00:12:50.339 Zoran Selinger: We need a service account.

111 00:12:50.340 00:12:50.860 Robert Tseng: Oh, okay.

112 00:12:51.610 00:13:02.760 Zoran Selinger: I mean, I can’t download the file that was already uploaded from the interface to correct… We can’t generate our own. So, we need that file, right?

113 00:13:03.110 00:13:03.730 Robert Tseng: Yeah.

114 00:13:03.880 00:13:09.520 Robert Tseng: … I think she made us both… Maybe we don’t…

115 00:13:09.960 00:13:13.490 Robert Tseng: invited as an admin… no, it’s only an amplitude.

116 00:13:13.490 00:13:15.510 Zoran Selinger: is it on GCP?

117 00:13:16.810 00:13:20.200 Robert Tseng: … yeah, I’m not entirely sure.

118 00:13:20.480 00:13:25.889 Zoran Selinger: Yeah, I’ll try, I’ll try, I’ll try my address, my brain forge.

119 00:13:26.010 00:13:29.110 Zoran Selinger: Andres… And I’ll try….

120 00:13:36.080 00:13:41.909 Robert Tseng: Yeah, if not, maybe we just ask them for it in the Slack, kind of, beforehand, they can just… they can share it with us, or…

121 00:13:42.070 00:13:47.580 Robert Tseng: I don’t think she’ll know how to get it, so that’s… that’s my… I was hoping we can go get it ourselves.

122 00:13:49.510 00:14:00.970 Zoran Selinger: Yeah, yeah, okay, so, on… on mine, it’s not there, and let’s see, for the… Okay…

123 00:14:04.420 00:14:07.159 Zoran Selinger: For our group address.

124 00:14:16.830 00:14:20.810 Zoran Selinger: I see we have access to no… yeah, no projects.

125 00:14:21.230 00:14:22.429 Zoran Selinger: here, either.

126 00:14:27.090 00:14:30.280 Zoran Selinger: So yeah, I don’t think we have access to the GCP.

127 00:14:34.180 00:14:34.800 Robert Tseng: Okay.

128 00:14:35.040 00:14:35.560 Zoran Selinger: Yeah.

129 00:14:35.950 00:14:50.630 Zoran Selinger: So if they… if they can share it, we can… I don’t know if we need to have sufficient permissions to… to create service accounts and download keys and all that, but I’m sure Adam will… will be able to do it.

130 00:14:52.220 00:14:53.760 Zoran Selinger: Even before the call.

131 00:14:53.970 00:15:00.479 Zoran Selinger: Just try a new… just try a new service account or new key file, and that’s it.

132 00:15:01.140 00:15:01.740 Robert Tseng: Yeah.

133 00:15:02.040 00:15:10.370 Robert Tseng: Okay, so you’ll… you’ll… we’ll address the ads thing. The GA4 solution, I think, yeah, I guess you can propose that as well.

134 00:15:10.480 00:15:15.520 Robert Tseng: Yeah, we’re gonna go with a hybrid approach, it seems like what we’re gonna do.

135 00:15:15.760 00:15:16.930 Robert Tseng: …

136 00:15:17.780 00:15:25.330 Robert Tseng: That will fix the ad connections, the event mapping discrepancies. You think that we’ll be able to address that with the hybrid approach?

137 00:15:25.600 00:15:33.760 Robert Tseng: Yeah, this stuff, I’ll speak to, because I’m still… that’s all purely amplitude things, and… Yeah, yeah.

138 00:15:34.310 00:15:47.490 Robert Tseng: And then the user stitching, I think, if we can add… if we could just touch on. Basically, I just want to be able to go through them, make sure that they feel comfortable with… I mean, yeah, that we’re all cleared on, like, on these… on these… kind of all these different sections, pretty much, so….

139 00:15:48.080 00:15:51.810 Zoran Selinger: Yeah, hopefully it looks fine, you said that yourself.

140 00:15:51.810 00:15:57.840 Robert Tseng: Yeah, seems like they want us to look at Azure when it gets hooked up, so… but that’s not gonna happen today, which is fine.

141 00:15:58.290 00:16:14.050 Zoran Selinger: Okay, cool. Okay, so I’ll recommend that hybrid approach. I’ll explain that, kind of, GI4 model, works with those, with those, kind of, necessary events that we… we don’t have when we have this, this approach. We can…

142 00:16:14.050 00:16:20.509 Zoran Selinger: We can simulate that, or we can just implement GTAG and let it do its work.

143 00:16:20.510 00:16:27.639 Zoran Selinger: If we don’t, we don’t have to implement every event there, through client-side, just

144 00:16:27.930 00:16:32.980 Zoran Selinger: Just the pages, so we have… we have something to stitch to, and that’s it.

145 00:16:33.590 00:16:35.090 Robert Tseng: Okay, that sounds good.

146 00:16:35.270 00:16:40.240 Zoran Selinger: I would recommend that, okay? Okay, we’ll… we’ll talk then. In the meantime, …

147 00:16:40.400 00:16:47.219 Zoran Selinger: If there’s anything, let me know. I’m gonna be away from the office for a little while, …

148 00:16:47.580 00:16:50.550 Zoran Selinger: But I’ll be back later tonight.

149 00:16:52.680 00:16:53.980 Robert Tseng: Okay, sounds good.

150 00:16:54.540 00:16:57.289 Zoran Selinger: Alright, thank you. Alright, talk to you later. Bye.