Slide 1

Slide 1 text

A/B testing GTM&GA vs Firebase @ara_tack 2016/06/17

Slide 2

Slide 2 text

About Me ʢߥ໦ ୎ʣ @ara_tack FURYU Corporation.

Slide 3

Slide 3 text

A/B testing

Slide 4

Slide 4 text

A/B testing How to test on mobile app? • Google Tag Manager & Google Analytics • Firebase (Remote Config & Analytics) ←New!

Slide 5

Slide 5 text

GTM&GA vs Firebase Compare about : • Setting on web console • Implementation on Android Studio • Performing analytics

Slide 6

Slide 6 text

Setting on web console

Slide 7

Slide 7 text

GTM & GA

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

GTM & GA You need to set: • Test name • Settings for linking GA • GA account • GA property • GA view • Purpose of test • Patterns • Pattern name • key and value

Slide 10

Slide 10 text

• Options • Targeting user (%) • Statistical threshold (%) • Period of test • The pattern fixed when test finished • Trigger of starting test

Slide 11

Slide 11 text

Firebase Remote Config

Slide 12

Slide 12 text

Firebase Remote Config You need to set: • Parameter ʢkey and valueʣ • Condition • User (random %)

Slide 13

Slide 13 text

Implementation on Android Studio

Slide 14

Slide 14 text

GTM & GA // Initializing TagManager tagManager = TagManager.getInstance(context); PendingResult pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.gtm_default_container); pending.setResultCallback(new ResultCallback() { @Override public void onResult(ContainerHolder containerHolder) { ContainerHolderSingleton.setContainerHolder(containerHolder); if (!containerHolder.getStatus().isSuccess()) { Log.e(TAG, "failure loading container"); return; } startMainActivity(); } }, 2, TimeUnit.SECONDS); // Getting A/B value Container c = ContainerHolderSingleton.getContainerHolder().getContainer(); String pattern = c.getString(“pattern”);

Slide 15

Slide 15 text

Firebase Remote Config // Initializing final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance(); remoteConfig.setDefaults(R.xml.remote_config_defaults); remoteConfig.fetch().addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { Log.d(TAG, "Fetch Succeeded"); remoteConfig.activateFetched(); } else { Log.e(TAG, "Fetch failed", task.getException()); } startMainActivity(); } }); // Getting A/B value String pattern = FirebaseRemoteConfig.getInstance().getString(“pattern”);

Slide 16

Slide 16 text

Performing analytics

Slide 17

Slide 17 text

GTM & GA • GTM send whether the session is A or B. • GA calculates conversion rate of each pattern and probability that B is superior to A. Google Analytics Console

Slide 18

Slide 18 text

Firebase Remote Config & Firebase Analytics • You need to send whether the session is A or B. • You need to calculate conversion rate and probability that B is superior to A. // Adding custom parameter when sending events Bundle params = new Bundle(); params.putString(“test_pattern”, pattern); // add A or B FirebaseAnalytics.getInstance(context).logEvent(“button_tapped”, params);

Slide 19

Slide 19 text

Conclusion Setting on web console Firebase is simpler than GTM&GA. Implementation on Android Studio Firebase is similar to GTM&GA. Performing analytics Firebase need to implementation of analytics.