支援的功能概述

Adobe Target的伺服器端SDK可讓開發人員在效能與資料新鮮度之間做出選擇,進而做出決策。 換言之,如果透過機器學習提供最相關且最吸引人的個人化內容對您而言至關重要,則應進行即時伺服器呼叫。 但是,當效能較重要時,則應該進行裝置上決策。 若要讓on-device decisioning運作,請參閱下列支援功能清單:

  • 活動類型
  • 對象目標定位
  • 配置方法

活動類型

下表指出on-device decisioning支援或不支援使用表單式體驗撰寫器建立的活動型別

對象目標定位

下表指出on-device decisioning支援或不支援的對象規則。

對象規則
裝置上決策
地理
網路
行動
自訂引數
作業系統
網頁
瀏覽器
訪客資料
流量來源
時間範圍
Experience Cloud對象 (來自Adobe Audience Manager、Adobe Analytics和Adobe Experience Manager的對象

on-device decisioning的地理定位

為了維持具有地理型對象的on-device decisioning活動近乎零延遲,Adobe建議您在getOffers的呼叫中自行提供地理值。 若要這麼做,請在要求的Context中設定Geo物件。 這表示您的伺服器需要一種方式來確定每個一般使用者的位置。 例如,您的伺服器可能會使用您設定的服務,執行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呼叫的延遲。 此延遲應低於遠端getOffers呼叫,因為它點選了位於伺服器附近的CDN。 您必須在要求的Context中的Geo物件中僅提供ipAddress欄位,SDK才能擷取您使用者IP位址的地理位置。 如果提供除了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