Dynamic Product Ads
此内容尚不支持你的语言。
How Does it Work?
Dynamic Product Ads (DPAs) are their own step in the Axon ad experience. DPAs make your campaigns more impactful by showcasing personalized product recommendations pulled directly from your synced Product Catalog. Each product links straight to its product detail page, giving shoppers a seamless path from discovery to purchase. For brands with 5+ SKUs, DPAs create more relevant shopping experiences and consistently drive higher performance, with advertisers typically seeing a 10–25% lift in conversion metrics.
The first step is configuring your Product Catalog via the Catalog Manager.
Getting Started
There are three different ways to add your Product Catalog. In Axon Ads Manager, go to the Catalog tab on the right-hand side, click the pencil icon in the top left corner to Edit Catalog, and you’ll see three available methods to choose from as your catalog Data Source.
1. Shopify Connection
If you integrated the Shopify App pixel, you can easily sync your product catalog using the Connect Shopify method in the Catalog Manager. In addition to easy setup, the benefit of connecting via Shopify is that your catalog will be up to date with the latest products on your site, including product pricing and availability.
2. Import from a File (CSV Feed)
CSV stream catalogs give advertisers finer control over what products will be a part of your product catalog. There are two ways advertisers can integrate a CSV streamed catalog:
- Data Feed Provider: Advertisers can insert a catalog CSV feed generated through a feed provider, leveraging any of the third-party partners listed here.
- Custom CSV File: Advertisers can provide an endpoint for Axon to download the product catalog in a
.csv
format on a daily basis. If you choose to provide your own CSV file:
- Use the following Catalog CSV template with your catalog information.
- Upload your CSV to a publicly accessible location. See this example.
- Update the uploaded CSV whenever you have changes (daily basis is recommended). AppLovin will sync your catalog stream once per day.
- Ensure
salesPrice
never exceedsprice
, as this will cause catalog sync issues due to data integrity concerns. - Ensure that no fields contain commas (you may use commas only to separate fields).
- Please reference the variant object table for additional details on the required fields for CSV streams.
Important Data Requirements for CSV Feed Method
- Verify that your pixel sends
item_id
anditem_variant_id
with all purchase events, with the proper hierarchyitem_id
: representing the parent item independent of its variants. Multiple item_variant_ids may share the same item_id.item_variant_id
: for example a size or color variation of the parent item. Every variant in your catalog must have anitem_variant_id
that is not shared by any other variant or item.
- These fields (
item_id
anditem_variant_id
) passed with purchase events should match the values sent in the CSV in their respective columns (itemId
andid
)
3. Inferred (from Axon Pixel)
Inferred catalogs are the default method of catalog creation for non-Shopify sites who don’t otherwise provide a CSV stream. This method uses information registered in pixel events to build the product catalog. For finer control over which items are included in your catalog, choose methods 1 and 2.
Important Data Requirements for Inferred Method
- Verify that your pixel sends
item_id
anditem_variant_id
with all purchase and view_item events, with the proper hierarchyitem_id
: representing the parent item independent of its variants. Multiple item_variant_ids may share the same item_id.item_variant_id
: for example a size or color variation of the parent item. Every variant in your catalog must have an item_variant_id that is not shared by any other variant or item.item_id
anditem_variant_id
values passed with purchase events should match those passed with view_item events.
- Ensure
image_url
is passed with view_item events, and links to a high quality image with proper file extension. item_category_id
is a highly recommended field.
How to Set DPAs Live in Your Campaigns
After syncing your Catalog you are ready to go! Just toggle “Enable Dynamic Product Ads” on during campaign setup and choose which catalog to use.
Additional Information
Glossary
Term | Definition |
---|---|
catalog | A catalog holds the products you intend to sell. AppLovin recommends that you have only one catalog for all your products. |
variant | Variants are individual SKUs to sell. Every SKU should be its own variant. The catalog manager considers variants that have the same itemId to be variants of the same item. For example, a Red Small Shirt, Red Large Shirt, and Blue Large Shirt by the same brand are each their own variant but share the same itemId . |
The Variant
Object
Field | Type | Required? | Description |
---|---|---|---|
additionalImageUrls | String[] | no | Additional images associated with the variant. Valid extensions are .jpg , .jpeg , and .png . Use semicolon characters rather than commas to separate items in this array. |
additionalVideoUrls | String[] | no | Additional videos associated with the variant. Valid extension is mp4 . Use semicolon characters rather than commas to separate items in this array. |
ageGroup | String | no | One of ADULTS , ALL_AGES , INFANT , KIDS , NEWBORN , or TODDLER |
brand | String | no | Ignored if another variant exists with the same itemId . Must be no longer than 256 characters. |
categoryId | Integer | yes | Google category ID |
description | String | yes | A short description of the variant. The description should be concise and informative, no longer than 8192 characters. |
gender | String | no | One of FEMALE , MALE , or UNISEX |
id | String | yes | The ID of the variant. This must match the item_variant_id in your pixel. Must be no longer than 64 characters. |
isAvailable | Boolean | yes | Whether the variant is available or out of stock |
isBundle | Boolean | yes | Whether the variant is a collection of multiple items sold together |
itemId | String | yes | The ID shared across variants of an item. This must match the item_id in your pixel. Must be no longer than 64 characters. |
multipackQuantity | Number | no | The number of identical items in a single pack |
name | String | yes | The name of the variant. Must be no longer than 1024 characters. |
numberOfReviews | Number | no | The total number of reviews of the variant |
price | Decimal | yes | The price of the variant. If the variant is on sale, price should be the original price before the sale. |
primaryImageUrl | String | yes | The primary image associated with the variant, shown by default when the variant displays. Valid extensions are .jpg , .jpeg , and .png . Must be no longer than 2048 characters. |
primaryVideoUrl | String | no | The primary video associated with the variant, shown by default when the variant displays. Valid extension is mp4 . Must be no longer than 2048 characters. |
rating | Decimal | no | The rating of the variant, on a scale from 0 to 5. null if there is no rating. |
rewardEndDate | DateTime | no | When the rewardPercent validity ends. Format this as a UTC time according to ISO-8601, without a time zone offset (for example: 2025-01-07T00:00:00 ). If rewardStartDate and rewardEndDate are both null , the rewardPercent is not active. If only rewardEndDate is null , the rewardPercent is active beginning at the rewardStartDate . |
rewardPercent | Number | no | The percent-reward that a customer receives for purchasing the variant, expressed as a number between 0 and 100 |
rewardStartDate | DateTime | no | When the rewardPercent begins to be valid. Format this as a UTC time according to ISO-8601, without a time zone offset (for example: 2025-01-01T00:00:00 ). If rewardStartDate and rewardEndDate are both null , the rewardPercent is not active. If only rewardEndDate is null , the rewardPercent is active beginning at the rewardStartDate . |
salePrice | Decimal | no | The on-sale price of the variant. null if the variant is not on sale. |
salePriceEndDate | DateTime | no | When the salePrice validity ends. Format this as a UTC time according to ISO-8601, without a time zone offset (for example: 2025-01-07T00:00:00 ). If salePriceStartDate and salePriceEndDate are both null , the salePrice is not active. If only salePriceEndDate is null , the salePrice is active beginning at the salePriceStartDate . |
salePriceStartDate | DateTime | no | When the salePrice begins to be valid. Format this as a UTC time according to ISO-8601, without a time zone offset (for example: 2025-01-01T00:00:00 ). If salePriceStartDate and salePriceEndDate are both null , the salePrice is not active. If only salePriceStartDate is null , the salePrice is active until the salePriceEndDate . |
webUrl | String | yes | The product landing page URL. This page must have the pixel running and fire a View Item event. |