Search term ads are typically the easiest to request. They require a simple "context' to be sent to Project Agora Commerce. A "context" is a bit of code that defines the conditions under which a product is shown to a customer.
Minimum Viable Context:
Below are the minimum values needed to generate a search term ad:
No customer information or cart items are necessary in this simple context. The simple context consists only of search terms and necessary filters.
In order to properly integrate the Search Term Product Listing ad request the searchTerm value shall contain a variable which is used in the search bar of the website's search page and is filled by user input.
This ensures that the ad request is being executed in every case with the value that users enters in the search bar, so that relative ads will show up.
The discount and products fields are legacy and can be ignored
The placementsponsoredproducts should be included in all SPL requests
In gtin field of the above responses you will get the pa_id as in the product feed for the product to be displayed.
Reminder: the pa_id is the concatenation of the catalog prefix and each product SKU, so to identify which SKU to display on your side you may need to remove the catalog prefix and the symbols "--"
pa_id= catprefix--SKU
Filtered Searches
When a user filters their browsing deeper, you are able to serve ads relevant to their filters using productFilters in the context.
In this example, the user has navigated to the Red Wine category within their search, and filtered their browsing to "Shiraz" Red Wines. This is a new request and considered by Project Agora Commerce as a new page, and new set of ads. Even in the rare event the ads served are identical to the unfiltered results.
When a brand menu is available as a filtering option in the search page of the website, then the SPL requests shall respond according to the user input (the option that he will choose from the menu) and the rendering of the SPL grid should be handled by new SPL requests.
If multiple options are selected from the menu then the request shall be handled as in the below example.
In this example the user is navigating in the search page with the search term "Wine" and he chooses as a filter the brands "brand1" and "brand2""
Please note that two attributes separated with the "," character inside brackets [], are handled with an OR logic while the character "," outside the brackets, is connected among different objects with the AND logic.
In the above example, the request translates as: render an SPL item coming from a search query with the search term "Wine" which belongs to either one from the brands "brand1" and "brand2"
The above query can be enhanced further with a category filter. For example there might be a category menu also in the search page which narrows down the results of the search query.
In that case if for example the category "Woman>Face" was chosen by the user then the body of the request shall be modified as below:
Please note that when the user chooses the option to sort the products on the website, the page should be rendered without showing any SPL item so that there won't be any disruption on the sorting functionality and user experience
Enabling Google Analytics tracking for SPL items
In order to start having recordings in your Google Analytics account for the SPL items you will have to add the following utm parameter in the landing url of an SPL item:
utm_source=pacommerce&utm_medium=spl
sessionId is needed to be included in the ad request as it will be used later in order reporting. For more information please check the "Syncing Order Data" page
If you are unsure of the strings displayed on this page. Take a look at the Reference page.