Enhanced Ecommerce Tracking - Android SDK v4 でプロモーション計測における内部クリック率を計測するコードが、下記のように紹介されている。
Promotion promotion = new Promotion()
.setId("PROMO_1234")
.setName("Summer Sale")
.setCreative("summer_banner2")
.setPosition("banner_slot1");
ProductAction promoClickAction = new ProductAction(Promotion.ACTION_CLICK);
HitBuilders.EventBuilder builder = new HitBuilders.EventBuilder()
.addPromotion(promotion)
.setProductAction(promoClickAction)
.setCategory("Internal Promotions")
.setAction("click")
.setLabel("Summer Sale");
Tracker t = ((AnalyticsSampleApp) getActivity().getApplication()).getTracker(
TrackerName.APP_TRACKER);
t.send(builder.build());
しかし、こちらのコードは誤りのように思える。
ProductActionのコンストラクタの引数にProduct のactionではなくてPromotionのactionを設定しているところに違和感をおぼえるし
そもそもProductAction自体はProductと併用して利用する前提のクラスだが、Productのインスタンス指定が存在しないのもおかしい。
リファレンス参照:ProductAction
そして、何より上記のコードでは計測した結果が反映されない。
というわけで、SDKのリファレンスを精査したところ、下記のコードでプロモーション計測における内部クリック率を計測することができた。
Tracker tracker = ((App)getActivity().getApplication()).getTracker(App.TrackerName.APP_TRACKER);
HitBuilders.ScreenViewBuilder builder = new HitBuilders.ScreenViewBuilder();
builder.setPromotionAction(Promotion.ACTION_CLICK)
.addPromotion(new Promotion().setId("プロモーションID").setName("プロモーション名"));
tracker.send(builder.build());