Marketing Cloud Developers Cert Test

Pataasin ang iyong marka sa homework at exams ngayon gamit ang Quizwiz!

Declare a Server-Side JavaScript Block

<script runat=server> [Insert JavaScript Here] </script> <script runat=server language="JavaScript" executioncontexttype="Post" executioncontextname=test> [Insert JavaScript Here] </script>

Server-Server

A server-to-server integration performs tasks on behalf of the integration, without an end-user context, user interaction, or user interface.They make API requests in the context of a service account instead of a user account. These integrations are issued a client ID and client secret to use with the Client Credentials grant type.

Public App Integration

A type of OAuth 2.0 API integration in enhanced packages. A public app allows applications that can't securely store a client secret to integrate with Marketing Cloud on behalf of an end user using the intersection of the app's and the user's permissions. Examples of public apps include a single-page application or a native mobile application.

When using, SELECT TOP queries, specify the ORDER BY command to avoid unpredictable results

Due to caching algorithms, the data the query activity pulls back may not be the expected data. By specifying a precise order, the query activity returns the data as expected.

Data View: Social Network Impressions

Query this data view in Automation Studio to find data on content shared from your Marketing Cloud sends via Social Forward. View impression data on content shared from your sends via Social Forward by querying the _SocialNetworkImpressions data view.

Data View: Open

Query this data view in Automation Studio to find email opens for your Marketing Cloud account. View email opens for your account by querying the _Open data view.

Data View: Undeliverable SMS

Query this data view in Automation Studio to find failed message deliveries to Marketing Cloud MobileConnect subscribers. View information about failed message deliveries to MobileConnect subscribers by querying the _UndeliverableSms data view. Information from this query relates to the owner of a private short code or long code, or a client using a shared short code to which the subscriber has opted in.

Data View: PublicationSubscriber

Query this data view in Automation Studio to find information about Marketing Cloud publication lists. View information about a publication list by querying the _PublicationSubscriber data view. You can only use this data view with SMS messages.

Case 3: Your API Requires Quick Developer Response

REST allows easy, quick calls to a URL for fast return responses. The difference between SOAP and REST, in this case, is complexity—-SOAP services require maintaining an open stateful connection with a complex client. REST, in contrast, enables requests that are completely independent of each other. The result is that testing with REST is much simpler. Helpfully, REST services are now well-supported by tooling. The available tools and browser extensions make testing REST services continually easier and faster.

Case 1: Developing a Public API

REST focuses on resource-based (or data-based) operations and inherits its operations (GET, PUT, POST, DELETE) from HTTP. This makes it easy for both developers and web-browsers to consume it, which is beneficial for public APIs where you don't have control over what's going on with the consumer. Simplicity is one of the strongest reasons that major companies like Amazon and Google are moving their APIs from SOAP to REST.

Creating a Triggered Send Definition

Fields: - Name - Key Identifier (CustomerKey = ExternalKey) - Classification - Email - List for Subscriber Management - Misc Options - CC/BCC - Multipart MIME - Send Loggins

Data View: Journey

Find a journey's status, created and last modified date, and other general journey information using this Journey Builder data view. View data about your Journey Builder journeys using the _Journey System Data View.

After you add a Marketing Cloud app or API integration component, can you remove it?

Nope

Block widgets use cross-document messages to interact with the editor

Not API

SQL Performance Considerations

Queries have a 30 minute timeout. If a query is timing out, it may be possible to make the query perform faster with indexes applied. Queries that include both a join and a Select * statement are not permitted. Instead, write a statement that specifies each column name, even when there are multiple columns.

Data View: Job

Query this data view in Automation Studio to find data on Marketing Cloud email send jobs. View email send jobs from your account by querying the _Job data view. The Job data view provides results for all email send jobs in the Enterprise. Results are not categorized by send method.

Random Sample of 100 Use Case: A/B split testing and general segmentation

Select top 100 offerid,score,name,description,url from Offers order by newid()

Random Sampleof 33 Percent Exclusion Use Case: A/B split testing and general segmentation

Select top 33 percent offerid,score,name,description,url from Offers inner join Offer_Ext1 a on a.offerid <> offers.offerid order by newid()

Random Sampleof 33 Percent Use Case: A/B split testing and general segmentation

Select top 33 percent offerid,score,name,description,url from Offers order by newid()

Use SELECT DISTINCT queries only when duplicate data exists in multiple data extensions

The need to use this query lessens when all data extensions involved use precise, unique data.

REST also makes efficient use of bandwidth, as it's much less verbose than SOAP

Unlike SOAP, REST is designed to be stateless, and REST reads can be cached for better performance and scalability

SSJS Add Data to a Data Extension

var de = DataExtension.Init('de1'); de.Rows.Add({col1:'data',col2:'moredata',Column3:55}); de.Rows.Lookup

SSJS Add Subscribers to a List

var l = List.Init('MyList'); l.Subscribers.Add(Request.GetQueryStringParameter('Email Address'));

SSJS Perform a Triggered Send Definition

var ts = TriggeredSend.Init('welcome'); var status = ts.Send(Request.GetQueryStringParameter('Email Address')); or var status = TriggeredSend.Init('welcome').Send(Request.GetQueryStringParameter('Email Address'),{Attr:2});

Enterprise 2.0 accounts require deletions to originate from?

the parent account

On-Your-Behalf accounts require deletions to originate in?

the parent account and cascade to child accounts

AMPScript for transactional message

- Available via the TriggeredSend object using the InvokeCreate function - Used for landing pages on the Marketing Cloud

SOAP API

- Core functionality with Email, Tracking and Data Extensions - Most comprehensive API functionality

Create an API Integration in Legacy Packages

- Create an installed package and deselect Create with enhanced functionality, or navigate to an existing legacy package. - Under Components, click Add Component. - Select API Integration. - Assign the appropriate scope for your integration. - Perform server-to-server requests is automatically selected for all API Integrations. - If this package contains a Marketing Cloud app, select Perform requests on behalf of the user. - Select the Marketing Cloud scope for your API calls. Assign only the scope your package needs. - Save the component.

Create an OAuth 2.0 API Integration in Enhanced Packages

- Create an installed package with enhanced functionality, or navigate to an existing package created with enhanced functionality. - Under Components, click Add Component. Select API Integration. After you add an API integration component, it can't be removed. - Select an integration type. - Set the properties for the integration, including scopes and the redirect URIs for web and public apps. You can't use a redirect URI that is URL encoded. You can use https://127.0.0.1:{port}/* as a valid redirect URI for local testing. - Save the component.

Triggered Send Def best practices

- Create new definition for unique send types - Password reset versus Receipt - Make sure you start your definition - Publish anytime you make changes - Pause + Start != Publish - Always select a list under subscriber management - Provides better visibility into subscriber status

Contact Deletion - Account types

- Enterprise 2.0 accounts require deletions to originate from the parent account. However, child business units can include contact records created by triggered sends, data operations such as queries or filters, or synchronized data sources. Delete those records using the child business unit MID in your request. - Lock-and-Publish accounts isolate deletions to that account, no matter which accounts exist in the larger structure. - On-Your-Behalf accounts require deletions to originate in the parent account and cascade to child accounts. - Agency and Agency Client accounts isolate deletions to that account, no matter which accounts exist in the larger structure.

REST API

- New functionality with Mobile, Journey Builder, and Content Builder - Selective support for core functionality including Email and Data Extensions

What does the triggered send definition do?

- Provides common data for sending: - Form Details - Email Template - Subscriber Management - Differentiates sends for tracking purposes - Allow for pausing/queuing messages (can pause triggered send, update email and then resume)

There are a few additional situations for SOAP:

- SOAP is good for applications that require formal contracts between the API and consumer since it can enforce the use of formal contracts by using WSDL (Web Services Description Language). - Additionally, SOAP has built-in WS-Reliable messaging to increase security in asynchronous execution and processing. - Finally, SOAP has built-in stateful operations. REST is naturally stateless, but SOAP is designed to support conversational state management.

Contact Delete removes contact information across the entire enterprise for Enterprise 2.0 accounts

- This deletion affects all business units that share the same ClientID value as the MID of the account that initiated the delete. - If you use multiple Enterprise 2.0 accounts, perform the Contact Delete process for each account. The deletion process requires more time to remove contact information across a large number of business units. - Child business units can include contact records created by triggered sends, data operations such as queries or filters, or synchronized data sources. Delete those records using the child business unit MID in your request.

Contact Deletion Process

1. Deletion process initiated 2. Suppression period - contact information remains in your account, but you cannot view or access it (14 day default, can be changed) 3. Final deletion - Marketing Cloud removes deleted contact information from your account

Access Tokens for Server-to-Server Integrations- how it works

1. Your application requests an access token by providing the client ID and secret that was generated for the package you created in Marketing Cloud. 2. The Marketing Cloud authorization server returns an access token for your application to extract. 3. Your application uses the access token to access Marketing Cloud resources and the REST or SOAP base URLs returned as part of the token response.

AMPScript order of operations

1. email preheader 2. HTML body 3. text body 4. subject line

REST calls are synchronous, with timeout values of

120 for non-tracking operations and 300 seconds for tracking and data retrieve operations. The maximum payload of any call is four megabytes.

How long is the lifetime of an access token?

20 minutes Here's an example request: Host: https://YOUR_SUBDOMAIN.auth.marketingcloudapis.com POST /v2/token Content-Type: application/json { "grant_type": "client_credentials", "client_id": "7a9j47upktedde30uedl822p", "client_secret": "1955278925675241571", "scope": "list_and_subscribers_write audiences_write", "account_id": "12345" }

Optimize the Query Activity

A poorly running query can be split into component queries that execute cleanly in Automation Studio. Query activities time out after 30 minutes by default. Multiple factors can cause query timeouts: the length of the query, joins, complexity, and the volume of data. For these reasons, optimize each query you write.

AddedBy

The ID of the user who ran the process that added the subscriber

Case 2: Extensive Back-and-Forth Object Information

APIs used by apps that require a lot of back-and-forth messaging should always use REST. For example, mobile applications. If a user attempts to upload something to a mobile app (say, an image to Instagram) and loses reception, REST allows the process to be retried without major interruption, once the user regains cell service. However, with SOAP stateful operations, the same type of service would require more initialization and state code. Because REST is stateless, the client context is not stored on the server between requests, giving REST services the ability to be retried independently of one another.

Installed Package Component

An installed package comprises one or more components. Each component contains basic configuration details for the API integration or app that you are creating.

SOAP API for transactional message

Available via the TriggeredSend object using the Create method

Avoid Non-Searchable Operators for the WHERE Clause

Avoid using the following operators in the WHERE clause: • OR operators • NOT •< •> • NOT EXISTS • NOT IN • NOT LIKE • Intrinsic functions These operators cannot take advantage of indexes and cause the query activity to run more slowly.

Content Builder Block SDK - Authenticated content

Build a custom block that authenticates using your API so users are including content managed by your application or platform

MobileConnect and MobilePush Contact Deletion

By deleting this contact, you are also deleting all opt-out preferences associated with that contact. As a result, if you reintroduce this contact into Marketing Cloud, we do not automatically honor any previous opt-out preferences stored for this contact. If you re-import the contact, you must also re-import the contact's opt-out status or that information is lost. Ensure that you receive express permission to send messages to an individual before you import or re-import any contact into Marketing Cloud. Honor the individual's prior opt-outs, and confirm that your messaging complies with all applicable laws.

how does your application request the access token for the server-to-server integration?

Construct a static endpoint for your request by appending v2/token to the Authorization Base URI provided to you when you created the API integration in Installed Packages. Request an access token by providing the client ID and secret that you received when you created the API integration in Installed Packages.

Content Builder Block SDK - Interactive content

Create a custom block that includes a map of your organization's nearest location to the message recipient

Create and Install Packages

Create an installed package in your Marketing Cloud account to create API integrations, install custom apps, or add custom Journey Builder components.

BuildRowSetFromSrring

Creates a rowset from a character string by splitting the string at the specified delimiter. Usage BuildRowsetFromString('123|456|789', '|') Returns a rowset with three rows: 123 456 789

AddMethod

The method by which the subscriber was added, such as WebCollect, API, FTAF, or Import

SQL Known Issues

Data Types Decimal:If a Data Extension contains a decimal field and that field is used in a query, the output will not be a decimal output Data Views and Enterprise 2.0 Business Units Only data extensions are accessible for queries written at the Enterprise 2.0 business unit

Components of a triggered send

Definition + API Request

Data View: Bounce

EXAMPLE left(smtpbouncereason, 4000) left(smtpbouncereason, 4000)

Contact Deletion - Enablement

Enable Contact Delete for your account in the Contact Configuration section of Contact Builder. For Enterprise 2.0 accounts, enablement occurs at the parent account level for the entire organization.

Optimize Your Data Views

For queries involving data views, implement with a 6-month cap. Often the performance is dramatically better limited to no more than 30 days.

Marketing Cloud then returns an access token. Your application must extract the access token and store it safely.

Here's an example response: HTTP/1.1 200 OK { "access_token":"eyJhbLciOiJIPzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjIifQ.eyJhY2Nlc3NfdG9rZW4iOiJhYmJUQTlpSHZqRjkyd3Jkb0xWZEFCaloiLCJjbGllbnRfaWQiOiI3ZTRmYW1xaWUzcWtzdzlhNDRrcmxvZDgiLCJlaWQiOjEwNzU3Njc2LCJzdGFja19rZXkiOiJRQTFTMSJ9.wSFfEdeNrkoiU_tnmJ2ihm8iUqnJKlZoI3GlavTGBhs.hU4EsiC1e9txh_TCt90YlI2l7xZZ5E6_oa0xku3Jj9CCk1B72M4bhO3kUIyhwfVuB0MFbL0y9KD_RRFzg-nuqPgjPyONnby-iWopdZPBHd-3woupxCMST5-vfJO9qAED9qiUfYLS4WmHRuJTCX4NPScyu8BdROTVEe-D3iAoAeFoJX_rLZ9d5eEhIn1AvkYgoj9siuxAprHEvmySTgNIXkQA6uT_IQ-H1dbfOyJmlFKpYzvhvHb0KH7NJ24zy5bd2MQ5", "expires_in":1200, "token_type":"Bearer", "rest_instance_url":"mc563885gzs27c5t9-63k636tzgm.rest.marketingcloudapis.com", "soap_instance_url":"mc563885gzs27c5t9-63k636tzgm.soap.marketingcloudapis.com", "scope": "list_and_subscribers_write audiences_write" }

SQL to normalize dates

I don't remember why I wrote this down

Conditional Statements

IF Constructs CASE Statements

Optimization Tips

In a query activity that queries data extensions, use the primary key field in your select statement, or in any join as a predicate. If this query activity is part of a program or automation, do not add other activities on the same step of the program or automation. Remove other activities that occur on this step. Utilize indexing on data extensions used in the query activity when business-critical functions rely on them. Contact your account representative for more information.

Querying Data Extensions

In an enterprise environments, add the ENT."" prefix to get access to data extension in the enterprise parent account. A shared data extension in an Enterprise 2.0 account should be accessed using the ENT. prefix. Use the data extension Name in SQL queries, not the External Key.

Where is the triggered send definition?

In the UI under Email Studio > Interactions > Triggered Emails or via API (uncommon)

Access Tokens for Server-to-Server Integrations

In the client credentials flow, your client application uses this client ID and client secret to request an access token from the Marketing Cloud authorization server. The access token gives your application access to Marketing Cloud's REST and SOAP services. (The client credentials grant type doesn't have refresh tokens.)

Build Precise and Searchable Query Activity Arguments

Inefficient Query with Intrinsic Function WHERE SUBSTRING (lastname,1,1) = 'h' If you are searching for somebody's last name with the first letter of H, write this query. Efficient Query: WHERE lastname = 'h%'

To create and install packages you must have what permission?

Installed Package | Administer permission. This permission is automatically applied to the Administrator and Marketing Cloud Administrator system-defined roles. Add the permission for a different role or user in the Administration area.

Marketing Cloud App - An enhanced package doesn't use a JWT (JSON Web Token)

Instead, it provides an OAuth 2.0 integration that use the v2/userinfo REST endpoint to acquire an access token on behalf of a user and get information about the user.

Queries that include both a join and a Select * statement are not permitted

Instead, write a statement that specifies each column name, even when there are multiple columns.

InvokeCreate

Invokes the Create method on an API object. Returns the API status code. InvokeCreate(@ts, @ts_statusMsg, @errorCode)

Content Builder Block SDK - Custom editing experience

Limit the user's editing control for fonts and colors with a custom block

You can also input data directly into the data extension by adding individual records. This method encrypts data as well.

Marketing Cloud builds a message using encrypted data, then converts that data to plain text using a symmetric key at send time. The system then sends the message from our mail transfer agent (MTA). The Marketing Cloud stores all tracking and deliverability information as identified by the corresponding subscriber key values.

Field-Level Encryption Data Imports

Method/ Option Imports/ None API Call/ CreateRow; UpdateRow Triggered Send/ None Data Extension AMPscript Functions/ Lookup; InsertDE; UpsertDE

Functions

Most functions, including MIN, MAX, and more are supported CAST and CONVERT

Update the Canvas in Real Time

Most of the editor's system blocks update the canvas in real time, so your custom block widget should create the same experience for your users. If the user types or selects an option in the block, update those activities in real time rather than waiting for the user to exit or manually save. Use setContent or setSuperContent on changes.

Only SELECT statements to data extension or data views in an account or in the parent account

Nested Queries UNION JOIN GROUP BY

Register Endpoint for Custom Journey Builder Component

Once you know the hosted endpoint for your custom activity or event UI, you must register that endpoint in a Marketing Cloud installed package. To add events or activities to an existing Marketing Cloud app, add them as components in the same package.

Public App

Public Apps, such as single-page or mobile applications, make API requests in the context of an end user. These integrations are issued only a client ID because they cannot maintain the confidentiality of a client secret.

Data View: SMSMessageTracking

Query this data view in Automation Studio to find message tracking information from Marketing Cloud MobileConnect SMS sends. This data view allows customers to view their send and receive history. Information from this query relates to the owner of a private short code or long code or a client using a shared short code to which the subscriber has opted in. View message tracking information about SMS sends in MobileConnect by querying the _smsmessagetracking data view. NOTE Code and keyword values are currently represented as a static GUID.

Data View: SurveyResponse

Query this data view in Automation Studio to find responses to surveys sent from your Marketing Cloud account. View responses to surveys sent from your account by querying the _SurveyResponse data view.

Data View: SubscriberSMS

Query this data view in Automation Studio to find subscribers from Marketing Cloud SMS Interactions. View information about SMS subscribers from SMS Interactions by querying the _SubscriberSMS data view. NOTE This data view does not support MobileConnect.

Data View: Subscribers

Query this data view in Automation Studio to find subscribers in your Marketing Cloud account and their statuses. View email subscribers in your account and their statuses by querying the_Subscribers data view. Subscriber attributes are not available.

Data View: ListSubscribers

Query this data view in Automation Studio to find subscribers on lists in your Marketing Cloud account. View subscribers on lists in your account by querying the _ListSubscribers data view.

Data View: SMSSubscriptionLog

Query this data view in Automation Studio to find subscription log information from Marketing Cloud MobileConnect SMS sends. For example, view a history of all mobile numbers subscribed to a keyword. View subscription log information about SMS sends in MobileConnect by querying the _SMSSubscriptionLog data view. Information from this query relates to the owner of a private short code or long code or a client using a shared short code to which the subscriber has opted in. NOTE Code and keyword values are currently represented as a static GUID.

Data View: Sent

Query this data view in Automation Studio to find the subscribers sent emails from your Marketing Cloud account. View subscribers who were sent emails from your account by querying the _Sent data view.

Data View: Social Network Tracking

Query this data view in Automation Studio to find tracking data on content shared from your Marketing Cloud sends via Social Forward. View tracking data on content shared from your sends via Social Forward by querying the _SocialNetworkTracking view.

Data View: Unsubscribe

Query this data view in Automation Studio to find unsubscribes from email lists in your Marketing Cloud account. View unsubscribes from email lists in your account by querying the _Unsubscribe data view.

Data View: FTAF

Query this data view in Automation Studio to view behavioral information related to email messages from your Marketing Cloud account that were forwarded to friends. View behavioral information related to email messages from your account that were forwarded to friends (FTAF) by querying the _FTAF data view.

Data View: Click

Query this data view in Automation Studio to view click data for emails from your Marketing Cloud account. View clicks for links in emails sent from your account by querying the _Click data view.

Data View: Complaint

Query this data view in Automation Studio to view complaints data related to emails from your Marketing Cloud account. View data regarding spam complaints from subscribers about email sends from your account by querying the _Complaint data view.

Data View: EnterpriseAttribute

Query this data view in Automation Studio to view subscribers in your Enterprise Marketing Cloud account and their profile attributes. View subscribers in your Enterprise account and their profile attributes by querying the _EnterpriseAttribute data view. NOTE This data view is only available in the Parent account and cannot be used in a business unit.

RaiseError

Raises the error given in string and stops processing of job. If optional B1 is included with a value of true, this function stops the send for the current subscriber only. 1 string Required Error message to display 2 boolean Indicates whether function skips send for current subscriber and continues or stops. A value of true skips the send for current subscriber and moves to next subscriber. A value of false stops the send and returns an error. Function defaults to false. 3 string API error code 4 string API error number 5 boolean Indicates whether the function records information to data extensions before error occurs, even if the process skips the subscriber. A value of 1 retains information written to data extensions before the error occurs, even if the subscriber is skipped. A value of 0 does not retain information recorded before the error. This parameter refers to inserted, updated, upserted, or deleted information via AMPscript. RaiseError('An Error Occurred') System returns the error message 'An Error Occurred' and stops the job. RaiseError('Don't send to subscriber', true) System returns the error message 'Don't send to subscriber' and stops the send to that subscriber only. Please note that because the system pre-processes and builds these emails, tracking and reporting numbers include these emails despite the errors and may cause inaccuracies. Use this function to handle the errors of a small number of subscribers, rather than as a method to segment out large numbers of subscribers. Instead, use query activities and exclusion lists to handle your segmentation needs.

LookupRows

Returns a rowset from a data extension where the field matches the specified value. Specify additional field value pairs as part of an AND clause. This function returns a maximum of 2000 rows. To better control the number or the order of returned rows, use the LookupOrderedRows() function. This limitation enhances script performance. LookupRows('ZipCode','City',HomeCity) Returns the ZipCode rows where the City field matches for HomeCity value

LookupRowsCS

Returns a rowset from a data extension where the field matches the specified value. The system treats strings as case-sensitive. This function returns a maximum of 2000 rows.

LookupOrderedRowsCS

Returns a specified number of rows. Treats any string value in a case-sensitive manner. You can specify multiple additional field and value pairs as part of an AND clause. The function returns an empty set when no values match.

LookupOrderedRows

Returns a specified number of rows. You can specify multiple additional field and value pairs as part of an AND clause. The function returns an empty set when no values match. Function Properties 1 string Required Name of data extension from which to return specified rows 2 numeric Required Number of rows to return. A value less than 1 returns the default 2000 rows. This limitation enhances script performance. 3 string Required Defines order of return as field ASC or field DESC 4 string Required Field to use to build WHERE clause 5 string Required Value to use to build WHERE clause Set @rows2 = LookupOrderedRows("Cars",4,"Horsepower Desc","MPG",Field(@cardata,"MPG")) This call returns the 4 rows from the Cars data extension with the highest horsepower that match the value specified by MPG.

Lookup

Returns specified value from a data extension. You can specify multiple additional field and value pairs as part of an AND clause. %%=Lookup('PostalCode','City','PostalCode',46016)=%% Returns the city associated with the postal code 46016 in the PostalCode data extension: Anderson, IN

ContentArea

Returns the content stored in the content area specified by its ID ContentArea(1, 2, 3, 4) 1 string Required ID of specified content area 2 string Required Name of any impression region contained in content area 3 string Required Error message to deliver when the function cannot return content 4 string Required Content area to display when the function cannot find other content var myContent = ContentArea(12345); In this sample code, the variable gets the information from the specified content area. The content is not written to the email or landing page you create. Instead, the content resides in the variable for use as any other string.

REST API for transactional messaget

Route for sending: /messageDefinitionSends

Combining the _EnterpriseAttribute data view and the _Subscriber data view

SELECT b.[first name], b.[last name], b.[age], a.[Status] as 'Subscription Status', a.[EmailAddress] as 'Email' FROM _subscribers a INNER JOIN _EnterpriseAttribute b ON a.subscriberID = b._subscriberID

Pulling Tracking Information for a Triggered Send Use Case: Viewing available tracking information regarding a triggered send

SELECT * FROM _Open WHERE TriggeredSendCustomerKey = 'External Key of Triggered Send'

Querying Subscriber Data Using the _EnterpriseAttribute data view

SELECT * from _EnterpriseAttribute NOTE This query can be used in Enterprise 2.0 edition accounts only. Core, Advanced, or Enterprise do not support querying subscriber attributes.

Querying Subscriber Data Using the _Subscriber data view

SELECT * from _subscribers

SQL to change line breaks to spaces

SELECT REPLACE(REPLACE(@str, CHAR(13), ''), CHAR(10), '')

SOAP/REST API - which supports username and password?

SOAP API - Also supports OATH for a short-lived token

support for WS_AtomicTransaction and WS_Security

SOAP can benefit developers when there is a high need for transactional reliability

API Integration

Store your client ID and secret securely. Never expose this information on the client side via JavaScript or store it in a mobile application.

REST + JSON

The Easy Way to Expose Web Services

What is the Endpoint URL?

The baseUrl for your application. Journey Builder loads all assets relative to this endpoint.

JobID

The job ID number for the email send

ListID

The list ID number for the list used in the send

SMTPBounceReason

The reason for the bounce relayed by the mail system nvarchar(max)

More efficient operators improve your queries such as = or AND

The sample query could be rewritten to avoid the non-searchable (non-SARGable) operator. Inefficient Query with Non-Searchable Operators: WHERE NOT age > 18 AND age <18 Instead, write this query: Efficient Query: WHERE age = 18

Contact Deletion in Contact Builder

This feature applies only to contacts in Email, MobileConnect, MobilePush, and Contact Builder.

InsertDE

This function applies to email messages at send time only. Inserts a row in a data extension with the column values listed in name and value pairs. You can include multiple name and value pairs as necessary. Returns no value. Use this function with email messages at send time only. No value is returned. Usage InsertDE('SomeDE','FirstName',FirstName, 'LastName',LastName, 'CreatedDate',NOW())

UpsertData

This function only works in a landing page, microsite page or CloudPage, or in an SMS message in MobileConnect. This function adds or updates the Data Extension row referenced in the column and value arguments. Values updated are specified with column name and value pairs. If no record matches the values specified, a new row is added. It returns the number of rows added or updated by the operation. upsertData("LoyaltyMembers",1,"EmailAddress", @emailAddress, "FirstName", @newFirstName, "Updated", @updatedDate)

UpsertDE

This function only works in an email. This function adds or updates the Data Extension row referenced in the column and value arguments. Values updated are specified with column name and value pairs. If no record matches the values specified, a new row is added. This function does not return a value. UpsertDE("LoyaltyMembers",1,"EmailAddress", @emailAddress, "FirstName", @newFirstName, "Updated", @updatedDate)

ContentAreaByName

This function returns the content stored in the specified Content Area and optionally wraps the content in an Impression Region

AttributeValue

This function returns the value of an attribute based on the context of the Contact or Subscriber. These values are derived from a field or attribute related to the Contact or Subscriber that the message is sent to. These can include the following data sources: Email Subscriber Profile Attributes Sendable Data Extension Fields Journey Builder Entry Source Attributes MobileConnect List Attributes MobilePush Attributes. this function will return null if the attribute is not available in the data source context Combined with a Lookup call to get the name of an attribute, you can retrieve an attribute's value and pass it into a variable. For example, this code retrieves the value of zipcode. VAR @AttributeName, @AttributeValue SET @AttributeName = Lookup('PostalCode','zipcode','PostalCode',Indianapolis) SET @AttributeValue = AttributeValue(@AttributeName)

getData(callback(:dataObject))

This method gets the custom block's metadata and passes it into a callback function. Use the metadata as the custom block's way to retain state. Create the getData method as a JSON serializable object.

getContent(callback(:content))

This method gets your block's current content and passes it into the callback function. This is the content that is sent in the final message.

triggerAuth(appID)

This method opens a hidden iframe to the SSO page for the appID provided. Then the block's server side login URL (the login URL for the appID) is passed to a JSON Web Token (JWT) so it can request a token.

setContent(content, callback(:newContent))

This method sets the block's content. Updated content is passed into a callback function. The content passed into the callback doesn't necessarily match the content passed as the first parameter. Processing is built in to remove potentially malicious content and to correct HTML. Ensure that the callback's content is used as the source of truth for current content, rather than using the content passed.

setData(dataObject, callback(:dataObject))

This method sets the block's metadata. The updated data object is passed into a callback function. This method overwrites the entire metadata. Any partial data object can cause data loss. Extend your current metadata to include a full data object before passing to setData.

setSuperContent(superContent, callback(:newSuperContent))

This method sets the block's visible preview content. Super Content is used for preview purposes only. It allows the block to show the user a representation of the block in the preview, in case the content being set contains AMPscript, Guide Template Language (GTL), or other non-HTML content that is used for personalizing messages and doesn't display cleanly in the preview. Similar to setContent, the content passed to the callback doesn't always match the superContent passed in because of how the block is processed. Use SuperContent to set a preview, not for consumption by the custom block.

setBlockEditorWidth(width, callback())

This method sets the width of the current block. The width must be greater than 425px and less than 850px. Percentage widths aren't supported. The width doesn't persist, so for example, if you want the block's width to be 500px, the width must be set every time the block is opened.

URI

Uniform Resource Identifier - specifies how to access a resource on the Internet accessed using standard HTTP methods (HEAD, GET, POST, PATCH, DELETE) REST API is based on the usage of resources, their URIs, and the links between them.

Intermediate Tables

Use intermediate tables to divide a query that gathers data from multiple data extensions into smaller queries, which each write results to a holding table. Once the smaller queries have run, a final query unites the results in usable form. Use intermediate tables to write efficient data view queries. Data views such as _open or _click do not have a primary key, nor can they be indexed. Query activities that use data views commonly take longer to complete. If you are using many joins, use intermediate tables. Using intermediate tables with queries multiplies the timeout period. Instead of using one query activity with a 30-minute timeout period, use two query activities that each span 30 minutes. Using two queries increases the timeout period to 60 minutes.

Data View: Journey Activity

Use this data view to join to the email tracking system data views to identify the Triggered Send Definition associated to an email activity in a Marketing Cloud journey and more. View data about activities included in your Journey Builder journeys using the _JourneyActivity data view. NOTE JourneyActivityObjectID corresponds to TriggererSendDefinitionObjectID in the _Sent, _Open, _Click, _Bounce, and _Unsubscribe data views.

InsertData

Use this function with landing pages, SMS and MMS messages in MobileConnect, push messages in MobilePush, and messages in GroupConnect. Inserts a row in a data extension. Returns the number of rows affected. Usage InsertData('SomeDE','FirstName',FirstName,'LastName',LastName,'CreatedDate',NOW())

getUserData(callback(:dataObject))

Use this method to get context for the currently authenticated user. The updated data object is passed into a callback function. The object argument of the callback contains a stack and locale property.

Explicitly specify the column names you need in your select clause opposed to using Select *

Using select * actually causes the Query Activity parser to look at the field names and snapshot the fields at the time the query is saved. In the future, if you add a new field to your data extension, it does not get automatically included

Unsupported SQL elements

Variables Cursors User Defined Functions Transaction and Locking GOTO PRINT Any sp_* stored procedure EXEC Temporary Tables and Common Table Expressions TEXT and IMAGE Functions Open-ended comment designations such as '--' to comment out a line

Data View: Coupon

View data regarding coupons used in your Marketing Cloud account by querying the _Coupon data view in Automation Studio. View data regarding coupons used in your account by querying the _Coupon data view.

Web App

Web Apps make API requests in the context of an end user. These integrations are issued a client ID and client secret because they can maintain the confidentiality of a client secret.

Understand the Contact Record Deletion Process

When possible, do not delete contacts to ensure your marketing activities honor all applicable unsubscriptions. While you can delete contacts related to Email Studio from your Marketing Cloud account, this deletion does not totally remove their information from Marketing Cloud. We retain this information to ensure that the appropriate email addresses do not receive messages from which they unsubscribed.

_EnterpriseAttribute table

When profile attributes are created in Enterprise 2.0 accounts, new columns are added to the _EnterpriseAttribute table. Data view queries in Enterprise 2.0 accounts can return results from profile attribute columns in addition to the standard columns.

Remember User Choices

When the user makes choices in the block widget and saves the block, they expect those choices to be remembered when they open that same block again. To save configuration separately from the block content itself, use getData.

Field-Level Encryption Data Exports

With Field-Level Encryption turned on, export data from the Marketing Cloud using one of these methods: • FTP export of a data extension from Contact Builder • File download of a data extension via browser from Contact Builder • Extract via Interactions - this method exports data as encrypted data only • API retrieval of a data extension

Delete Packages

You can delete packages and apps created in an account in your organization. Only users with the Installed Packages | Administer permission and access to the account in which the package was created can delete the package or app. The package or app is deleted from all accounts in the enterprise. To delete a package, navigate to it, and click Delete.

Install Packages

You can install packages and apps from AppExchange or from an implementation partner. Only users with the Installed Packages | Administer permission and access to all the accounts in the enterprise can install a package or app. The package or app can be installed in all accounts in the enterprise.

Uninstall Packages

You can uninstall packages and apps installed from AppExchange or an implementation partner. Only users with the Installed Packages | Administer permission and access to all the accounts in the enterprise can uninstall a package or app. The package or app is uninstalled from all accounts in the enterprise.

functionality that doesn't exist in AMPscript

You can use arrays in SSJS. You can use the EVAL function in SSJS. SSJS handles more advanced exception handling, including try catch blocks.

A REST request consists of four components:

a resource URI, an HTTP method, request headers, and a request body

REST supports many data formats

but the predominant use of JSON means better support for browser clients. JSON sets a standardized method for consuming API payloads so that you can take advantage of its connection to JavaScript and the browser

The Content Builder SDK

cross-document wrapper, which lets your custom block's HTML page update the content block within the app in real time. To facilitate communication with the editor, the SDK exposes available interactions as simple JavaScript methods with a callback.

Lock-and-Publish accounts deletions?

isolate deletions to that account, no matter which accounts exist in the larger structure

Agency and Agency Client accounts deletions?

isolate deletions to that account, no matter which accounts exist in the larger structure.

REST is easy to understand

it uses HTTP and basic CRUD operations, so it is simple to write and document. This ease of use also makes it easy for other developers to understand and write services against

One of the most important characteristics of SOAP?

it uses XML rather than HTTP to define the content of the message.

The Argument For SOAP

legacy system support. If you built a connector between your application and Salesforce back in the day, there's a decent probability that connection was built in SOAP.

the scope

reflects the enabled permissions for the API request

GetaSend List Basedon Aggregate Row Count Use Case: Generating a Sendable list from a detailed data set

select visitorid from [cart abandonment segment] group by visitorid having count(visitorid) > 1

the account ID

the MID for the account

Field-Level Encryption doesn't function with:

• Data obfuscation • Data masking • Tokenized Sending • SMS messages • Push messages • List-based sending • Data added or updated in a customer profile center • Audience Builder segments, filters, and queries

Choose one of these options when enabling Field-Level Encryption for your account:

• You encrypt your data and import it into your Marketing Cloud account. Any extracted or exported data remains encrypted. • You import plain text data into your Marketing Cloud account, which encrypts that data as part of the import process. Marketing Cloud then decrypts any extracted or exported data. Marketing Cloud exports any data using a data extension export to an FTP location as unencrypted data. • You choose to display data in Preview, landing pages, View as Webpage, Forward to a Friend, platform apps, and Send Logging in unencrypted text. By default, the Marketing Cloud encrypts this data.


Kaugnay na mga set ng pag-aaral

IP: Pathway of Blood Through the Heart

View Set

College Health-Chapter 1 Study Guide

View Set