Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add analytics events for external links #2247

Merged
merged 4 commits into from
Jun 8, 2023
Merged

Conversation

obulat
Copy link
Contributor

@obulat obulat commented May 31, 2023

Fixes

Fixes #1078 by @dhruvkb

Description

This PR adds three closely-related analytics events:

  • EXTERNAL_LINK_CLICK
  • VISIT_CREATOR_LINK
  • VISIT_LICENSE_PAGE

The EXTERNAL_LINK_CLICK event is fired every time an external VLink is clicked, unless send-external-link-click-event prop is false. This prop is used to replace the EXTERNAL_LINK_CLICK event with other custom events such as GET_MEDIA, if necessary.

I've also added the analytics events to links in the copyable HTML media attribution statement:
Screenshot 2023-06-06 at 2 13 42 PM
Normally, clicking the creator link here should send VISIT_CREATOR_LINK event. However, it is impossible to get whether the link is the creator or title link from this HTML. I thought of using the heuristics of "if a link follows the word 'by'", but since the attribution HTML is translated, this is not reliable.

Testing Instructions

Run the app (just frontend/run dev) and try clicking external links (most of them have the "external link" icon next to them) everywhere in the app. In dev mode, you should see the events and their payloads in the console. Clicking on any given external link should send a single event, either the EXTERNAL_LINK_CLICK or a different custom event like GET_MEDIA.

Checklist

  • My pull request has a descriptive title (not a vague title likeUpdate index.md).
  • My pull request targets the default branch of the repository (main) or a parent feature branch.
  • My commit messages follow best practices.
  • My code follows the established code style of the repository.
  • I added or updated tests for the changes I made (if applicable).
  • I added or updated documentation (if applicable).
  • I tried running the project locally and verified that there are no visible errors.
  • I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

@obulat obulat self-assigned this May 31, 2023
@github-actions github-actions bot added the 🧱 stack: frontend Related to the Nuxt frontend label May 31, 2023
@openverse-bot openverse-bot added 🟧 priority: high Stalls work on the project or its dependents 🌟 goal: addition Addition of new feature 💻 aspect: code Concerns the software code in the repository labels May 31, 2023
@github-actions
Copy link

github-actions bot commented May 31, 2023

Size Change: +2.87 kB (0%)

Total Size: 846 kB

Filename Size Change
./frontend/.nuxt/dist/client/app.js 124 kB +167 B (0%)
./frontend/.nuxt/dist/client/app.modern.js 115 kB +185 B (0%)
./frontend/.nuxt/dist/client/components/v-all-results-grid.js 5.78 kB +24 B (0%)
./frontend/.nuxt/dist/client/components/v-all-results-grid.modern.js 5.64 kB +22 B (0%)
./frontend/.nuxt/dist/client/components/v-audio-track.js 5.36 kB +20 B (0%)
./frontend/.nuxt/dist/client/components/v-audio-track.modern.js 5.3 kB +21 B (0%)
./frontend/.nuxt/dist/client/components/v-content-link.js 1.06 kB +21 B (+2%)
./frontend/.nuxt/dist/client/components/v-content-link.modern.js 1.06 kB +19 B (+2%)
./frontend/.nuxt/dist/client/components/v-content-report-form.js 3.33 kB +21 B (+1%)
./frontend/.nuxt/dist/client/components/v-content-report-form.modern.js 3.21 kB +18 B (+1%)
./frontend/.nuxt/dist/client/components/v-content-report-popover.js 3.79 kB +17 B (0%)
./frontend/.nuxt/dist/client/components/v-content-report-popover.modern.js 3.67 kB +17 B (0%)
./frontend/.nuxt/dist/client/components/v-copy-license.js 2.29 kB +199 B (+10%) ⚠️
./frontend/.nuxt/dist/client/components/v-copy-license.modern.js 2.26 kB +197 B (+10%) ⚠️
./frontend/.nuxt/dist/client/components/v-full-layout.js 1.57 kB +16 B (+1%)
./frontend/.nuxt/dist/client/components/v-full-layout.modern.js 1.57 kB +16 B (+1%)
./frontend/.nuxt/dist/client/components/v-media-license.js 930 B +102 B (+12%) ⚠️
./frontend/.nuxt/dist/client/components/v-media-license.modern.js 939 B +102 B (+12%) ⚠️
./frontend/.nuxt/dist/client/components/v-media-reuse.js 2.94 kB +260 B (+10%) ⚠️
./frontend/.nuxt/dist/client/components/v-media-reuse.modern.js 2.92 kB +263 B (+10%) ⚠️
./frontend/.nuxt/dist/client/pages/audio/_id/index.js 6.31 kB +288 B (+5%) 🔍
./frontend/.nuxt/dist/client/pages/audio/_id/index.modern.js 6.09 kB +287 B (+5%) 🔍
./frontend/.nuxt/dist/client/pages/image/_id/index.js 7.3 kB +261 B (+4%)
./frontend/.nuxt/dist/client/pages/image/_id/index.modern.js 7.06 kB +293 B (+4%)
./frontend/.nuxt/dist/client/pages/image/_id/report.js 5.01 kB +17 B (0%)
./frontend/.nuxt/dist/client/pages/image/_id/report.modern.js 4.75 kB +17 B (0%)
ℹ️ View Unchanged
Filename Size Change
./frontend/.nuxt/dist/client/234.js 272 B 0 B
./frontend/.nuxt/dist/client/234.modern.js 277 B 0 B
./frontend/.nuxt/dist/client/235.js 1.85 kB 0 B
./frontend/.nuxt/dist/client/commons/app.js 90.2 kB -3 B (0%)
./frontend/.nuxt/dist/client/commons/app.modern.js 80.7 kB 0 B
./frontend/.nuxt/dist/client/commons/components/v-search-grid/pages/search.js 5.18 kB 0 B
./frontend/.nuxt/dist/client/commons/components/v-search-grid/pages/search.modern.js 5.62 kB 0 B
./frontend/.nuxt/dist/client/components/loading-icon.js 764 B 0 B
./frontend/.nuxt/dist/client/components/loading-icon.modern.js 768 B 0 B
./frontend/.nuxt/dist/client/components/table-sort-icon.js 514 B 0 B
./frontend/.nuxt/dist/client/components/table-sort-icon.modern.js 519 B 0 B
./frontend/.nuxt/dist/client/components/v-audio-cell.js 422 B 0 B
./frontend/.nuxt/dist/client/components/v-audio-cell.modern.js 425 B 0 B
./frontend/.nuxt/dist/client/components/v-audio-details.js 1.81 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-details.modern.js 1.77 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-audio-track-skeleton.modern.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.js 636 B +1 B (0%)
./frontend/.nuxt/dist/client/components/v-back-to-search-results-link.modern.js 644 B 0 B
./frontend/.nuxt/dist/client/components/v-bone.js 689 B 0 B
./frontend/.nuxt/dist/client/components/v-bone.modern.js 693 B 0 B
./frontend/.nuxt/dist/client/components/v-box-layout.js 1.28 kB 0 B
./frontend/.nuxt/dist/client/components/v-box-layout.modern.js 1.27 kB 0 B
./frontend/.nuxt/dist/client/components/v-content-page.js 524 B 0 B
./frontend/.nuxt/dist/client/components/v-content-page.modern.js 526 B 0 B
./frontend/.nuxt/dist/client/components/v-content-report-button.js 492 B 0 B
./frontend/.nuxt/dist/client/components/v-content-report-button.modern.js 497 B 0 B
./frontend/.nuxt/dist/client/components/v-copy-button.js 3.99 kB 0 B
./frontend/.nuxt/dist/client/components/v-copy-button.modern.js 4 kB 0 B
./frontend/.nuxt/dist/client/components/v-dmca-notice.js 793 B 0 B
./frontend/.nuxt/dist/client/components/v-dmca-notice.modern.js 799 B 0 B
./frontend/.nuxt/dist/client/components/v-error-image.js 2.61 kB 0 B
./frontend/.nuxt/dist/client/components/v-error-image.modern.js 2.58 kB +1 B (0%)
./frontend/.nuxt/dist/client/components/v-error-section.js 372 B 0 B
./frontend/.nuxt/dist/client/components/v-error-section.modern.js 376 B 0 B
./frontend/.nuxt/dist/client/components/v-external-search-form.js 1.89 kB +1 B (0%)
./frontend/.nuxt/dist/client/components/v-external-search-form.modern.js 1.87 kB 0 B
./frontend/.nuxt/dist/client/components/v-external-source-list.js 895 B 0 B
./frontend/.nuxt/dist/client/components/v-external-source-list.modern.js 897 B +1 B (0%)
./frontend/.nuxt/dist/client/components/v-grid-skeleton.js 1.62 kB 0 B
./frontend/.nuxt/dist/client/components/v-grid-skeleton.modern.js 1.62 kB 0 B
./frontend/.nuxt/dist/client/components/v-home-gallery.js 4.92 kB -1 B (0%)
./frontend/.nuxt/dist/client/components/v-home-gallery.modern.js 4.9 kB 0 B
./frontend/.nuxt/dist/client/components/v-homepage-content.js 1.77 kB 0 B
./frontend/.nuxt/dist/client/components/v-homepage-content.modern.js 1.74 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-carousel.js 4.73 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-carousel.modern.js 4.7 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-cell.js 1.66 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-cell.modern.js 1.65 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-details.js 1.43 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-details.modern.js 1.41 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-grid.js 3.9 kB 0 B
./frontend/.nuxt/dist/client/components/v-image-grid.modern.js 3.78 kB 0 B
./frontend/.nuxt/dist/client/components/v-license-tab-panel.js 644 B +1 B (0%)
./frontend/.nuxt/dist/client/components/v-license-tab-panel.modern.js 649 B 0 B
./frontend/.nuxt/dist/client/components/v-load-more.js 844 B 0 B
./frontend/.nuxt/dist/client/components/v-load-more.modern.js 742 B 0 B
./frontend/.nuxt/dist/client/components/v-media-tag.js 416 B 0 B
./frontend/.nuxt/dist/client/components/v-media-tag.modern.js 420 B 0 B
./frontend/.nuxt/dist/client/components/v-modal.js 1.01 kB 0 B
./frontend/.nuxt/dist/client/components/v-modal.modern.js 996 B 0 B
./frontend/.nuxt/dist/client/components/v-no-results.js 856 B 0 B
./frontend/.nuxt/dist/client/components/v-no-results.modern.js 858 B 0 B
./frontend/.nuxt/dist/client/components/v-radio.js 1 kB 0 B
./frontend/.nuxt/dist/client/components/v-radio.modern.js 1.01 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-audio.js 1.29 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-audio.modern.js 1.29 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-images.js 1.1 kB 0 B
./frontend/.nuxt/dist/client/components/v-related-images.modern.js 1.1 kB 0 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.js 977 B 0 B
./frontend/.nuxt/dist/client/components/v-report-desc-form.modern.js 980 B 0 B
./frontend/.nuxt/dist/client/components/v-row-layout.js 1.68 kB 0 B
./frontend/.nuxt/dist/client/components/v-row-layout.modern.js 1.68 kB 0 B
./frontend/.nuxt/dist/client/components/v-scroll-button.js 890 B 0 B
./frontend/.nuxt/dist/client/components/v-scroll-button.modern.js 892 B 0 B
./frontend/.nuxt/dist/client/components/v-search-grid.js 6.9 kB 0 B
./frontend/.nuxt/dist/client/components/v-search-grid.modern.js 6.25 kB 0 B
./frontend/.nuxt/dist/client/components/v-search-results-title.js 618 B 0 B
./frontend/.nuxt/dist/client/components/v-search-results-title.modern.js 621 B 0 B
./frontend/.nuxt/dist/client/components/v-server-timeout.js 300 B 0 B
./frontend/.nuxt/dist/client/components/v-server-timeout.modern.js 303 B 0 B
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.js 1.02 kB 0 B
./frontend/.nuxt/dist/client/components/v-sketch-fab-viewer.modern.js 914 B 0 B
./frontend/.nuxt/dist/client/components/v-snackbar.js 1.16 kB 0 B
./frontend/.nuxt/dist/client/components/v-snackbar.modern.js 1.17 kB 0 B
./frontend/.nuxt/dist/client/components/v-sources-table.js 15.1 kB 0 B
./frontend/.nuxt/dist/client/components/v-sources-table.modern.js 15.2 kB 0 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.js 306 B 0 B
./frontend/.nuxt/dist/client/components/v-warning-suppressor.modern.js 311 B 0 B
./frontend/.nuxt/dist/client/pages/about.js 1.39 kB 0 B
./frontend/.nuxt/dist/client/pages/about.modern.js 1.4 kB 0 B
./frontend/.nuxt/dist/client/pages/external-sources.js 1.55 kB 0 B
./frontend/.nuxt/dist/client/pages/external-sources.modern.js 1.56 kB 0 B
./frontend/.nuxt/dist/client/pages/feedback.js 1.34 kB 0 B
./frontend/.nuxt/dist/client/pages/feedback.modern.js 1.34 kB 0 B
./frontend/.nuxt/dist/client/pages/index.js 7.03 kB -1 B (0%)
./frontend/.nuxt/dist/client/pages/index.modern.js 6.96 kB -1 B (0%)
./frontend/.nuxt/dist/client/pages/preferences.js 1.3 kB 0 B
./frontend/.nuxt/dist/client/pages/preferences.modern.js 1.3 kB 0 B
./frontend/.nuxt/dist/client/pages/privacy.js 1.23 kB 0 B
./frontend/.nuxt/dist/client/pages/privacy.modern.js 1.24 kB 0 B
./frontend/.nuxt/dist/client/pages/search-help.js 1.59 kB 0 B
./frontend/.nuxt/dist/client/pages/search-help.modern.js 1.58 kB 0 B
./frontend/.nuxt/dist/client/pages/search.js 2.2 kB 0 B
./frontend/.nuxt/dist/client/pages/search.modern.js 2.04 kB 0 B
./frontend/.nuxt/dist/client/pages/search/audio.js 3.67 kB 0 B
./frontend/.nuxt/dist/client/pages/search/audio.modern.js 3.56 kB 0 B
./frontend/.nuxt/dist/client/pages/search/image.js 545 B 0 B
./frontend/.nuxt/dist/client/pages/search/image.modern.js 549 B 0 B
./frontend/.nuxt/dist/client/pages/search/index.js 442 B 0 B
./frontend/.nuxt/dist/client/pages/search/index.modern.js 448 B 0 B
./frontend/.nuxt/dist/client/pages/search/model-3d.js 243 B 0 B
./frontend/.nuxt/dist/client/pages/search/model-3d.modern.js 246 B 0 B
./frontend/.nuxt/dist/client/pages/search/search-page.types.js 266 B 0 B
./frontend/.nuxt/dist/client/pages/search/search-page.types.modern.js 271 B 0 B
./frontend/.nuxt/dist/client/pages/search/video.js 239 B 0 B
./frontend/.nuxt/dist/client/pages/search/video.modern.js 243 B 0 B
./frontend/.nuxt/dist/client/pages/sources.js 1.51 kB 0 B
./frontend/.nuxt/dist/client/pages/sources.modern.js 1.51 kB 0 B
./frontend/.nuxt/dist/client/runtime.js 2.71 kB 0 B
./frontend/.nuxt/dist/client/runtime.modern.js 2.72 kB 0 B
./frontend/.nuxt/dist/client/vendors/app.js 65.2 kB 0 B
./frontend/.nuxt/dist/client/vendors/app.modern.js 64.4 kB -2 B (0%)

compressed-size-action

@obulat obulat force-pushed the add/EXTERNAL_LINK_CLICK_event branch from 267be91 to 66afe98 Compare June 6, 2023 10:55
@obulat obulat changed the title Add/external link click event Add analytics events for external links Jun 6, 2023
@obulat obulat marked this pull request as ready for review June 6, 2023 11:46
@obulat obulat requested a review from a team as a code owner June 6, 2023 11:46
@obulat obulat requested review from AetherUnbound and dhruvkb June 6, 2023 11:46
@zackkrida zackkrida self-requested a review June 6, 2023 15:48
Copy link
Collaborator

@AetherUnbound AetherUnbound left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this and saw the events locally, and the get media action sent the GET_MEDIA event as expected! Your explanation around not adding an event to the attribution text section makes sense.

@obulat obulat mentioned this pull request Jun 7, 2023
26 tasks
Copy link
Member

@zackkrida zackkrida left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sweeeeet

@obulat obulat force-pushed the add/EXTERNAL_LINK_CLICK_event branch from 036eb7d to d8459af Compare June 8, 2023 08:42
@obulat obulat merged commit 49bafda into main Jun 8, 2023
@obulat obulat deleted the add/EXTERNAL_LINK_CLICK_event branch June 8, 2023 09:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💻 aspect: code Concerns the software code in the repository 🌟 goal: addition Addition of new feature 🟧 priority: high Stalls work on the project or its dependents 🧱 stack: frontend Related to the Nuxt frontend
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

Analytics event: EXTERNAL_LINK_CLICK
4 participants