Media Native

Media Native is an ad format that can display an image or a custom set of Text & Image banner elements, which you can seamlessly integrate with your app's design.

Example of Media Native ad:

Creating a native banner

  1. Decide which native ad elements you want to include in the banner.

  2. Prepare the JSON code. Specify the parameters that you want to customize (ad elements and their values) in the code.

    Example of JSON
    {
      "content": [
        "text",
        "button"
      ],
      "text": {
        "value": "Customizable text from an Adfox ad unit"
      },
      "button": {
        "label": "Custom button",
        "link": " https://ya.ru/ ",
        "backgroundColor": "#5D9B9B"
      }
    }
    
  3. Write JSON to a string and use the \ character to escape quotes.

    Example of JSON with escaped quotes
    {   \"content\": [     \"text\",     \"button\"   ],   \"text\": {     \"value\": \"Customizable text from an Adfox ad unit\"   },   \"button\": {     \"label\": \"Custom button\",     \"link\": \"https:\/\/ya.ru\/\",     \"backgroundColor\": \"#5D9B9B\"   }
    
  4. To ensure correct display of native elements in your app, add support for reading JSON data on the app side. Note that each native ad element specified in JSON must be properly implemented in the app code.

    Example of parsing JSON data (Kotlin)
    
    private fun processAdditionalText(rawJson: String) {
        try {
            val jsonObject = JSONObject(rawJson)
            val contentJSONArray = jsonObject.getJSONArray("content")
    
            repeat(contentJSONArray.length()) { index ->
                val elementName = contentJSONArray.getString(index)
                val elementConfiguration = jsonObject.getJSONObject(elementName)
    
                when (elementName) {
                    "text" -> addTextToLayout(elementConfiguration, index)
                    "button" -> addButtonToLayout(elementConfiguration, index)
                }
            }
        } catch (e: JSONException) {
            adInfoFragment.log(e.message ?: "JSON parsing error")
        }
    }
    
    private fun addTextToLayout(textConfiguration: JSONObject, index: Int) {
        val textView = TextView(this).apply {
            setPadding(resources.getDimension(R.dimen.item_padding).toInt())
    
            text = textConfiguration.getString("value")
        }
        additionalContainer.addView(textView, index)
    }
    
    private fun addButtonToLayout(buttonConfiguration: JSONObject, index: Int) {
        val buttonView = Button(this).apply {
            setPadding(resources.getDimension(R.dimen.item_padding).toInt())
    
            text = buttonConfiguration.getString("label")
    
            val colorHex = buttonConfiguration.getString("backgroundColor")
            setBackgroundColor(Color.parseColor(colorHex))
    
            setOnClickListener {
                val link = buttonConfiguration.getString("link")
                val intent = Intent(Intent.ACTION_VIEW, Uri.parse(link))
                startActivity(intent)
            }
        }
        additionalContainer.addView(buttonView, index)
    }
    
    
  5. Add the banner following the instructions below.

Stages of native banner preparation

Adding a banner to Adfox

  1. In the ad campaign settings, go to the Banners tab and click Add.

  2. Select the App Mobile Native banner type and the Media Native template.

  3. Set the banner parameters:

    • Priority: The number that determines the banner's display order in the campaign. The higher the numeric value, the higher the banner's priority over the other banners in the same campaign. To learn more about priorities, see Adfox help.

    • Image URL (URL) or Image URL (File): Upload the image.

    • Width: Set the banner width (enter an integer in pixels without specifying the dimensions).

    • Height: Set the banner height (enter an integer in pixels without specifying the dimensions).

    • Additional text: If you need to add custom elements to an ad or creative, specify the JSON that you created earlier.

      Example of a filled-in Additional text

    • Start date and time: Required parameters. By default, this parameter is set to the current date. If you don't change it, banners will start being served immediately after you add them (if their status is set to active).

    • Ad label: Select Ad or Social Ad to label your banner. If the creative already has a label, you can choose the Disabled value in the drop-down list.

      Note

      Adding the Social Ad label doesn't define creative content as social advertising. To label creative content as social advertising in the state register, make sure to select the Social ads contract option in the contract with the end advertiser.

    • Domain: Enter the advertiser domain to be added to the label as Ad / Example.com or Social Ad / Example.com (if you selected the Ad or Social Ad value in the drop-down list).

    • Show banner menu: Enable this option to add a token to a non-clickable banner. When serving the banner, it will have the menu icon displayed in the upper-right corner. Clicking the icon opens the advertiser's information and a button to copy the token (if the banner has ad labeling enabled or a third-party token specified).

      The banner menu contains a link to the rules for using recommendation technologies. The link is necessary to meet the requirements of article 10.2–2, part 1, paragraph 3 of Federal Law No. 149-FZ "On Information, Information Technologies and the Protection of Information", dated July 27, 2006.

      Note

      If a banner is non-clickable (the click-through URL field is empty) and information about it needs to be added to the state register, you can enable the banner menu to make a token available when serving the banner.

    • Settings for Russian ad register: This section is only available if you selected Submit data to state register in the campaign settings. Fill out the section fields to register your creative content with the Yandex advertising operator. The creative content will have a token assigned automatically. To learn more about ad labeling, see Adfox Help.

    • Name: Enter a name for the banner. If you leave this field blank, it will be assigned a sequential number.

    • Status: Select a status for the banner:

      • active: The banner is ready to be served.
      • paused: The banner impression is paused.
      • completed: The banner won't be served.
    • Disabled on new placements: This option is enabled by default. Once you create your banner, it won't be placed automatically:

      • In new placements created within the site or section where your campaign is placed.
      • In placements that were enabled in the campaign placement settings after the banner was created. If you disable this option, the banner will be automatically added to any placements that have the campaign placement enabled.
    • Targeting profile: Select the targeting profile you created earlier. To learn more about targeting profiles, see Adfox Help.

    • Events enabled: This option is used to get direct links to events to be tracked in a third-party system. To activate the option, click next to the banner in the Placements tab. In the window that opens, you'll see links to events from 1 to 30. Copy and send them to the third-party system to be tracked there.

    • Impressions in total, day, hour:

      • Impressions total, day, hour: Maximum number of banner impressions. If a campaign is distributed evenly, set the banner display end date. Once the number of impressions reaches the maximum, the banner's status changes to completed and it's no longer served.
      • Impressions per day: Maximum number of impressions per day. Once the number of impressions from the start of the day reaches the maximum, they are paused until the next day starts.
      • Impressions per hour: Maximum number of impressions per hour. Once the number of impressions from the start of the hour reaches the maximum, they are paused until the next hour starts.
    • Clicks total, per day, per hour:

      • Clicks total: Maximum number of banner clicks. If a campaign is distributed evenly, set the banner display end date. Once the number of clicks reaches the maximum, the banner's status is changed to Completed and it's no longer served.
      • Clicks per day: Maximum number of banner clicks per day. Once the number of clicks from the start of the day reaches the maximum, impressions are paused until the next day starts.
      • Clicks per hour: Maximum number of banner clicks per hour. Once the number of clicks from the start of the hour reaches the maximum, impressions are paused until the next hour starts.
    • End time: To set the end date and time, first enable the option.

  4. To save a banner, click Add.

Contact support