1. 介紹
AMPscript是Salesforce Marketing Cloud的腳本語言。 您可以使用它通過一組廣泛的功能來創(chuàng)建高度復(fù)雜的個(gè)性化內(nèi)容。 該語言遵循簡(jiǎn)單的語法和語義斑司,學(xué)習(xí)起來很快,很容易編碼。
與JavaScript、Perl和Python等其他通用語言不同了赌,AMPscript是為特定運(yùn)行時(shí)環(huán)境(Salesforce Marketing Cloud)開發(fā)的服務(wù)器端腳本語言,其中腳本在呈現(xiàn)內(nèi)容時(shí)被解釋和執(zhí)行玄糟。
AMPscript是一種由兩部分組成的語言:語法和函數(shù)庫勿她。 了解了這些,就有可能在沒有事先編程或腳本經(jīng)驗(yàn)的情況下迅速精通這門語言阵翎,并為直接營銷活動(dòng)創(chuàng)建高度個(gè)性化逢并、動(dòng)態(tài)的內(nèi)容。
2. 語法
由于AMPscript是一種服務(wù)器端語言郭卫,因此代碼可以包含在 email, web page, SMS or push message中的任何位置砍聊。 與其他腳本語言類似,AMPscript是解釋的贰军,而不是編譯的玻蝌,這意味著它是按照編寫的順序解釋的。 因此词疼,如果您使用AMPscript在電子郵件中包含個(gè)性化內(nèi)容俯树,則需要在個(gè)性化內(nèi)容應(yīng)該出現(xiàn)的位置之前或位置定義AMPscript代碼。
AMPscript可以在代碼塊中編寫贰盗,也可以內(nèi)聯(lián)編寫聘萨。
%%[
]%%
AMPscript代碼塊可用于:
- 聲明和設(shè)置變量
- 處理?xiàng)l件邏輯
- 大量數(shù)據(jù)處理
對(duì)于內(nèi)聯(lián)AMPscript,包含在以 %%= 開頭和 =%% 結(jié)尾的字符序列中:
%%= =%%
內(nèi)聯(lián)AMPscript可用于:
- 輸出變量或調(diào)用函數(shù)
- 允許嵌入到HTML中
所有AMPscript代碼必須用匹配的開始和結(jié)束分隔符模式括起來童太,否則代碼將被忽略米辐。
3. 變量
變量用于在AMPscript塊或內(nèi)聯(lián)AMPscript中存儲(chǔ)數(shù)據(jù)胸完。 把它們想象成存儲(chǔ)您定義的數(shù)據(jù)的容器。 AMPscript變量都以@符號(hào)開頭翘贮,并使用SET定義赊窥。 變量必須是唯一的名稱,否則存儲(chǔ)在其中的數(shù)據(jù)可能會(huì)被覆蓋狸页。
%%[
set @myvar = "Hello world!"
]%%
可以使用var聲明變量锨能,但這不是必需的。 多個(gè)變量可以用逗號(hào)分隔芍耘。
%%[
var @myvar, @myvar2
set @myvar = "Hello one"
set @myvar2 = "Hello two"
]%%
變量可以包含數(shù)字址遇、字母、破折號(hào)(-)或下劃線(_)斋竞,但必須以字母開頭倔约。
%%[
set @myvar = "Hello one"
set @myvar2 = "Hello two"
set @myvar-3 = "Hello three"
set @myvar_four = "Hello four"
]%%
變量都不區(qū)分大小寫。 SET也不區(qū)分大小寫坝初。
%%[
set @myvar = "Hello one"
SET @myvar2 = "Hello two"
SET @MYVAR = "myvar is equal to MYVAR"
]%%
可以使用以下命令在AMPscript中進(jìn)行注釋:/* */
%%[
/* 可以在這里添加注釋 */
set @myvar = "Hello one"
]%%
4. 函數(shù)
在編程中浸剩,函數(shù)是程序的一部分,它使用一些輸入值(或參數(shù))來執(zhí)行特定的任務(wù)并產(chǎn)生輸出值鳄袍。雖然其它腳本語言提供用戶定義的函數(shù)(例如JavaScript)绢要,而AMPscript通過主要面向顯示、轉(zhuǎn)換和存儲(chǔ)客戶數(shù)據(jù)和營銷內(nèi)容的預(yù)定義函數(shù)使用聲明性方法拗小。
AMPscript函數(shù)是純函數(shù)重罪,這意味著它們接受一些輸入并根據(jù)輸入返回輸出。 純函數(shù)構(gòu)成了函數(shù)式編程的基礎(chǔ)哀九,并且是獨(dú)立的剿配,這意味著您可以在代碼中移動(dòng)它們,從而使重構(gòu)或調(diào)整變得容易勾栗。 這種編程風(fēng)格簡(jiǎn)化了用戶的開發(fā)過程惨篱,因?yàn)樗蛔裱@式的控制流或命令序列盏筐,這反過來又通過應(yīng)用“創(chuàng)造性”設(shè)計(jì)模式來實(shí)現(xiàn)結(jié)果围俘,從而在開發(fā)中實(shí)現(xiàn)靈活性。
AMPscript函數(shù)的工作方式與它們?cè)贛icrosoft Excel中的工作方式大致相同琢融;即為預(yù)定義函數(shù)設(shè)置參數(shù)界牡,這些參數(shù)被解釋,然后返回一個(gè)值漾抬。 幾個(gè)AMPscript函數(shù)與Excel函數(shù)相同-雖然有些函數(shù)的名稱不同宿亡,但它們與Excel共享相同的參數(shù)和輸出相同的結(jié)果。
下面的示例比較了SUM Excel函數(shù)和AMPscript的Add函數(shù)纳令,在這兩個(gè)函數(shù)中挽荠,有兩個(gè)數(shù)字作為參數(shù)傳遞給該函數(shù)克胳。 在這種情況下,兩個(gè)函數(shù)都將輸出值3圈匆。
Excel SUM function:
=SUM(1,2)
AMPscript Add Function:
%%=Add(1,2)=%%
下面是所有可用的AMPscript函數(shù)漠另。可以點(diǎn)擊關(guān)注跃赚,具體用法后面會(huì)有章節(jié)詳細(xì)介紹笆搓。
也可以查看文檔:https://ampscript.guide
API
- AddObjectArrayItem
- CreateObject
- InvokeCreate
- InvokeDelete
- InvokeExecute
- InvokePerform
- InvokeRetrieve
- InvokeUpdate
- RaiseError
- SetObjectProperty
Contacts
- UpsertContact
Content
- AttachFile
- BarCodeURL
- BeginImpressionRegion
- BuildOptionList
- BuildRowSetFromString
- BuildRowSetFromXML
- ContentArea
- ContentAreaByName
- ContentBlockbyId
- ContentBlockbyKey
- ContentBlockbyName
- ContentImagebyID
- ContentImagebyKey
- CreateSmsConversation
- EndImpressionRegion
- EndSmsConversation
- GetPortfolioItem
- Image
- _messageContext
- SetSmsConversationNextKeyword
- TransformXML
- TreatAsContent
- TreatAsContentArea
- WAT
- WATP
Data Extension
- ClaimRow
- ClaimRowValue
- DataExtensionRowCount
- DeleteData
- DeleteDE
- ExecuteFilter
- ExecuteFilterOrderedRows
- Field
- InsertData
- InsertDE
- Lookup
- LookupOrderedRows
- LookupOrderedRowsCS
- LookupRows
- LookupRowsCS
- Row
- RowCount
- UpdateData
- UpdateDE
- UpsertData
- UpsertDE
Date Time
- DateAdd
- DateDiff
- DateParse
- DatePart
- GetSendTime
- LocalDateToSystemDate
- Now
- SystemDateToLocalDate
Encryption
- Base64Decode
- Base64Encode
- DecryptSymmetric
- EncryptSymmetric
- GUID
- MD5
- SHA1
- SHA256
HTTP
- HTTPGet
- HTTPPost
- HTTPPost2
- HTTPRequestHeader
- IsCHTMLBrowser
- RedirectTo
- URLEncode
- WrapLongURL
Math
- Add
- Divide
- FormatCurrency
- FormatNumber
- Mod
- Multiply
- Random
- Subtract
Microsoft Dynamics CRM
- AddMscrmListMember
- CreateMscrmRecord
- DescribeMscrmEntities
- DescribeMscrmEntityAttributes
- RetrieveMscrmRecords
- RetrieveMscrmRecordsFetchXML
- SetStateMscrmRecord
- UpdateMscrmRecords
- UpsertMscrmRecord
Salesforce
- CreateSalesforceObject
- LongSFID
- RetrieveSalesforceJobSources
- RetrieveSalesforceObjects
- UpdateSingleSalesforceObject
Sites
- AuthenticatedEmployeeID
- AuthenticatedEmployeeNotificationAddress
- AuthenticatedEmployeeUserName
- AuthenticatedEnterpriseID
- AuthenticatedMemberID
- AuthenticatedMemberName
- CloudPagesURL
- IsNullDefault
- LiveContentMicrositeURL
- MicrositeURL
- QueryParameter
- Redirect
- RequestParameter
Social
- GetPublishedSocialContent
- GetSocialPublishURL
- GetSocialPublishURLByName
String
- Char
- Concat
- Format
- IndexOf
- Length
- Lowercase
- ProperCase
- RegExMatch
- Replace
- ReplaceList
- StringToDate
- StringToHex
- Substring
- Trim
- Uppercase
Utilities
- AttributeValue
- Domain
- Empty
- If
- IIf
- IsEmailAddress
- IsNull
- IsPhoneNumber
- Output
- OutputLine
- V