未処分利益

日記 メモ 映画 小説 感想 読書 Android iOS

GA拡張Eコマースのプロモーション計測における内部クリック率の正しい取り方:Android編

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のコンストラクタの引数にProductactionではなくてPromotionactionを設定しているところに違和感をおぼえるし そもそも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());