支援的功能概述
最後更新: 2024年7月20日
- 主題:
- APIs/SDKs
建立對象:
- 開發人員
Adobe Target的伺服器端SDK可讓開發人員在效能與資料新鮮度之間做出選擇,進而做出決策。 換言之,如果透過機器學習提供最相關且最吸引人的個人化內容對您而言至關重要,則應進行即時伺服器呼叫。 但是,當效能較重要時,則應該進行裝置上決策。 若要讓on-device decisioning運作,請參閱下列支援功能清單:
- 活動類型
- 對象目標定位
- 配置方法
活動類型 | 支援 |
---|---|
A/B 測試 | 是 |
自動分配 | 無 |
自動鎖定目標 | 無 |
Analytics for Target (A4T) | 是 |
多變數測試 (MVT) | 否 |
體驗鎖定 (XT) | 是 |
Automated Personalization (AP) | 無 |
Recommendations | 無 |
對象目標定位
下表指出on-device decisioning支援或不支援的對象規則。
on-device decisioning的地理定位
為了維持具有地理型對象的on-device decisioning活動近乎零延遲,Adobe建議您在getOffers
的呼叫中自行提供地理值。 若要這麼做,請在要求的Context
中設定Geo
物件。 這表示您的伺服器需要一種方式來確定每個一般使用者的位置。 例如,您的伺服器可能會使用您設定的服務,執行IP對地理位置的查詢。 某些託管提供者(例如Google Cloud)會透過每個HttpServletRequest
中的自訂標頭提供此功能。
Node.js
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
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
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
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