> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hakumedia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a Companion Product for a Native Ad Item



## OpenAPI

````yaml /openapi/haku.json get /ad-items/native/{ad_item_id}/companions/products/{id}
openapi: 3.0.0
info:
  title: Haku API
  version: '2.0'
  description: >-
    API de Haku Ad Server. Las URLs son predecibles y orientadas a recursos;
    todas las respuestas, incluidos los errores, son JSON.
servers:
  - url: https://api.hakumedia.ai/v2
security:
  - API Key: []
tags:
  - name: Ad Items (All)
    description: >-
      An ad item is an object where you enter the details of an individual ad.
      There are different types of ad items, each corresponding to a different
      medium or source.  
        
      The different types of Ad Items are:  
        
      - __Image__ - Ads made of a static image. They are delivered using the
      `image` HTML tag and wrapped in an &lt;a&gt; tag to direct clicks. These
      are typically either affiliate links or email ads.  
        
      - __Rich Media__ - Also known as HTML5 ads, these allow you to serve
      dynamic, animated, and interactive ads in lieu of the legacy Flash format.
      HTML5 ads are typically uploaded as ZIP archives, and include HTML,
      scripts, styles, and media as a self-contained package. __NOTE__: Haku
      accepts only HTML5 ZIP archives that contain 200 files or fewer.  
        
      - __Custom HTML__ - Also known as third party tags, these are custom ads
      or scripts, typically used when you want to serve ads from an ad exchange
      or other external source.  
        
      - __Native__ - For native ads, which rely on native ad templates.  
        
      - __S2S Connection__ - Ads from other ad networks, delivered via a
      server-to-server connection. __NOTE__: Soon to be deprecated, since demand
      sources can now be managed under the Programmatic section of the Haku
      interface.
    x-group: Campañas
  - name: Ad Items / Image
    description: >-
      <p>Image ad items (commonly known as "display ads") are an effective
      medium for delivering advertising messages across multiple platforms. They
      are easy to setup and configure because they require only a creative (i.e.
      an image file) and, when applicable, a destination URL to which users will
      be redirected when the ad is clicked.</p><p>In general, ad items are
      assigned to an advertiser campaign, and in turn the campaign to a zone. Ad
      items can also be assigned directly to a zone, but we recommend doing so
      only if the ad items are directly related to that zone's publisher or are
      intended to be default/house ads.</p>
    x-group: Campañas
  - name: Ad Items / Custom HTML
    description: >-
      <p>Creating a custom HTML ad item is the best option if you need to serve
      a third-party advertisement from an ad network or another advertiser, or
      if you want to create an ad that cannot be achieved using traditional
      display advertising.</p><p>Custom HTML ad items allow you to implement
      virtually any type of ad using Haku’s ad serving macros and a text
      box.</p><p>In general, ad items are assigned to an advertiser campaign,
      and in turn the campaign to a zone. Ad items can also be assigned directly
      to a zone, but we recommend doing so only if the ad items are directly
      related to that zone's publisher or are intended to be default/house
      ads.</p>
    x-group: Campañas
  - name: Ad Items / Native
    description: >-
      Native ad items use native templates to create seamless editorial
      content.<br/><br/>You can read more about native ads and how they are used
      in our help documentation.
    x-group: Campañas
  - name: Ad Items / Companion Products
    description: >-
      <p>Ad item companion products link an ad item to a product in a product DB
      catalog. Each companion product belongs to a single ad item and references
      a specific product via a catalog ID and product identifier
      (SKU).</p><p>Companion products are nested under ad items and can be
      managed under both
      <code>/ad-items/image/{ad_item_id}/companions/products</code> and
      <code>/ad-items/native/{ad_item_id}/companions/products</code>.</p><p>Requires
      the <strong>Display Ad Item Companions</strong> and <strong>Product DB
      Replicated</strong> features.</p>
    x-group: Retail media
  - name: AdServe
    description: >
      For server-side ad requests via JSON API, use the adserve endpoint to
      request ad items in JSON format from the ad server.<br/><br/>The ad
      response will include details of your advertisement and relevant tracking
      information. The ad item can then be styled before being displayed to the
      user for a truly native ad - one that matches the look and feel of its
      display environment. JSON ads can be displayed on web sites, mobile apps,
      chatbots, billboards, smart mirrors, elevators, and many other
      platforms.<br/><br/>Ad serve requests are made to a separate server:
      `https://ads.hakumedia.ai`.
    x-group: Ad serving
  - name: Advertisers
    description: >-
      An advertiser is an individual or a company looking to purchase ad space
      for their advertisements. Administrators and managers (if permitted) can
      create advertiser accounts, create new advertisements, and copy conversion
      tags. Advertiser user accounts can also be permitted to schedule new
      campaigns.
    x-group: Campañas
  - name: Campaigns (All)
    description: >+
      Campaigns are groups of ad items. Instead of creating an ad item within a
      zone, you can assign one or more ad items to a campaign. You can then
      serve those ad items by assigning that campaign to one or more zones.


      We highly recommend assigning ad items to campaigns instead of directly
      into zones. Ad items created directly within a zone cannot be assigned to
      other zones, whereas ad items in campaigns can be served to multiple
      zones. Campaigns also make it much easier to track the performance and
      statistics of related ad items. We recommend creating an ad item directly
      within a zone only if the ad item is meant to be a default or fallback
      ad. 


      When you assign a campaign to a zone, you assign all the ad items under
      that campaign to that zone. The ad items will have the same assignment
      details, but each ad item can be assigned a specific weight to allow you
      to prioritize one over another.


      If a campaign contains ad items of varying sizes, only ad items compatible
      with the requesting zone will be considered for serving.


      There are two types of campaigns. A Standard Campaign is for most ad items
      types, including images, HTML/Rich media, and email ads. A VAST Campaign
      is for VAST ad items.

    x-group: Campañas
  - name: Campaigns / Standard
    description: >-
      A standard campaign is a group of image ads, HTML5/Rich Media ads, custom
      HTML ads, or email ads. Standard campaigns can be scheduled to serve in
      the zones of your choice (except for VAST zones, which are compatible only
      with VAST campaigns), enabling you to easily collect grouped statistics
      and determine payouts for advertisers. 


      Campaigns do not have size restrictions, which means you can assign ad
      items of varying sizes to the same campaign. However, only the ad items
      compatible with the requesting zone will be considered for serving.
    x-group: Campañas
  - name: Campaign Assignments
    description: >-
      A campaign assignment represents the relationship between an ad item and a
      campaign.
    x-group: Campañas
  - name: Ad Items / Catalog Item
    description: >-
      <p>Ad items represent the particular catalog item (product) being
      promoted. One or more catalog ad items may be assigned to a campaign.</p>
    x-group: Retail media
  - name: Ad Items / Catalog Item / Bulk
    description: >-
      <p>Bulk operations for catalog ad items. These endpoints allow you to
      create or delete multiple catalog ad items at once and assign them to
      campaigns.</p>
    x-group: Retail media
  - name: Zones / Catalog
    description: >-
      <p>A catalog zone is the representation of a source of promoted product
      ads. Advertiser campaigns would be assigned to catalog zones (called a
      placement), making them eligible to be matched against when making an ad
      request.</p>
    x-group: Retail media
  - name: Creatives (All)
    description: >-
      Creatives are the displayed part of an ad item. It can be an image,
      HTML5/rich media, custom HTML, or video.
    x-group: Campañas
  - name: Creatives / Image
    description: >-
      The image file that makes up an advertisement is known as the image
      creative. You can create a new image creative, retrieve one or more image
      creatives, update an existing image creative, or delete the image
      creative.
    x-group: Campañas
  - name: Data Keys
    description: >-
      Aside from keywords, location, and platform-based targeting, Haku also
      lets you target specific audiences using key value-based attributes. These
      are called data keys. For example, you can use data keys to target a
      specific age, gender, or date. Like the other forms of targeting, you must
      create and define data keys before you can use them.  
        
      Data keys simply hold the value of attributes. After creating and defining
      data keys, you must create [Data Key Targets](#tag/Data-Key-Targets) to
      set up the actual targeting filters. For more information, read How to
      create data keys and data key targets via API.
    x-group: Targeting
  - name: Data Key Targets
    description: >-
      Data Key targets are used hand-in-hand with [Data Keys](#tag/Data-Keys) to
      create custom targeting filters. For more information, read How to create
      data keys and data key targets via API.
    x-group: Targeting
  - name: Geo Targets
    description: >-
      <p>Geographic targets ("geo targets") enable you to deliver advertisements
      to users based on their geographic location. This is an effective way of
      reducing wasted impressions and increasing your return on
      investment.</p><p>Geographic targeting can be as generic as continents or
      as specific as cities. A geo target may contain as many areas as desired
      which can vary in specificity. (For example, an area of <i>"South
      America"</i> and an area of a specific city could exist in the same geo
      target.) Geo targets can either be inclusive or exclusive.</p>
    x-group: Targeting
  - name: Media Groups
    description: >-
      Media groups allow you to group creatives together for easier organization
      and management in your account.
    x-group: Campañas
  - name: Native Templates
    description: >-
      Native templates define the styles and formatting of native ads. Once a
      template is created it can then be applied, reused, and edited as needed
      to make native ad items.</br></br>Native ads are ads that look like
      editorial content. For example, a native ad on a blog looks like the other
      articles on the site, a native ad on Instagram looks like an Instagram
      post, and a native ad on a search engine looks like other search results.
      Native ads are also known as sponsored content or promoted posts.
    x-group: Inventario
  - name: Placements
    description: >-
      Assign an advertisement or campaign to a zone based on a set of scheduling
      criteria using the placements endpoint.  

      Each placement represents a combination of criteria required to serve an
      advertisement. Prior to creating a placement, you will need to have
      created several other resources:  
        
      * An [ad item](#tag/Ad-Items-(All)), 

      * a [campaign](#tag/Campaigns-(All)),

      * a [zone](#tag/Zones-(All)),

      * and a [schedule](#tag/Schedules)  
        
      You also have the option to create targeting filters, keywords, and
      activity limits to further control the deliverability of your placements.
    x-group: Campañas
  - name: Platform Targets
    description: >-
      <p>Target your advertisements to specific mobile/tablet/notebook/desktop
      devices, or to specific browsers and operating systems to help ensure
      users get the best ads for their platform. You can also target specific
      mobile phones or tablets, such as iPhones or Samsung devices using device
      targeting filters.</p>
    x-group: Targeting
  - name: Product DB / Catalog
    description: <p>Product catalogs that can be used for product-based advertising.</p>
    x-group: Retail media
  - name: Product DB / Catalog Items
    description: >-
      <p>Product catalog items that can be used for product-based
      advertising.</p>
    x-group: Retail media
  - name: Product DB / Catalog Items / Bulk Upload
    description: >-
      <p>Bulk upload a catalog CSV with column names that match the fields
      submitted to a catalog.</p>
    x-group: Retail media
  - name: Product DB / Publisher Sources
    description: >-
      <p>Publisher Sources that can be used for product-based advertising
      targeting.</p>
    x-group: Retail media
  - name: Product DB / Publisher Source Targets
    description: >-
      <p>Publisher Source Targets that can be used for product-based advertising
      targeting.</p>
    x-group: Retail media
  - name: Publishers
    description: >-
      A publisher is typically a person or a company who owns a website, app,
      newsletter, or even another ad server. Each publisher will have one or
      more zones, which represent the locations on their websites, apps or
      newsletters where advertisements can be displayed.
    x-group: Inventario
  - name: Reports
    description: >-
      <p>Reporting is the new interface to Statistics. It serves to quantify the
      serving of your advertisements across price and performance related
      metrics. They are updated in real time. We go to great lengths to give you
      detailed and accurate data about the performance of your advertisements to
      help you make informed decisions. The following endpoints enable you to
      build your own reporting dashboard.</p>
    x-group: Reportes
  - name: Schedules
    description: >-
      Schedules describe the conditions necessary for serving advertisements.
      Common conditions include start and end dates, and quotas.  
        
      You can also use delivery methods to determine the expiration and pacing
      set up for advertisements. Default delivery delivers the impressions as
      quickly as possible, while smooth delivery will evenly serve impressions
      over the lifetime dates and quotas.  
        
      For example, with smooth delivery, if your campaign has a quota of 30,000
      impression set over a period of 60 days, the system would serve the
      assignment 500 times per day. Smooth delivery assignments have the highest
      potential priority for serving within Haku. If a quota has not been filled
      then that assignment will generally always serve as long as a targeting
      system does not interfere.  
        
      __NOTE__: Schedules have no effect on their own and must be referenced
      through their ID. For campaigns with campaign-level scheduling, the
      schedule must be referenced in the [placement](#tag/Placements). For
      campaigns with ad item-level scheduling, the schedule must be referenced
      in the [campaign assignment](#tag/Campaign-Assignments) for each ad item
      in the campaign.  
        
      Multiple placements and assignments can reference the same schedule, so
      they can share the same quota, start/end dates, and other common settings.
    x-group: Campañas
  - name: Zones (All)
    description: >

      Zones represent the space on a Publisher's website where ads are displayed
      ("served"). A zone's size can either be fixed or dynamic.


      The types of zones are:
       * __Standard__ - The most common, used to serve various ads including image, HTML5/Rich Media, Native Ads or third party scripts.
       * __VAST__ - Used to serve VAST video ads.
       * __Email__ - Used to serve image ads in emails and newsletters.
    x-group: Inventario
  - name: Zones / Standard
    description: >-
      The most common zone type. Used to serve image ads (JPG,PNG, or GIF),
      HTML5/Rich Media, or third party scripts.
    x-group: Inventario
paths:
  /ad-items/native/{ad_item_id}/companions/products/{id}:
    get:
      tags:
        - Ad Items / Companion Products
      summary: Get a Companion Product for a Native Ad Item
      parameters:
        - name: ad_item_id
          in: path
          description: Identifier of the ad item.
          required: true
          schema:
            type: integer
          example: ''
        - name: id
          in: path
          description: Identifier of the companion product.
          required: true
          schema:
            type: integer
          example: ''
        - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ad_item_companion_product_get'
        '404':
          $ref: '#/components/responses/resource_does_not_exist'
components:
  parameters:
    fields:
      name: fields
      in: query
      description: >-
        Restrict the fields you wish to retrieve by listing the desired fields
        formatted as a comma-separated list. Fields like "object", "self", and
        "id" are always returned.
      schema:
        type: string
  schemas:
    ad_item_companion_product_get:
      allOf:
        - $ref: '#/components/schemas/resource_get'
        - properties:
            object:
              type: string
              example: ad_item_companion_product
            self:
              type: string
              example: /v2/ad-items/image/1234/companions/products/5678
          type: object
        - $ref: '#/components/schemas/ad_item_companion_product'
    resource_get:
      properties:
        object:
          description: A string denoting the current resource being requested or affected.
          type: string
          readOnly: true
        self:
          description: >-
            The relative URL of the current resource being requested or
            affected.
          type: string
          readOnly: true
        id:
          description: The current resource identifier (ID).
          type: integer
          readOnly: true
          example: 1234
      type: object
    ad_item_companion_product:
      properties:
        catalog:
          description: The ID of the product DB catalog.
          type: integer
          example: 10001
        product_identifier:
          description: The product identifier (SKU) within the catalog.
          type: string
          example: SKU-1001
      type: object
    error_resource_does_not_exist:
      properties:
        http_status:
          type: integer
          example: 404
        type:
          type: string
          example: resource_not_found_error
        message:
          type: string
          example: Resource not found.
      type: object
  responses:
    resource_does_not_exist:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error_resource_does_not_exist'
  securitySchemes:
    API Key:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API key en el header `Authorization: Basic TU_API_KEY`. La key va tal
        cual, sin codificar en base64. Las credenciales se entregan al comenzar
        la integración.

````