A/B test whether showing the price is good or not

pull/708/head
tobspr 4 years ago
parent 8b7c0a91cd
commit 1c88b99de3

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@ -16,6 +16,7 @@
grid-template-rows: #{D(40px)}; grid-template-rows: #{D(40px)};
align-items: center; align-items: center;
} }
.lowerBar { .lowerBar {
width: 100%; width: 100%;
display: flex; display: flex;
@ -57,10 +58,7 @@
@include S(margin, 0); @include S(margin, 0);
@include S(width, 180px); @include S(width, 180px);
@include S(height, 40px); @include S(height, 40px);
& { background: #171a23 center center / contain no-repeat;
/* @load-async */
background: #171a23 uiResource("get_on_steam.png") center center / contain no-repeat;
}
@include S(border-radius, $globalBorderRadius); @include S(border-radius, $globalBorderRadius);
} }

@ -75,3 +75,17 @@ $languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW
background-image: uiResource("languages/#{$language}.svg") !important; background-image: uiResource("languages/#{$language}.svg") !important;
} }
} }
/*
PRICE
*/
.steam_1_pr {
/* @load-async */
background-image: uiResource("get_on_steam_with_price.png") !important;
}
.steam_2_npr {
/* @load-async */
background-image: uiResource("get_on_steam.png") !important;
}

@ -133,10 +133,7 @@
width: 100%; width: 100%;
@include S(height, 40px); @include S(height, 40px);
@include S(width, 180px); @include S(width, 180px);
& { background: #171a23 center center / contain no-repeat;
/* @load-async */
background: #171a23 uiResource("get_on_steam.png") center center / contain no-repeat;
}
overflow: hidden; overflow: hidden;
display: block; display: block;
text-indent: -999em; text-indent: -999em;

@ -25,6 +25,8 @@ export const THIRDPARTY_URLS = {
standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/", standaloneStorePage: "https://store.steampowered.com/app/1318690/shapezio/",
}; };
export const A_B_TESTING_LINK_TYPE = Math.random() > 0.5 ? "steam_1_pr" : "steam_2_npr";
export const globalConfig = { export const globalConfig = {
// Size of a single tile in Pixels. // Size of a single tile in Pixels.
// NOTICE: Update webpack.production.config too! // NOTICE: Update webpack.production.config too!

@ -1,4 +1,4 @@
import { THIRDPARTY_URLS } from "../../../core/config"; import { A_B_TESTING_LINK_TYPE, THIRDPARTY_URLS } from "../../../core/config";
import { InputReceiver } from "../../../core/input_receiver"; import { InputReceiver } from "../../../core/input_receiver";
import { makeDiv } from "../../../core/utils"; import { makeDiv } from "../../../core/utils";
import { T } from "../../../translations"; import { T } from "../../../translations";
@ -33,16 +33,17 @@ export class HUDStandaloneAdvantages extends BaseHUDPart {
</div> </div>
<div class="lowerBar"> <div class="lowerBar">
<button class="steamLinkButton"> <button class="steamLinkButton ${A_B_TESTING_LINK_TYPE}"></button>
<button class="otherCloseButton">${T.ingame.standaloneAdvantages.no_thanks}</button> <button class="otherCloseButton">${T.ingame.standaloneAdvantages.no_thanks}</button>
</button>
</div> </div>
` `
); );
this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => { this.trackClicks(this.contentDiv.querySelector("button.steamLinkButton"), () => {
this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam"); this.root.app.analytics.trackUiClick("standalone_advantage_visit_steam");
this.root.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=savs"); this.root.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=savs&prc=" + A_B_TESTING_LINK_TYPE
);
this.close(); this.close();
}); });
this.trackClicks(this.contentDiv.querySelector("button.otherCloseButton"), () => { this.trackClicks(this.contentDiv.querySelector("button.otherCloseButton"), () => {

@ -1,6 +1,6 @@
import { GameState } from "../core/game_state"; import { GameState } from "../core/game_state";
import { cachebust } from "../core/cachebust"; import { cachebust } from "../core/cachebust";
import { globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config"; import { A_B_TESTING_LINK_TYPE, globalConfig, IS_DEMO, THIRDPARTY_URLS } from "../core/config";
import { import {
makeDiv, makeDiv,
makeButtonElement, makeButtonElement,
@ -52,7 +52,7 @@ export class MainMenuState extends GameState {
<p>${T.demoBanners.intro}</p> <p>${T.demoBanners.intro}</p>
<a href="#" class="steamLink" target="_blank">Get the shapez.io standalone!</a> <a href="#" class="steamLink ${A_B_TESTING_LINK_TYPE}" target="_blank">Get the shapez.io standalone!</a>
`; `;
return ` return `
@ -311,8 +311,11 @@ export class MainMenuState extends GameState {
} }
onSteamLinkClicked() { onSteamLinkClicked() {
this.app.analytics.trackUiClick("main_menu_steam_link_2"); this.app.analytics.trackUiClick("main_menu_steam_link_" + A_B_TESTING_LINK_TYPE);
this.app.platformWrapper.openExternalLink(THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2"); this.app.platformWrapper.openExternalLink(
THIRDPARTY_URLS.standaloneStorePage + "?ref=mmsl2&prc=" + A_B_TESTING_LINK_TYPE
);
return false; return false;
} }

@ -137,7 +137,7 @@ demoBanners:
# This is the "advertisement" shown in the main menu and other various places # This is the "advertisement" shown in the main menu and other various places
title: Demo Version title: Demo Version
intro: >- intro: >-
Get the standalone to unlock all features! Get the full game to unlock all features and content!
mainMenu: mainMenu:
play: Play play: Play

Loading…
Cancel
Save