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は、変換が適用される画面サイズの列挙です。使用可能な値は次のとおりです。
smallnormallargexlarge
たとえば、列挙にnormalのみが含まれる場合、このスコープにおける変換は、通常サイズの画面のデバイス(通常は標準サイズの電話)にのみ適用されます。
deviceが明示的に設定されていない場合は、["small", "normal", "large", "xlarge"]とみなされ、すべてのデバイスが含まれます。
orientationは、変換が適用される向きの列挙です。使用可能な値は次のとおりです。
landscapeportrait
たとえば、列挙にlandscapeのみが含まれている場合、このスコープにおける変換は向きが横方向に変更された場合にのみ適用されます。
orientationが明示的に設定されていない場合は、["landscape", "portrait"]とみなされ、すべての向きが含まれます。
densityは、変換が適用される向きの列挙です。使用可能な値は次のとおりです
ldpimdpihdpixhdpixxhdpixxxhdpi
たとえば、列挙にhdpiのみが含まれる場合、このスコープにおける変換はdpiが高い画面にのみ適用されます。
densityが明示的に設定されていない場合は、["ldpi", "mdpi", "hdpi", "xhdpi", "xxhdpi", "xxxhdpi"]とみなされ、すべての密度が含まれます。
Actions
各アクションには、次のパラメータが必要です。
id- アクションのトラッキングに使用される要素のID。type- アクションのタイプ。name- Oracle Maxymiserでのアクションの名前。
現在、次のアクション・タイプを使用できます。
ElementView- すべての要素によってサポートされます。ビュー・ツリーに要素が表示されるたびにトリガーされます。OnTap- すべての要素によってサポートされ、ビューから継承されます。アクションがクリック不可能な要素に追加されると、その要素はクリック可能になります。ユーザーが要素をタップしたときにトリガーされます。
重要: 各セルでアクション・トラッキングが発生するため、ElementViewアクションを表セルにバインドしないでください。
サポートされるUI要素の変換
重要: 一部の変換には最小値または最大値のチェックがないため、公開して稼働開始する前に、バリアントを慎重にテストしてください。
View変換
要素の表示を変更します。
例:
"visibility": gone
                                                            
使用可能な値:
gonevisibleinvisible
要素の背景色を変更します。色の値は、ARGBまたはRGB形式である必要があります。
例:
"background-color": "#FF0000"
                                                            
要素の透明度を変更します。値は0から1の範囲内である必要があります。
例:
"alpha": 0.5
                                                            
要素のレイアウトを変更します。レイアウトの幅および高さを設定するために使用できます。値はディメンション値である必要があります。ディメンション値は、spなどの単位が付加された浮動小数点数または事前定義された値のいずれかです。単位のない値(たとえば、100)は、100dpと解釈されます。
例:
"layout": {"width": "45.8mm", "height": "wrap_content"}
                                                            
使用可能な単位値:
px- ピクセルin- インチdp- 密度に依存しないピクセルsp- スケールに依存しないピクセルpt- ポイントmm- ミリメートル
事前定義の値:
fill_parentmatch_parentwrap_content
TextView変換
テキストの色を変更します。色の値は、ARGBまたはRGB形式である必要があります。
例:
"text-color": "#00FF00"
                                                            
テキストを変更します。
例:
"text": "New text value"
                                                            
テキスト・サイズを変更します。値はディメンション値である必要があり、これはspなどの単位が付加された浮動小数点数です。単位のない値(たとえば、12.5)は12.5spと解釈されます。
例:
"text-size": "12sp"
                                                            
使用可能な単位値:
px- ピクセルin- インチdp- 密度に依存しないピクセルsp- スケールに依存しないピクセルpt- ポイントmm- ミリメートル
テキストのヒントを変更します。
例:
"hint": "New hint value"
                                                            
テキストのヒントの色を変更します。色の値は、ARGBまたはRGB形式である必要があります。
例:
"hint-color": "#FF443322"
                                                            
テキスト要素のテキスト配置を変更します。
例:
"gravity": ["right", "bottom"]
                                                            
使用可能な単位値:
topbottomleftrightcenter_verticalfill_verticalcenter_horizontalfill_horizontalcenterfillclip_verticalclip_horizontalstartend
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変換
イメージを変更します。
例:
"image": "http://mydomain.com/mypic.jpg"
                                                            
サイズと数で最適化されたイメージを使用してください。特大のイメージまたは大量のイメージを使用すると、OutOfMemory例外のためにアプリケーションがクラッシュする可能性があります。
イメージのスケールを変更します。
例:
"scale-type": "center"
                                                            
使用可能な値:
centercenter_cropcenter_insidefill_horizontalfit_centerfit_endfit_startfit_xymatrix
View変換
ImageViewでは、すべてのView変換がサポートされます。
ImageButton変換
ImageView変換
ImageButtonでは、すべてのButton変換がサポートされます。
View変換
ImageButtonでは、すべてのView変換がサポートされます。