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

Adobe Targetのサーバーサイド SDKにより、開発者はパフォーマンスと意思決定のためのデータの鮮度のどちらかを柔軟に選択できます。 言い換えれば、マシンラーニングを通じて最も関連性が高く、魅力的なパーソナライズされたコンテンツを配信することが最も重要な場合は、ライブサーバーコールを送信する必要があります。 しかし、パフォーマンスがより重要な場合は、デバイス上で決定する必要があります。 on-device decisioningが機能するには、サポートされている機能の次の一覧を参照してください。

  • アクティビティのタイプ
  • Audience Targeting
  • 配分方法

アクティビティのタイプ

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

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

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

オーディエンスルール
オンデバイス判定
地域
ネットワーク
×
モバイル
×
​ カスタムパラメーター
オペレーティングシステム
サイトのページ
ブラウザー
訪問者プロファイル
×
トラフィックソース
×
時間枠
Experience Cloud Audiences (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-to-Geo ルックアップを使用することで、各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
target-dev-help-dev