Skip to content

Commit a6faf37

Browse files
tgberkeleyTom Gotsman
andauthored
add google conversions (#48)
* add google conversions * working update * small fixes * small fix 2 * fix ruff format --------- Co-authored-by: Tom Gotsman <[email protected]>
1 parent 47a0503 commit a6faf37

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

reflex_ui/blocks/demo_form.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,8 @@ async def on_submit(self, form_data: dict[str, Any]):
275275
yield is_sending_demo_form.push(True)
276276
# Send to PostHog and Slack for all submissions
277277
yield DemoFormStateUI.send_demo_event(form_data)
278+
# Send data to Google Ads conversion tracking
279+
yield rx.call_script("gtag_report_conversion()")
278280

279281
notes_content = f"""
280282
Name: {form_data.get("first_name", "")} {form_data.get("last_name", "")}

reflex_ui/blocks/telemetry/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from .clearbit import get_clearbit_trackers
44
from .common_room import get_common_room_trackers, identify_common_room_user
5-
from .google import get_google_analytics_trackers
5+
from .google import get_google_analytics_trackers, gtag_report_conversion
66
from .koala import get_koala_trackers
77
from .posthog import get_posthog_trackers
88
from .rb2b import get_rb2b_trackers
@@ -14,5 +14,6 @@
1414
"get_koala_trackers",
1515
"get_posthog_trackers",
1616
"get_rb2b_trackers",
17+
"gtag_report_conversion",
1718
"identify_common_room_user",
1819
]

reflex_ui/blocks/telemetry/google.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,26 @@ def get_google_analytics_trackers(
3434
rx.script(src=GTAG_SCRIPT_URL_TEMPLATE.format(tracking_id=tracking_id)),
3535
rx.script(GTAG_SCRIPT_TEMPLATE.format(tracking_id=tracking_id)),
3636
]
37+
38+
39+
def gtag_report_conversion(conversion_id_and_label: str) -> rx.Component:
40+
"""Generate a script component to report a conversion to Google Ads.
41+
42+
Args:
43+
conversion_id_and_label: The conversion label for the Google Ads conversion.
44+
45+
Returns:
46+
rx.Component: Script component to report the conversion.
47+
"""
48+
return rx.script(
49+
f"""function gtag_report_conversion() {{
50+
var callback = function () {{
51+
console.log('Conversion recorded!');
52+
}};
53+
gtag('event', 'conversion', {{
54+
'send_to': '{conversion_id_and_label}',
55+
'event_callback': callback
56+
}});
57+
return false;
58+
}}"""
59+
)

0 commit comments

Comments
 (0)