Developer changelog
Subscribe to the changelog to stay up to date on recent changes to Shopify’s APIs and other developer products, as well as preview upcoming features and beta releases.
Improved support for syncing external marketing activities and receiving aggregate marketing data
API
Effective January 01, 2024
Action required
We're revamping the External Marketing APIs in the 2024-01 version of the GraphQL Admin API.
Breaking changes
- The
channel
field in marketingActivityCreateExternal and marketingActivityUpdateExternal has been renamed tomarketingChannelType
. utcOffset
andisCumulative
are now required fields and thefetchedAt
field has been removed from marketingEngagementInput.- The
utm
field has been deprecated from MarketingActivityUpdateExternalInput.
Improvements on the creation of marketing activities
- marketingActivityUpsertExternal can be used to sync externally managed activities without having to keep track of Shopify IDs.
- marketingActivityCreateExternal or marketingActivityUpsertExternal can be used to create a hierarchy of activities. Activities can be created to represent ads, ad groups, or campaigns.
- Bulk mutation support has been added for marketingActivityUpsertExternal. Learn more about bulk mutations on Shopify.dev.
Now supporting the deletion of marketing activities
- marketingActivityDeleteExternal can be used to delete a single external marketing activity.
- marketingActivitiesDeleteAllExternal can be used to enqueue a job to bulk delete all external marketing activities. This can be used to cleanup data if a store owner revokes permission to sync data to Shopify.
Improved support for syncing aggregate data
- The
remoteId
can be used to reference a marketing activity in marketingEngagementCreate. - marketingEngagementCreate can be used to sync aggregate data at the activity level and at the channel level.
- Bulk mutation support has been added for marketingEngagementCreate. Learn more about bulk mutations on Shopify.dev.
- marketingEngagementsDelete can be used to enqueue a job to delete all channel-level data that was sent through marketingEngagementCreate. This can be used to cleanup data if a store owner revokes permission to sync data to Shopify.