Upgrade to Pro — share decks privately, control downloads, hide ads and more …

A/B testing GTM&GA vs Firebase

A/B testing GTM&GA vs Firebase

2016/06/17 umeda.apk #1

C49eed1cf04caeb4de645d6d9117708d?s=128

takuaraki

June 20, 2016
Tweet

Transcript

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

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

  3. A/B testing

  4. A/B testing How to test on mobile app? • Google

    Tag Manager & Google Analytics • Firebase (Remote Config & Analytics) ←New!
  5. GTM&GA vs Firebase Compare about : • Setting on web

    console • Implementation on Android Studio • Performing analytics
  6. Setting on web console

  7. GTM & GA

  8. None
  9. 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
  10. • Options • Targeting user (%) • Statistical threshold (%)

    • Period of test • The pattern fixed when test finished • Trigger of starting test
  11. Firebase Remote Config

  12. Firebase Remote Config You need to set: • Parameter ʢkey

    and valueʣ • Condition • User (random %)
  13. Implementation on Android Studio

  14. GTM & GA // Initializing TagManager tagManager = TagManager.getInstance(context); PendingResult<ContainerHolder>

    pending = tagManager.loadContainerPreferNonDefault(CONTAINER_ID, R.raw.gtm_default_container); pending.setResultCallback(new ResultCallback<ContainerHolder>() { @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”);
  15. Firebase Remote Config // Initializing final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();

    remoteConfig.setDefaults(R.xml.remote_config_defaults); remoteConfig.fetch().addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> 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”);
  16. Performing analytics

  17. 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
  18. 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);
  19. 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.