From f8df0e550cd68c023fc2b8020867c363aa371d90 Mon Sep 17 00:00:00 2001 From: Ben Halpern Date: Fri, 10 May 2024 18:05:44 -0400 Subject: [PATCH] New Digest field test (#20939) --- app/mailers/digest_mailer.rb | 1 - .../email_digest_article_collector.rb | 20 ++++++- .../digest_mailer/digest_email.html.erb | 60 +------------------ config/field_test.yml | 25 ++++++++ 4 files changed, 47 insertions(+), 59 deletions(-) diff --git a/app/mailers/digest_mailer.rb b/app/mailers/digest_mailer.rb index c992be1aa..08c1c9bf5 100644 --- a/app/mailers/digest_mailer.rb +++ b/app/mailers/digest_mailer.rb @@ -7,7 +7,6 @@ class DigestMailer < ApplicationMailer @billboards = params[:billboards] @unsubscribe = generate_unsubscribe_token(@user.id, :email_digest_periodic) - @article_design_variant = field_test(:digest_articles_design_05_02, participant: @user) subject = generate_title # set sendgrid category in the header using smtp api diff --git a/app/services/email_digest_article_collector.rb b/app/services/email_digest_article_collector.rb index 73ea46acd..75b8ee586 100644 --- a/app/services/email_digest_article_collector.rb +++ b/app/services/email_digest_article_collector.rb @@ -12,7 +12,25 @@ class EmailDigestArticleCollector def articles_to_send # rubocop:disable Metrics/BlockLength - order = Arel.sql("((score * (feed_success_score + 0.1)) - clickbait_score) DESC") + order_variant = field_test(:digest_article_ordering_05_09, participant: @user) + order = case order_variant + when "base" + Arel.sql("((score * (feed_success_score + 0.1)) - clickbait_score) DESC") + when "more_weight_on_feed_success" + Arel.sql("((score * (feed_success_score + 0.2)) - clickbait_score) DESC") + when "much_more_weight_on_feed_success" + Arel.sql("((score * (feed_success_score + 0.3)) - clickbait_score) DESC") + when "more_weight_on_clickbait" + Arel.sql("((score * (feed_success_score + 0.1)) - (clickbait_score * 0.5)) DESC") + when "much_more_weight_on_clickbait" + Arel.sql("((score * (feed_success_score + 0.1)) - (clickbait_score * 0.8)) DESC") + when "more_weight_on_comments" + Arel.sql("((score * (feed_success_score + 0.1)) - clickbait_score + comment_score) DESC") + when "much_more_weight_on_comments" + Arel.sql("((score * (feed_success_score + 0.1)) - clickbait_score + (comment_score * 2)) DESC") + else + Arel.sql("((score * (feed_success_score + 0.1)) - clickbait_score) DESC") + end instrument ARTICLES_TO_SEND, tags: { user_id: @user.id } do return [] unless should_receive_email? diff --git a/app/views/mailers/digest_mailer/digest_email.html.erb b/app/views/mailers/digest_mailer/digest_email.html.erb index b50aa9ac5..fc381f862 100644 --- a/app/views/mailers/digest_mailer/digest_email.html.erb +++ b/app/views/mailers/digest_mailer/digest_email.html.erb @@ -34,67 +34,13 @@ <% @articles.each_with_index do |article, i| %> - px 2px 0px; text-align: left;"> - <% case @article_design_variant %> - <% when "base" %> + px 0px 0px; text-align: left;"> +
<%= article.title.strip %>

<%= truncate(article.description, length: 180) %>

- <% when "base_with_user" %> - <%= article.title.strip %> - <% if article.cached_user.present? %> -

- <%= article.cached_user.name %> logo - <%= article.cached_user.name %> -

- <% end %> -

- <%= truncate(article.description, length: 180) %> -

- <% when "base_with_tags" %> - <%= article.title.strip %> -

- <% article.decorate.cached_tag_list_array.each do |tag| %> - #<%= tag %> - <% end %> -

-

- <%= truncate(article.description, length: 180) %> -

- <% when "border" %> -
- <%= article.title.strip %> -

- <%= truncate(article.description, length: 180) %> -

-
- <% when "border_with_user" %> -
- <%= article.title.strip %> - <% if article.cached_user.present? %> -

- <%= article.cached_user.name %> logo - <%= article.cached_user.name %> -

- <% end %> -

- <%= truncate(article.description, length: 180) %> -

-
- <% when "border_with_tags" %> -
- <%= article.title.strip %> -

- <% article.decorate.cached_tag_list_array.each do |tag| %> - #<%= tag %> - <% end %> -

-

- <%= truncate(article.description, length: 180) %> -

-
- <% end %> +
<% end %> diff --git a/config/field_test.yml b/config/field_test.yml index f6459464a..2f7bdb7c0 100644 --- a/config/field_test.yml +++ b/config/field_test.yml @@ -27,8 +27,33 @@ ################################################################################ ################################################################################ experiments: + digest_article_ordering_05_09: + started_at: 2024-05-09 + variants: + - base + - more_weight_on_feed_success + - much_more_weight_on_feed_success + - more_weight_on_clickbait + - much_more_weight_on_clickbait + - more_weight_on_comments + - much_more_weight_on_comments + weights: + - 40 + - 10 + - 10 + - 10 + - 10 + - 10 + - 10 + goals: + - user_creates_pageview + - user_creates_article_reaction + - user_views_pages_on_at_least_two_different_days_within_a_week + - user_views_pages_on_at_least_four_different_days_within_a_week digest_articles_design_05_02: started_at: 2024-05-02 + ended_at: 2024-05-09 + winner: border variants: - base - base_with_user