Это мы, опилки

Привет, меня зовут Евгений. Я тут пишу про разные штуки, которые мне интересны.

“Autocheckout” и “Online Wallet” в Google Chrome

TL;DR: В Google Chrome появится фича, для хранения платежных данных на стороне Гугла и быстрого оформления заказов “в один клик” в магазинах.


Когда иcкал в багтрекере Chromium кое-какой баг, наткнулся на cледы разрабатываемой функциональнсоти под именем “Autocheckout” или “Online Wallet”. Cтало интересно. Немного исследования и картинка прояснилась.

В комментариях к коммитам и коду есть точные указания на то, как фича будет работать.

Общие шаги

wallet_client.h, revision=187075

/WalletClient is responsible for making calls to the Online Wallet backend on
the user’s behalf. The normal flow for using this class is as follows:
1) GetWalletItems should be called to retrieve the user’s Wallet.
a) If the user does not have a Wallet, they must AcceptLegalDocuments and
SaveInstrumentAndAddress before continuing.
b) If the user has not acccepte the most recent legal documents for
Wallet, they must AcceptLegalDocuments.

2) The user then chooses what instrument and shipping address to use for the
current transaction.
a) If they choose an instrument with a zip code only address, the billing
address will need to be updated using UpdateInstrument.
b) The user may also choose to add a new instrument or address using
SaveAddress, SaveInstrument, or SaveInstrumentAndAddress.

3) Once the user has selected the backing instrument and shipping address
for this transaction, a FullWallet with the fronting card is generated
using GetFullWallet.
a) GetFullWallet may return a Risk challenge for the user. In that case,
the user will need to verify who they are by authenticating their
chosen backing instrument through AuthenticateInstrument

4) If the user initiated Autocheckout, SendAutocheckoutStatus to notify
Online Wallet of the status flow to record various metrics.

Revision 175388

Adds wallet::RequiredAction for when we start interacting with Online Wallet. Currently supported actions are: - create a wallet account
- accept a Terms of Service
- sign in for some reason
- update an expiration date
- [re-]enter a CVC
- re-validate the current client-side form data (as it failed on the server)
- upgrade minimal address

Cохранение адреса и кредитки

Revision 177814

Implementing SaveToWallet in the Google Wallet client.
-Adds WalletClient::SaveAddress to save new shipping addresses
-Adds WalletClient::SaveInstruemnt to save new payment instruments
-Adds WalletClient::SaveInstrumentAndAddress
-Adds Instrument to represent payment instruments to be saved
-Adds ability to turn an Address into a DictionaryValue

Revision 176142

Implementation of sensitive card information escrowing

Про то, как будет показывается приглашение к Autocheckout

Issue 177781

Autocheckout’s bubble: Ideally I think we need to show the bubble on first click of input field. Else, double click is handled by some of the websites and might be recognized as error.

Other way to show bubble is to click on the input field and then start typing, in which case Autofill doesn’t fill the focused input field as it assumes that user has entered some valid data.

Issue 169342

As part of first run, we’d like to be able to ask users for their payment details in order to improve their purchases on the web.
We should run an experiment where we ask a user for these details and populate autofill/wallet with the details the user provides.

As part of first run of Chrome or just the autofill dialog?

This would be first run of Chrome.

Кредитка будет сохраняться в Google Wallet аккаунт

Revision 175250

Change the behavior of —wallet-service-url. —wallet-service-url now specifies a prefix rather than a full path to autocheckout. The default value is https://wallet.google.com/online/v2/ and the rest of each Wallet URL will be appended to construct a working URL. Also changed function prototypes to use the namespace in a more common way. (namespace wallet {… vs wallet::)

instrument.h?revision=177814

// This class contains all the data necessary to save a new instrument to a
// user’s Google Wallet. In order to save a new instrument, the client must
// first escrow the new instrument’s sensitive information,
// |primary_account_number_| and |card_verification_number_|, using
// WalletClient::EscrowSensitiveInformation. After escrowing those values, the
// client can proceed to save the instrument using WalletClient::SaveInstrument
// or WalletClient::SaveInstrumentAndAddress.

Autocheckout будет включен только в избранных магазинах

Revision 181800

Download autocheckout whitelist and enable autocheckout for whitelisted sites only.

В whitelist_manager.cc видно, что список магазинов, где включена данная функциональность, скачивается с http://www.gstatic.com/commerce/autocheckout/whitelist.csv Там пока только три тестовых магазина:

Если интересно покопаться в других тикетах из багтрекера, ищите по тэгу autocheckout-softlaunch


Подведем итоги

Все это весьма интересно. Chrome будет предлагать сохранять кредитку в Google Wallet и использовать ее позднее для быстрого оформления заказов “в один клик” в интернет-магазинах.

У Гугла уже есть платежная система Google Checkout, но она так и не получила особого распространения. Теперь ее наследник, Google Wallet (FAQ), пытается набрать пользователей, используя популярность Google Chrome (~37% рынка браузеров).

В любом случае API для быстрого чекаута в один клик, доступное 40% покупателей это весьма круто. Мы в Эквиде почти год назад добавили поддержку умного автозаполнения полей - и на собственном примере я вижу как чертовски это упрощает покупки.

Новый FB Timeline и падение MAU у e-commerce приложений

Новый Timeline, клевая штука которая превратила FB профили в хронику, историю жизней пользователей, привел к другому, важному для производителей carts for Facebook явлению: падение MAU, monthly active users.

Дело в том, что теперь нельзя сделать таб (например вот такой) дефолтной страницей для каждого нового посетителя, который открывает вашу Facebook страницу. Теперь всегда первой открывается Timeline, а для того, чтобы попасть в магазин, пользователь должен кликнуть на иконку.

Ecwid упал с 200,000 MAU до 120,000 MAU. VendorShop с 180,00 MAU до 100,000 MAU.
Но громче всех упал лидер, Payvment: с 1,200,000 MAU до 370,000 MAU. На 70%!

Это говорит вот о чем:

1. Большинство трафика Payvment получал через установки на популярных посещаемых страницах, которые отображали магазины по дефолту всем новым посетителям. А вот реальное использование магазинов (а сейчас отображается именно реальное, пользователь сам решает, открывать ли ему app) совсем другое.

Оказывается если мерять реальное взаимодействие, то у нас уже 30% трафика от Payvment, который, на минуточку, делает только FB магазины (у нас FB только одно из многих направлений) и который пиарили в каждом крупном западном тех-блоге, даже сам FB их фичерил.

2. Методики “просто добавь storefront в FB” уже недостаточно для привлечения покупателей туда. Как же это улучшить? Об этом, ребята, я расскажу вам, когда мы это зарелизим : -)

Слайды доклада про пиздец

Выступил на ульяновской конференции с докладом о том как правильно общаться с клиентом, если у вас случился пиздец. Презентацию делал с нуля ночью перед выступлением, так как в 23 только прилетел из Москвы, где был на Online Retail 2012
Но говорят, получилось неплохо. Все любят котиков.


Из слайдов презентации, конечно не понятен смысл доклада. Ненавижу, когда презентация это конспект рассказа, это так уныло. Поэтому смотреть надо вместе с моим mind map.

Сначала подумайте

Какую бы область вы не возьмете, от положения дел в Apple до состояния японского ядерного реактора, вы обязательно найдете кучу людей, которые расскажут вам как же там на самом деле и в чем все они ошибаются. Поднимите любую тему и ожидайте тех, кто безаппеляционно расскажет вам в чем там дело. Предложите идею и вам расскажут, почему она провалится.

Люди любят давать советы и оценивать все вокруг. Оглянитесь, у каждого есть мнение по любому вопросу. И в этом проблема — они видят только вершину айсберга.

Любой продукт похож на айсберг. 10% его над водой и видны всем. 90% скрыто от всех. Все судят по айсбергу по его видимой части и ошибаются. Им не приходит в голову, что видимое это еще не все. Что очень большая часть им пока просто недоступна. Что чего-то они не знают. Но нет, они верят своим глазам, своему опыту, который говорит, что айсберг маленький и все с ним понятно.

Например в 2006 году Amazon запустил S3 – сервис по облачному хранению данных. Тут Амазону сразу рассказали, что «не взлетит». Что уже можно получить 200Gb за $10, что это очень дорого и подойдет только маленьким девелоперам, что никакой бизнес не доверит свои главные данные стороннему сервису. Знающие люди сразу рассказали, почему не будет работать. У них был опыт — они видели вершину айсберга.

Инженеры из Amazon видели айсберг целиком. Они занимались им. Они жили им. Спустя 6 лет S3 пользуются практически все — от крупных до мелких компаний.

Такая подводная часть есть везде. Любое действие или изменение, которое легко выглядит (“да тут всего же в трех строчках подправить”) — может быть всего лишь маленьким кусочком большого пазла. Легко достать карту из колоды, но если она в основании карточного домика, то достать ее, не разрушив все, уже непросто.

Например в 2011 Facebook решил дать возможность добавлять ко всем своим объектам (фотографии, ссылки, статусы и т.д.) место (location), которое к ним относится. Звучит легко? Еще одно поле в базе? На деле для этого, с виду незначительного изменения, пришлось делать серьезные изменения. Потому что Фейсбук большой и то, что работает для обычного сайта, не работает для него. Обычный опыт тут не применим, вы не видите айсберг целиком.

Мы сталкиваемся с этим и в Эквиде. К нам иногда приходят сообщения, в которых люди искренне непонимают, почему мы не сделали еще то или это. Ведь это так просто, так легко.
Они не понимают, что даже простая задача — добавить пару кнопок для шаринга в социальных сетях, которую можно сделать за 15 минут на обычном сайте, у нас превращается в челлендж.

Эквид может одновременно работать на несколько сайтах. Это его преимущество. Поэтому нужно придумать как сделать так, чтобы FB likes одного и того же товара, сделаные на разных сайтах, суммировались (товар же один), но в то же время если я лайкнул товар на сайте Б и потом кликнул по ссылке — меня должно вернуть именно на сайт Б.
Эквид доступен на 41 языках и Like кнопки тоже переводятся. На разных языках у них разный размер и нам надо сделать так, чтобы все выглядело хорошо. Поэтому инженеру приходится строить таблицу размеров кнопок для всех языков и учитывать их при отображении.
Когда лайки отображаются на списке товаров, их много и они тормозят. Это проблема, которая влияет на скорость магазина — поэтому критична. Нужно сделать так, чтобы лайки, которые не видны еще в окне, но которые есть на странице — не грузились.
Да что там говорить, для того, чтобы добавить Tumblr кнопку ребятам пришлось заниматься реверс-инжинирингом их обфусцированного кода.

И еще десятки, сотни штук, которые надо учесть и сделать, чтобы в результате все просто работало. И оно работает, но все видят только 10% и удивляются, почему это заняло так много времени.

Возможно это как-то связано с эффект Даннинга — Крюгера
. Человек, который не обладает достаточным знанием о предмете, более склонен к безаппеляционным и окончательным суждениям. Он просто не видит, не понимает всех сложностей. Ситуация для него легка и понятна.

Не делайте так. Если вы с чем-то несогласны, считаете, что все не так — не рубите сплеча. Дайте мысли 5 минут. Задайте несколько вопросов.

И сначала подумайте.