サポートされる機能の概要

Adobe Target のサーバーサイド SDK を使用すると、開発者は意思決定のためにデータのパフォーマンスと鮮度を柔軟に選択できます。 つまり、最も関連性が高く、魅力的なパーソナライズされたコンテンツを機械学習を通じて配信することが最も重要な場合は、ライブサーバーを呼び出す必要があります。 ただし、パフォーマンスがより重要な場合は、オンデバイスで決定する必要があります。 on-device decisioning の機能については、次のサポートされる機能のリストを参照してください。

  • アクティビティのタイプ
  • オーディエンスのターゲティング
  • 配分方法

アクティビティのタイプ

次の表に、 フォームベースの Experience Composer を使用して作成された アクティビティタイプが、on-device decisioning でサポートされているかサポートされていないかを示します。

オーディエンスのターゲティング

次の表に、on-device decisioning でサポートされるオーディエンスルールとサポートされないオーディエンスルールを示します。

オーディエンスルール
オンデバイス判定
地域
ネットワーク
×
モバイル
×
カスタムパラメーター
オペレーティングシステム
サイトのページ
ブラウザー
訪問者プロファイル
×
トラフィックソース
×
時間枠
Experience Cloudオーディエンス(Adobe Audience Manager、Adobe AnalyticsおよびAdobe Experience Managerのオーディエンス)
×

on-device decisioning のジオターゲティング

ジオベースのオーディエンスを使用する on-device decisioning アクティビティの待ち時間をほぼゼロに保つために、Adobeでは getOffers の呼び出しでジオバリューを自分で指定することをお勧めします。 これを行うには、リクエストの ContextGeo オブジェクトを設定します。 つまり、サーバーには、各エンドユーザーの場所を判断する方法が必要になります。 例えば、サーバーは、設定したサービスを使用して IP からジオルックアップを実行する場合があります。 Google Cloud など、一部のホスティングプロバイダーは、各 HttpServletRequest ージのカスタムヘッダーを介してこの機能を提供します。

Node.js
code language-csharp line-numbers
const CONFIG = {
    client: "acmeclient",
    organizationId: "1234567890@AdobeOrg",
    decisioningMethod: "on-device"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
    request: {
        context: {
            geo: {
                city: "SAN FRANCISCO",
                countryCode: "US",
                stateCode: "CA",
                latitude: 37.75,
                longitude: -122.4
            }
        },
        execute: {
            pageLoad: {}
        }
    }
})
Java
code language-javascript line-numbers
public class TargetRequestUtils {

    public static Context getContext(HttpServletRequest request) {
        Context context = new Context()
            .geo(ipToGeoLookup(request.getRemoteAddr()))
            .channel(ChannelType.WEB)
            .timeOffsetInMinutes(330.0)
            .address(getAddress(request));
        return context;
    }

    public static Geo ipToGeoLookup(String ip) {
        GeoResult geoResult = geoLookupService.lookup(ip);
        return new Geo()
            .city(geoResult.getCity())
            .stateCode(geoResult.getStateCode())
            .countryCode(geoResult.getCountryCode());
    }

}

ただし、サーバーで IP からジオベースの検索を実行できない場合でも、ジオベースのオーディエンスを含む getOffers リクエストに対して on-device decisioning を実行すると便利です。 このアプローチの欠点は、リモートの IP からジオルックアップを使用することで、各 getOffers 呼び出しに待ち時間が追加されることです。 この待ち時間は、サーバーの近くにある CDN にヒットするため、リモート getOffers 呼び出しよりも短くなる必要があります。 SDK がユーザーの IP アドレスの位置情報を取得するには、リクエストの ContextGeo オブジェクトの ipAddress フィールドのみを指定する必要があります。 ipAddress 以外のフィールドが指定された場合、Target SDK は解決のために位置情報メタデータを取得しません。

Node.js
code language-csharp line-numbers
const CONFIG = {
    client: "acmeclient",
    organizationId: "1234567890@AdobeOrg",
    decisioningMethod: "on-device"
};

const targetClient = TargetClient.create(CONFIG);

targetClient.getOffers({
    request: {
        context: {
            geo: {
                ipAddress: "127.0.0.1"
            }
        },
        execute: {
            pageLoad: {}
        }
    }
})
Java
code language-javascript line-numbers
public class TargetRequestUtils {

    public static Context getContext(HttpServletRequest request) {
        Context context = new Context()
            .geo(new Geo().ipAddress(request.getRemoteAddr()))
            .channel(ChannelType.WEB)
            .timeOffsetInMinutes(330.0)
            .address(getAddress(request));
        return context;
    }

}

配分方法

次の表に、on-device decisioning でサポートされる配分方法とサポートされない配分方法を示します。

recommendation-more-help
6906415f-169c-422b-89d3-7118e147c4e3