# Represents actions that market a merchant's store or products.
type MarketingEvent implements LegacyInteroperability&Node {
    # The app that the marketing event is attributed to.
    app: App!

    # The marketing channel used by the marketing event.
    channel: MarketingChannel

    # A human-readable description of the marketing event.
    description: String

    # The date and time when the marketing event ended.
    endedAt: DateTime

    # A globally-unique identifier.
    id: ID!

    # The ID of the corresponding resource in the REST Admin API.
    legacyResourceId: UnsignedInt64!

    # The URL where the marketing event can be managed.
    manageUrl: URL

    # The URL where the marketing event can be previewed.
    previewUrl: URL

    # An optional ID that helps Shopify validate engagement data.
    remoteId: String

    # The date and time when the marketing event is scheduled to end.
    scheduledToEndAt: DateTime

    # Where the MarketingEvent occurred and what kind of content was used.
    # Because utmSource and utmMedium are often used interchangeably, this is
    # based on a combination of marketingChannel, referringDomain, and type to
    # provide a consistent representation for any given piece of marketing
    # regardless of the app that created it.
    sourceAndMedium: String!

    # The date and time when the marketing event started.
    startedAt: DateTime!

    # The marketing event type.
    type: MarketingTactic!

    # The name of the marketing campaign.
    utmCampaign: String

    # The medium that the marketing campaign is using. Example values: cpc, banner.
    utmMedium: String

    # The referrer of the marketing event. Example values: google, newsletter.
    utmSource: String
}

# Represents a set of UTM parameters.
type UTMParameters {
    # The name of a marketing campaign.
    campaign: String

    # Identifies specific content in a marketing campaign.
    # Used to differentiate between similar content or links in a marketing campaign to determine which is the most effective.
    content: String

    # The medium of a marketing campaign, such as a banner or email newsletter.
    medium: String

    # The source of traffic to the merchant's store, such as Google or an email newsletter.
    source: String

    # Paid search terms used by a marketing campaign.
    term: String
}
