Android変換ガイド

概要

このページでは、テスト・バリアントのJSONマークUIelementsについて説明します。この情報と、サイト作成から稼働公開までのアプリ・テスト(LINK)ガイドを組み合せて使用してAndroid SDK(LINK)を統合していることが前提となっています。

ストア更新のないアプローチは、ネイティブ・アプリケーション用のA/Bテストを構築する方法の1つで、JSONマークアップを使用してユーザー・エクスペリエンスのバリアントをリモートでアプリにインジェクトします。このアプローチを使用すると、リリース・サイクルが後に続くアプリ内のコード変更ではなく、Oracle Maxymiserからキャンペーンやバリアントの更新を公開できます。一方、手動アプローチでは、アプリにコーディングされ、一般リリースを介してユーザーにリリースされるバリアントを使用します。この場合、Oracle Maxymiserは意思決定およびレポート・エンジンとして使用されます。

ストア更新のないアプローチは、Android API16以降でのみサポートされています。このより前のバージョンの場合、SDKでバリアント変換の適用やアクションのトラッキングは行われません。

Androidバージョン別機能サポート

Androidバージョン ストア更新のないアプローチ、ストア更新のないUIの変換 手動アプローチ、意思決定フェッチ用のAPI
API16以降 サポート対象 サポート対象
API10 - API 15 サポートされていません(SDK非アクティブ) サポート対象
API 9以前 サポートされていません(SDK非アクティブ) サポートされていません(SDK非アクティブ)

バリアントの作成

JSONスキーマ参照

{}
"MMTApp": [{
    "scope": {
        "screen-size": [
            "small",
            "normal",
            "xlarge"
        ],
        "orientation": [
            "landscape",
            "portrait",
        ],
        "density": [
            "ldpi",
            "mdpi",
            "hdpi",
            "xhdpi",
            "xxhdpi",
            "xxxhdpi",
        ],
    },
    "config": [{
            "id": "NavigationActivity/LinearLayout/TextView",
            "props": {
                "text": "Hello",
                "background-color": "#008B7D"
            }
        },
        {
            "id": "NavigationActivity/LinearLayout/Button",
            "props": {
                "background-color": "#008B7D"
            }
        ]
    },
    "actions": [{
        "id": "DemoViewController/UIView/UIButton",
        "type": "TouchUpInside",
        "name": "Click_through"
    }]
}]
}

要素ID

IDは、画面上のUI要素を選択するために使用します。IDは、ViewControllerのルート・ビューから始まるUI要素へのパスです。たとえば、"id": "DemoViewController/UIView[0]/UIButton[1]"は、DemoViewControllerのルート・ビューの最初のUIView上にある2番目のButtonのIDです。デフォルトでは、DemoViewControllerのルート・ビューには、コントローラのクラス名と同じIDがあります。

コードからUI要素にカスタムIDを割り当てることができます。これにより、正確なコンテキストに応じて要素をターゲットにできます。次の例では、"Product-123" IDをProductDetailsViewControllerのルート・ビューに設定します。
これにより、特定の製品のProductDetailsViewControllerのUI要素("id": "Product-123/UIButton[0]")をターゲットにすることができます。

カスタムIDは自動生成されたIDをオーバーライドしないため、キャンペーンでカスタムIDと自動生成されたIDの両方を使用できます。

すべてのUI要素のIDを画面に表示するには、要素IDの出力を有効にしてこのページにナビゲートします([MMTApp setPrintElementsIDs:YES];)。
SDKによってすべての要素IDがアプリケーション・ログに出力されます。

スコープ

スコープは、様々なデバイス構成に対する様々な変換またはアクションの使用を許可するオプションのブロックです。構成は、デバイス・タイプ、向き、スケールなどのパラメータのセットです。

スコープには、様々なスコープ・パラメータを定義するオブジェクトが含まれています。

screen-sizeは、変換が適用される画面サイズの列挙です。使用可能な値は次のとおりです。

  • small
  • normal
  • large
  • xlarge

たとえば、列挙にnormalのみが含まれる場合、このスコープにおける変換は、通常サイズの画面のデバイス(通常は標準サイズの電話)にのみ適用されます。

deviceが明示的に設定されていない場合は、["small", "normal", "large", "xlarge"]とみなされ、すべてのデバイスが含まれます。

orientationは、変換が適用される向きの列挙です。使用可能な値は次のとおりです。

  • landscape
  • portrait

たとえば、列挙にlandscapeのみが含まれている場合、このスコープにおける変換は向きが横方向に変更された場合にのみ適用されます。

orientationが明示的に設定されていない場合は、["landscape", "portrait"]とみなされ、すべての向きが含まれます。

densityは、変換が適用される向きの列挙です。使用可能な値は次のとおりです

  • ldpi
  • mdpi
  • hdpi
  • xhdpi
  • xxhdpi
  • xxxhdpi

たとえば、列挙にhdpiのみが含まれる場合、このスコープにおける変換はdpiが高い画面にのみ適用されます。

densityが明示的に設定されていない場合は、["ldpi", "mdpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"]とみなされ、すべての密度が含まれます。

Actions

各アクションには、次のパラメータが必要です。

  • id - アクションのトラッキングに使用される要素のID。
  • type - アクションのタイプ。
  • name - Oracle Maxymiserでのアクションの名前。

現在、次のアクション・タイプを使用できます。

  • ElementView - すべての要素によってサポートされます。ビュー・ツリーに要素が表示されるたびにトリガーされます。
  • OnTap - すべての要素によってサポートされ、ビューから継承されます。アクションがクリック不可能な要素に追加されると、その要素はクリック可能になります。ユーザーが要素をタップしたときにトリガーされます。

重要: 各セルでアクション・トラッキングが発生するため、ElementViewアクションを表セルにバインドしないでください。

サポートされるUI要素の変換

重要: 一部の変換には最小値または最大値のチェックがないため、公開して稼働開始する前に、バリアントを慎重にテストしてください。

View変換

TextView変換

View変換

TextViewでは、すべてのView変換がサポートされます。

EditText変換

TextView変換

EditTextでは、すべてのTextView変換がサポートされます。

View変換

EditTextでは、すべてのTextView変換がサポートされます。

Button変換

TextView変換

Buttonでは、すべてのTextView変換がサポートされます。

View変換

Buttonでは、すべてのView変換がサポートされます。

ToggleButton変換

TextView変換

ToggleButtonでは、すべてのButton変換がサポートされます。

TextView変換

ToggleButtonでは、すべてのTextView変換がサポートされます。

View変換

ToggleButtonでは、すべてのView変換がサポートされます。

Switch変換

TextView変換

Switchでは、すべてのButton変換がサポートされます。

TextView変換

Switchでは、すべてのTextView変換がサポートされます。

View変換

Switchでは、すべてのView変換がサポートされます。

RadioButton変換

Button変換

RadioButtonでは、すべてのButton変換がサポートされます。

TextView変換

RadioButtonでは、すべてのTextView変換がサポートされます。

View変換

RadioButtonでは、すべてのView変換がサポートされます。

CheckBox変換

Button変換

CheckBoxでは、すべてのButton変換がサポートされます。

TextView変換

CheckBoxでは、すべてのTextView変換がサポートされます。

View変換

CheckBoxでは、すべてのView変換がサポートされます。

ImageView変換