[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fwQLGEcEIoJ0wv20fCEE__LYTfz3rro_IMN3U9UE9-yE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":22,"download_link":23,"security_score":24,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27,"vulnerabilities":28,"developer":29,"crawl_stats":26,"alternatives":37,"analysis":132,"fingerprints":296},"radcontrol","AdControl","1.5","Derek Springer","https:\u002F\u002Fprofiles.wordpress.org\u002Fderekspringer\u002F","\u003Cp>Please note: this plugin is officially deprecated. If you are still interested in using this service please utilize \u003Ca href=\"https:\u002F\u002Fjetpack.com\u002Ffeatures\u002Ftraffic\u002Fads\u002F\" rel=\"nofollow ugc\">the offical Ads module included in Jetpack.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>With traditional advertising relationships a publisher or blogger has two relationships and platforms–one for publishing and the other for advertising. AdControl combines the two partnerships into one.\u003C\u002Fp>\n\u003Cp>AdControl is a new service from Automattic that extends our advertising scale and know-how to eligible sites using WordPress. We believe it is a special partnership between the largest Internet publishing platform and our users. The team at AdControl and WordPress.com are very excited about the potential to help our self-hosted publishers to earn income from their sites with high quality ads and strong rates from advertisers.\u003C\u002Fp>\n\u003Cp>Make sure you \u003Ca href=\"https:\u002F\u002Fwordads.co\u002Fsignup\u002F\" rel=\"nofollow ugc\">apply to WordAds\u003C\u002Fa> for each site you want to run AdControl on.\u003C\u002Fp>\n\u003Cp>Requires \u003Ca href=\"https:\u002F\u002Fjetpack.com\u002F\" rel=\"nofollow ugc\">Jetpack\u003C\u002Fa> to be installed and connected. \u003Ca href=\"https:\u002F\u002Fjetpack.com\u002Fsupport\u002Fgetting-started-with-jetpack\u002F\" rel=\"nofollow ugc\">Help getting started.\u003C\u002Fa>\u003C\u002Fp>\n","Harness WordPress.com's advertising partners for your own website.",100,23117,5,"2021-02-11T20:37:00.000Z","5.6.17","3.4","",[19,20,21],"ad-codes","ads","advertising","https:\u002F\u002Fwordads.co\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fradcontrol.1.5.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":30,"display_name":7,"profile_url":8,"plugin_count":31,"total_installs":32,"avg_security_score":33,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"derekspringer",2,200,92,8,88,"2026-04-03T23:19:06.856Z",[38,57,75,97,110],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":25,"num_ratings":25,"last_updated":48,"tested_up_to":49,"requires_at_least":50,"requires_php":51,"tags":52,"homepage":55,"download_link":56,"security_score":11,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"ad-code-manager","Ad Code Manager","0.8.0","Automattic","https:\u002F\u002Fprofiles.wordpress.org\u002Fautomattic\u002F","\u003Cp>Ad Code Manager gives non-developers an interface in the WordPress admin for configuring your complex set of ad codes.\u003C\u002Fp>\n\u003Cp>Some code-level configuration may be necessary to set up Ad Code Manager. Ad tags must be added (via \u003Ccode>do_action()\u003C\u002Fcode>) to your theme’s template files where you’d like ads to appear. Alternatively, you can incorporate ad tags into your website with our widget and shortcode. Check out the configuration guide below for the full details.\u003C\u002Fp>\n\u003Cp>A common set of parameters must also be defined for your ad provider. This includes the tag IDs used by your template, the default URL for your ad provider, and the default HTML surrounding that URL. Ad Code Manager supports Google DoubleClick For Publishers (and Async), and Google AdSense. All the logic is abstracted, however, so configuring a different provider is relatively easy. Check \u003Ccode>providers\u002Fdoubleclick-for-publishers.php\u003C\u002Fcode> for an idea of how to extend ACM to suit your needs.\u003C\u002Fp>\n\u003Cp>Once this configuration is in place, the Ad Code Manager admin interface will allow you to add new ad codes, modify the parameters for your script URL, and define conditionals to determine when the ad code appears. Conditionals are core WordPress functions like is_page(), is_category(), or your own custom functions that evaluate certain expressions and then return true or false.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAutomattic\u002FAd-Code-Manager\" rel=\"nofollow ugc\">Fork the plugin on Github\u003C\u002Fa> and \u003Ca href=\"http:\u002F\u002Fadcodemanager.wordpress.com\u002F\" rel=\"nofollow ugc\">follow our development blog\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Configure Ad Code Manager to manage the advertisements on your site\u003C\u002Fh3>\n\u003Cp>Ad Code Manager is a VIP-sponsored plugin designed to make managing the ad codes used to display advertisements on your site easier. There’s a little bit of work you’ll need to do upfront to integrate Ad Code Manager with your theme.\u003C\u002Fp>\n\u003Cp>The high-level idea behind Ad Code Manager is that it gives non-developers an admin interface to manage ad codes. It then permits users to (optionally) target specific ad codes using conditionals like \u003Ccode>is_home()\u003C\u002Fcode> and \u003Ccode>is_single()\u003C\u002Fcode>. Ad codes are associated with positions in the theme through the use of ad tags.\u003C\u002Fp>\n\u003Cp>Currently, Ad Code Manager easily integrates with Google DoubleClick For Publishers Async and Google AdSense. Other ad providers are supported with additional configuration.\u003C\u002Fp>\n\u003Ch3>Google AdSense and DoubleClick For Publishers Async\u003C\u002Fh3>\n\u003Cp>Let’s use AdSense as our first example. You’ll want to incorporate some of the default ad tags into your theme by use of \u003Ccode>do_action()\u003C\u002Fcode>. Here’s an example you might put in your header.php file:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>do_action( 'acm_tag', '728x90_leaderboard' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Once done, you can select the “Google AdSense” provider in the admin. Ad codes can be registered against ad tags (positions) by choosing the ad tag from the drop-down, entering the tag ID and publisher ID, and hitting “Add New Ad Code”.\u003C\u002Fp>\n\u003Cp>And like that, your 728×90 leaderboard will appear on your site.\u003C\u002Fp>\n\u003Cp>The Google AdSense configuration comes with many of Google’s suggested sizes. Additional ad tags can be registered by way of filtering:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_ad_tag_ids', 'acmx_filter_ad_tag_ids' );\nfunction acmx_filter_ad_tag_ids( $ids ) {\n    $ids[] = array(\n        'enable_ui_mapping' => true,\n        'tag'               => '100x100_smallsquare',\n        'url_vars'          => array(\n            'tag'    => '100x100_smallsquare',\n            'height' => '100',\n            'width'  => '100',\n        ),\n    );\n\n    return $ids;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Keep in mind that you’ll still need to incorporate a \u003Ccode>do_action( 'acm_tag', '100x100_smallsquare' );\u003C\u002Fcode> in your theme to display the ad tag.\u003C\u002Fp>\n\u003Cp>If you choose Google DFP Async as your provider, you’ll likely need to register additional ad tags, as we only package two default ad tags.\u003C\u002Fp>\n\u003Ch3>Custom Ad Provider Implementations\u003C\u002Fh3>\n\u003Cp>As mentioned previously, other ad code providers are supported with additional configuration. Here’s an example of the different filters you would use to configure the older version of Google DoubleClick For Publishers:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n * Define the default URL to be used when rendering ad codes\n *\u002F\nadd_filter( 'acm_default_url', 'acmx_filter_default_url' ) ;\nfunction acmx_filter_default_url( $url ) {\n    if ( 0 === strlen( $url )  ) {\n        return \"http:\u002F\u002Fad.doubleclick.net\u002Fadj\u002F%site_name%\u002F%zone1%;s1=%zone1%;s2=;pid=%permalink%;fold=%fold%;kw=;test=%test%;ltv=ad;pos=%pos%;dcopt=%dcopt%;tile=%tile%;sz=%sz%;\";\n    }\n}\n\n\u002F**\n * Whitelist the DFP URL to be used in ad tags. The whitelist\n * helps prevent execution of arbitrary scripts\n *\u002F\nadd_filter( 'acm_whitelisted_script_urls', 'acmx_filter_whitelisted_script_urls');\nfunction acmx_filter_whitelisted_script_urls( $whitelisted_urls ) {\n    $whitelisted_urls = array( 'ad.doubleclick.net' );\n    return $whitelisted_urls;\n}\n\n\u002F**\n * Define the different ad tags (locations) you'd like to use in your theme\n *\u002F\nadd_filter( 'acm_ad_tag_ids', 'acmx_ad_tags_ids' );\nfunction acmx_ad_tags_ids( $ad_tag_ids ) {\n    return array(\n        array(\n            'tag'      => '728x90-atf',\n            'url_vars' => array(\n                'sz'     => '728x90',\n                'fold'   => 'atf',\n                'width'  => '728',\n                'height' => '90',\n            ),\n        ),\n        array(\n            'tag'      => '728x90-btf',\n            'url_vars' => array(\n                'sz'     => '728x90',\n                'fold'   => 'btf',\n                'width'  => '728',\n                'height' => '90',\n            ),\n        ),\n        array(\n            'tag'      => '300x250-atf',\n            'url_vars' => array(\n                'sz'     => '300x250',\n                'fold'   => 'atf',\n                'width'  => '300',\n                'height' => '250',\n            ),\n        ),\n        array(\n            'tag'      => '300x250-btf',\n            'url_vars' => array(\n                'sz'     => '300x250',\n                'fold'   => 'btf',\n                'width'  => '300',\n                'height' => '250',\n            ),\n        ),\n        array(\n            'tag'      => '160x600-atf',\n            'url_vars' => array(\n                'sz'     => '160x600',\n                'fold'   => 'atf',\n                'width'  => '160',\n                'height' => '600',\n            ),\n        ),\n        array(\n            'tag'      => '1x1',\n            'url_vars' => array(\n                'sz'   => '1x1',\n                'fold' => 'int',\n                'pos'  => 'top',\n            ),\n        )\n    );\n}\n\nadd_filter( 'acm_output_html','acmx_filter_output_html', 5, 2 );\n\u002F**\n * Register the full script output to use with each ad tag.\n *\u002F\nfunction acmx_filter_output_html( $output_html, $tag_id ) {\n    $output_html = '\u003C!-- DFP %pos% %sz% ad tag --> \n    \u003Cscript>\nif ( typeof ord=='undefined' ) { ord=Math.random()*10000000000000000; }\nif ( typeof( dfp_tile ) == 'undefined' ) { dfp_tile=%tile% };\ndocument.write('\u003Cscript src=\"%url%ord=' + ord + '?\">\u003C\u002Fscript>');\n\u003C\u002Fscript>\u003Cnoscript>\u003Ca href=\"%url%ord=%random%?\" target=\"_blank\">\u003Cimg src=\"%url%ord=%random%?\" width=\"%width%\" height=\"%height%\" border=\"0\" alt=\">\u003C\u002Fa>\u003C\u002Fnoscript>\n\u003C!-- \u002F\u002FDFP %pos% %sz% tag -->';\n    return $output_html;\n}\n\nadd_filter('acm_output_tokens', 'acmx_filter_output_tokens', 5, 3 );\n\u002F**\n * Fine tune our output tokens.\n *\n * This is the real example of how easily you can modify output\n * depending on your ad network specs.\n *\u002F\nfunction acmx_filter_output_tokens( $output_tokens, $tag_id, $code_to_display ) {\n    global $dfp_tile;\n    global $dfp_ord;\n    global $dfp_pos;\n    global $dfp_dcopt;\n    global $wp_query;\n\n    \u002F\u002F We can't really rely on get_permalink() so use $_SERVER['REQUEST_URI] as bulletproof solution for generating unique pids\n    $link = strlen( $_SERVER['REQUEST_URI'] ) > 1 ? sanitize_key( $_SERVER['REQUEST_URI'] ) : home_url();\n    $output_tokens['%permalink%'] = str_replace( array( '\u002F',':', '.' ), '', $link ); \n    $output_tokens['%random%']    = $dfp_ord;\n    $output_tokens['%tile%']      = ++$dfp_tile;\n    if (  false === $dfp_pos[ $code_to_display['url_vars']['sz'] ] ) {\n        $output_tokens['%pos%']                        = 'top';\n        $dfp_pos[ $code_to_display['url_vars']['sz'] ] = true;\n    } else {\n        $output_tokens['%pos%'] = 'bottom';\n    }\n    if ( ! $dfp_dcopt ) {\n        $output_tokens['%dcopt%'] = 'ist';\n        $dfp_dcopt                = true;\n    } else {\n        $output_tokens['%dcopt%'] = '';\n    }\n\n    $output_tokens['%test%'] = isset( $_GET['test'] ) && $_GET['test'] == 'on' ? 'on' : '';\n\n    return $output_tokens;\n}\n~~~\u003Ch3>Configuration Filters\u003C\u002Fh3>\nThere are some filters which allow you to easily customize the output of the plugin. You should place these filters in your theme's functions.php file or in another appropriate place.\n\n[Check out this gist](https:\u002F\u002Fgist.github.com\u002F1631131) to see all of the filters in action.\n\n### `acm_ad_tag_ids`\n\nAd tag IDs are used as a parameter when adding tags to your theme (e.g. `do_action( 'acm_tag', 'my_top_leaderboard' )`). The `url_vars` defined as part of each tag here will also be used to replace tokens in your default URL.\n\nArguments:\n* array $tag_ids array of default tag IDs\n\nExample usage: Add a new ad tag called 'my_top_leaderboard'\n\n~~~php\nadd_filter( 'acm_ad_tag_ids', 'my_acm_ad_tag_ids' );\nfunction my_acm_ad_tag_ids( $tag_ids ) {\n    $tag_ids[] = array(\n        'tag'      => 'my_top_leaderboard', \u002F\u002F tag_id\n        'url_vars' => array(\n            'sz'              => '728x90', \u002F\u002F %sz% token\n            'fold'            => 'atf', \u002F\u002F %fold% token\n            'my_custom_token' => 'something' \u002F\u002F %my_custom_token% will be replaced with 'something'\n        ),\n    );\n    return $tag_ids;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_default_url\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Set the default tokenized URL used when displaying your ad tags. This filter is required.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* string $url The tokenized URL of Ad Code\u003C\u002Fp>\n\u003Cp>Example usage: Set your default ad code URL\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_default_url', 'my_acm_default_url' );\nfunction my_acm_default_url( $url ) {\n    if ( 0 === strlen( $url ) ) {\n        return \"http:\u002F\u002Fad.doubleclick.net\u002Fadj\u002F%site_name%\u002F%zone1%;s1=%zone1%;s2=;pid=%permalink%;fold=%fold%;kw=;test=%test%;ltv=ad;pos=%pos%;dcopt=%dcopt%;tile=%tile%;sz=%sz%;\";\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_output_html\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>The HTML outputted by the \u003Ccode>do_action( 'acm_tag', 'ad_tag_id' );\u003C\u002Fcode> call in your theme. Support multiple ad formats (e.g. JavaScript or simple HTML tags) by adjusting the HTML rendered for a given ad tag.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>%url%\u003C\u002Fcode> token used in this HTML will be filled in with the URL defined with \u003Ccode>acm_default_url\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* string $output_html The original output HTML\u003Cbr \u002F>\n* string $tag_id Ad tag currently being accessed\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_output_html', 'my_acm_output_html', 10, 2 );\nfunction my_acm_output_html( $output_html, $tag_id ) {\n    switch ( $tag_id ) {\n        case 'my_leaderboard':\n            $output_html = '\u003Ca href=\"%url%\">\u003Cimg src=\"%image_url%\" \u002F>\u003C\u002Fa>';\n            break;\n        case 'rich_media_leaderboard':\n            $output_html = '\u003Cscript> \u002F\u002F omitted \u003C\u002Fscript>';\n            break;\n        default:\n            break;\n    }\n    return $output_html;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_register_provider_slug\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Ad Code Manager has a built-in list of providers that it gathers by scanning the ‘providers’ directory used by the plugin. Additional providers can be added by placing the appropriate files in that directory or using the \u003Ccode>acm_register_provider_slug\u003C\u002Fcode> filter to register those that may be included as part of your theme or another plugin.\u003C\u002Fp>\n\u003Cp>When using this plugin, you are defining the provider slug as part of the existing object as well as an array of classes associated with that provider slug.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* object $providers An object containing the current registered providers.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_register_provider_slug', 'my_acm_register_provider_slug' );\nfunction my_acm_register_provider_slug( $providers ) {\n    $providers->new_provider_slug = array(\n        'provider' => 'My_New_Ad_Company_ACM_Provider',\n        'table'    => 'My_New_Ad_Company_ACM_WP_List_Table'\n    );\n\n    return $providers;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_whitelisted_script_urls\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>A security filter to define a safelist for which ad code script URLs can be added in the admin.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* array $whitelisted_urls Existing whitelisted ad code URLs\u003C\u002Fp>\n\u003Cp>Example usage: Allow DoubleClick for Publishers ad codes to be used\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_whitelisted_script_urls', 'my_acm_safelisted_script_urls' );\nfunction my_acm_safelisted_script_urls( $safelisted_urls ) {\n    $safelisted_urls = array( 'ad.doubleclick.net' );\n    return $safelisted_urls;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_output_tokens\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Output tokens can be registered depending on the needs of your setup. Tokens defined here will be replaced in the ad tag’s tokenized URL in addition to the tokens already registered with your tag ID.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* array $output_tokens Any existing output tokens\u003Cbr \u002F>\n* string $tag_id Unique tag ID\u003Cbr \u002F>\n* array $code_to_display Ad Code that matched conditionals\u003C\u002Fp>\n\u003Cp>Example usage: Test to determine whether you’re in test or production by passing ?test=on query argument\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_output_tokens', 'my_acm_output_tokens', 10, 3 );\nfunction my_acm_output_tokens( $output_tokens, $tag_id, $code_to_display ) {\n    $output_tokens['%test%'] = isset( $_GET['test'] ) && $_GET['test'] == 'on' ? 'on' : '';\n    return $output_tokens;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_whitelisted_conditionals\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Extend the list of usable conditional functions with your own awesome ones. We safelist these so users can’t execute random PHP functions.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* array $conditionals Default conditionals\u003C\u002Fp>\n\u003Cp>Example usage: Register a few custom conditional callbacks\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_whitelisted_conditionals', 'my_acm_safelisted_conditionals' );\nfunction my_acm_safelisted_conditionals( $conditionals ) {\n    $conditionals[] = 'my_is_post_type';\n    $conditionals[] = 'is_post_type_archive';\n    $conditionals[] = 'my_page_is_child_of';\n\n    return $conditionals;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_conditional_args\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>For certain conditionals (\u003Ccode>has_tag()\u003C\u002Fcode>, \u003Ccode>has_category()\u003C\u002Fcode>), you might need to pass additional arguments.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* array $cond_args Existing conditional arguments\u003Cbr \u002F>\n* string $cond_func Conditional function (\u003Ccode>is_category()\u003C\u002Fcode>, \u003Ccode>is_page()\u003C\u002Fcode>, etc.)\u003C\u002Fp>\n\u003Cp>Example usage: \u003Ccode>has_category()\u003C\u002Fcode> and \u003Ccode>has_tag()\u003C\u002Fcode> use \u003Ccode>has_term()\u003C\u002Fcode>, which requires the object ID to function properly.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_conditional_args', 'my_acm_conditional_args', 10, 2 );\nfunction my_acm_conditional_args( $cond_args, $cond_func ) {\n    global $wp_query;\n\n    \u002F\u002F The `has_category()` and `has_tag()` functions call the `has_term()` function.\n    \u002F\u002F We should pass queried object id for it to produce correct result.\n    if ( in_array( $cond_func, array( 'has_category', 'has_tag' ) ) && $wp_query->is_single == true ) {\n        $cond_args[] = $wp_query->queried_object->ID;\n    }\n\n    \u002F\u002F my_page_is_child_of is our custom WP conditional tag and we have to pass queried object ID to it.\n    if ( in_array( $cond_func, array( 'my_page_is_child_of' ) ) && $wp_query->is_page ) {\n        $cond_args[] = $cond_args[] = $wp_query->queried_object->ID;\n    }\n\n    return $cond_args;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_display_ad_codes_without_conditionals\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>Change the behavior of Ad Code Manager so that ad codes without conditionals display on the front end. The default behavior is that each ad code requires a conditional to be included in the presentation logic.\u003C\u002Fp>\n\u003Cp>Arguments:\u003Cbr \u002F>\n* bool $behavior Whether or not to display the ad codes that don’t have conditionals\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_display_ad_codes_without_conditionals', '__return_true' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_provider_slug\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>By default, we use our bundled doubleclick_for_publishers config (check it in \u003Ccode>\u002Fproviders\u002Fdoubleclick-for-publishers.php\u003C\u002Fcode>). If you want to add your own flavor of DFP or even implement configuration for another ad network, you’d have to apply a filter to correct the slug.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter(\n    'acm_provider_slug',\n    function() {\n        return 'my-ad-network-slug';\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_logical_operator\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>By default, the logical operator is set to “OR”, that is, ad code will be displayed if at least one conditional returns true.\u003Cbr \u002F>\nYou can change it to “AND”, so that the ad code will be displayed only if ALL the conditionals match.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter(\n    'acm_logical_operator',\n    function() {\n        return 'AND';\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_manage_ads_cap\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>By default, the user has to have \u003Ccode>manage_options\u003C\u002Fcode> cap. This filter comes in handy if you want to relax the requirements.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter(\n    'acm_manage_ads_cap',\n    function( $cap ) {\n        return 'edit_others_posts';\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_allowed_get_posts_args\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>This filter is only for edge cases. Most likely, you won’t have to touch it. Allows to include additional query args for \u003Ccode>Ad_Code_Manager->get_ad_codes()\u003C\u002Fcode> method.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter(\n    'acm_allowed_get_posts_args',\n    function( $args_array ) {\n        return array( 'offset', 'exclude' );\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_ad_code_count\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>By default, the total number of ad codes to get is 50, which is reasonable for any small to mid-sized site. However, in certain cases, you would want to increase the limit. This will affect \u003Ccode>Ad_Code_Manager->get_ad_codes()\u003C\u002Fcode> \u003Ccode>numberposts\u003C\u002Fcode> query argument.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter(\n    'acm_ad_code_count',\n    function( $total ) {\n        return 100;\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_list_table_columns\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>This filter can alter table columns that are displayed in ACM UI.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_list_table_columns', 'my_acm_list_table_columns' );\nfunction my_acm_list_table_columns( $columns ) {\n    $columns = array(\n        'id'           => __( 'ID', 'ad-code-manager' ),\n        'name'         => __( 'Name', 'ad-code-manager' ),\n        'priority'     => __( 'Priority', 'ad-code-manager' ),\n        'conditionals' => __( 'Conditionals', 'ad-code-manager' ),\n    );\n\n    return $columns;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>\u003Ccode>acm_ad_code_args\u003C\u002Fcode>\u003C\u002Fh3>\n\u003Cp>This filter comes in pair with the previous one. It should return an array of ad network-specific parameters. E.g. in \u003Ccode>acm_list_table_columns\u003C\u002Fcode> example, we have ‘id’, ‘name’, ‘priority’, and ‘conditionals’. All of them except ‘name’ are generic for Ad Code Manager. Hence, \u003Ccode>acm_provider_columns\u003C\u002Fcode> should return only “name”.\u003C\u002Fp>\n\u003Cp>“editable” and “required” indicate whether this field should be editable and required.\u003C\u002Fp>\n\u003Cp>Example usage:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'acm_ad_code_args', 'my_acm_ad_code_args' );\nfunction my_acm_ad_code_args( $args ) {\n    $args = array(\n        array(\n            'key'      => 'name',\n            'label'    => __( 'Name', 'ad-code-manager' ),\n            'editable' => true,\n            'required' => true,\n        ),\n    );\n\n    return $args;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Change Log\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAutomattic\u002Fad-code-manager\u002Fblob\u002Fmaster\u002FCHANGELOG.md\" rel=\"nofollow ugc\">View the change log\u003C\u002Fa>.\u003C\u002Fp>\n","Manage your ad codes through the WordPress admin safely and easily.",50,30470,"2026-01-06T15:32:00.000Z","6.9.4","6.4","7.4",[19,20,53,21,54],"adsense","dfp","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fad-code-manager\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fad-code-manager.0.8.0.zip",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":33,"num_ratings":67,"last_updated":68,"tested_up_to":49,"requires_at_least":69,"requires_php":51,"tags":70,"homepage":73,"download_link":74,"security_score":11,"vuln_count":25,"unpatched_count":25,"last_vuln_date":26,"fetched_at":27},"ads-txt","Ads.txt Manager","1.4.6","10up","https:\u002F\u002Fprofiles.wordpress.org\u002F10up\u002F","\u003Cp>Create, manage, and validate your ads.txt and app-ads.txt from within WordPress, like any other content asset. Requires PHP 7.4+.\u003C\u002Fp>\n\u003Ch3>What is ads.txt?\u003C\u002Fh3>\n\u003Cp>Ads.txt is an initiative by the Interactive Advertising Bureau to enable publishers to take control over who can sell their ad inventory. Through our work at 10up with various publishers, we’ve created a way to manage and validate your ads.txt file from within WordPress, eliminating the need to upload a file. The validation baked into the plugin helps avoid malformed records, which can cause issues that end up cached for up to 24 hours and can lead to a drop in ad revenue.\u003C\u002Fp>\n\u003Ch3>Technical Notes\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Requires PHP 7.4+.\u003C\u002Fli>\n\u003Cli>Ad blockers may break syntax highlighting and pre-save error checking on the edit screen.\u003C\u002Fli>\n\u003Cli>Rewrites need to be enabled. Without rewrites, WordPress cannot know to supply \u003Ccode>\u002Fads.txt\u003C\u002Fcode> when requested.\u003C\u002Fli>\n\u003Cli>Your site URL must not contain a path (e.g. \u003Ccode>https:\u002F\u002Fexample.com\u002Fsite\u002F\u003C\u002Fcode> or path-based multisite installs). While the plugin will appear to function in the admin, it will not display the contents at \u003Ccode>https:\u002F\u002Fexample.com\u002Fsite\u002Fads.txt\u003C\u002Fcode>. This is because the plugin follows the IAB spec, which requires that the ads.txt file be located at the root of a domain or subdomain.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>What about ads.cert?\u003C\u002Fh3>\n\u003Cp>We’re closely monitoring continued developments in the ad fraud space, and see this plugin as not only a way to create and manage your ads.txt file but also be prepared for future changes and upgrades to specifications. Ads.cert is still in the extremely early stages so we don’t see any immediate concerns with implementing ads.txt.\u003C\u002Fp>\n\u003Ch3>Can I use this with multisite?\u003C\u002Fh3>\n\u003Cp>Yes! However, if you are using a subfolder installation it will only work for the main site. This is because you can only have one ads.txt for a given domain or subdomain per the \u003Ca href=\"https:\u002F\u002Fiabtechlab.com\u002Fads-txt\u002F\" rel=\"nofollow ugc\">ads.txt spec\u003C\u002Fa>.  Our recommendation is to only activate Ads.txt Manager per-site.\u003C\u002Fp>\n","Create, manage, and validate your ads.txt and app-ads.txt from within WordPress, like any other content asset.",100000,1903612,14,"2026-01-04T21:09:00.000Z","6.6",[71,20,58,21,72],"ad-manager","app-ads-txt","https:\u002F\u002Fgithub.com\u002F10up\u002Fads-txt","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fads-txt.1.4.6.zip",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":83,"downloaded":84,"rating":25,"num_ratings":25,"last_updated":85,"tested_up_to":86,"requires_at_least":87,"requires_php":88,"tags":89,"homepage":17,"download_link":94,"security_score":11,"vuln_count":95,"unpatched_count":25,"last_vuln_date":96,"fetched_at":27},"website-article-monetization-by-magenet","Website Article Monetization By MageNet","1.0.12","MageNet","https:\u002F\u002Fprofiles.wordpress.org\u002Fmagenet\u002F","\u003Cp>Article Plugin by MageNet is a free WordPress plugin that allows you to monetize your website through the automated placement of third-party content on your site.\u003C\u002Fp>\n\u003Cp>To install the Article Plugin, you need to \u003Ca href=\"https:\u002F\u002Fwww.magenet.com\u002F\" rel=\"nofollow ugc\">sign in\u002Fup\u003C\u002Fa> to your MageNet account and get your MageNet Key.\u003C\u002Fp>\n\u003Cp>Time-saving\u003Cbr \u002F>\nWith the Article Plugin, you’ll start getting new relevant content on your website automatically. After your approval, this plugin creates a new webpage on your site and place an article from your buyers.\u003C\u002Fp>\n\u003Cp>Full control\u003Cbr \u002F>\nYou have the total control over the content placed on your site even though the Article Plugin does all the content placement work for you. You can reject the task for the content placement if you don’t like the provided content or find it irrelevant to your website niche.\u003C\u002Fp>\n\u003Cp>Better chances to rank high in SERPs\u003Cbr \u002F>\nWith the Article Plugin, you’ll be able to regularly update your website with the new content. As a result, you’ll boost your chances to rank for new keywords in SERPs.\u003C\u002Fp>\n\u003Cp>Automated changes\u003Cbr \u002F>\nArticle Plugin will take control of any changes or amendments in the provided content if there will be any.\u003C\u002Fp>\n\u003Cp>Auto removal\u003Cbr \u002F>\nIf the buyer cancels the provided content, the Article Plugin will automatically remove such an article from your website as soon as possible.\u003C\u002Fp>\n\u003Cp>Error checking\u003Cbr \u002F>\nThe Article Plugin will save you from errors that might occur during manual content placement.\u003C\u002Fp>\n","Get additional income from your website or blog by placing text ads automatically.",20000,94404,"2025-05-21T08:32:00.000Z","6.8.5","4.9","5.2.4",[21,90,91,92,93],"contextual-ads","contextual-advertising","earn-money-online","website-monetization","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsite-article-monetization-by-magenet.zip",1,"2024-03-19 00:00:00",{"slug":98,"name":99,"version":100,"author":79,"author_profile":80,"description":101,"short_description":82,"active_installs":83,"downloaded":102,"rating":103,"num_ratings":104,"last_updated":105,"tested_up_to":86,"requires_at_least":106,"requires_php":17,"tags":107,"homepage":17,"download_link":108,"security_score":11,"vuln_count":95,"unpatched_count":25,"last_vuln_date":109,"fetched_at":27},"website-monetization-by-magenet","Website Monetization by MageNet","1.0.29.3","\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.magenet.com\u002F\" rel=\"nofollow ugc\">Website Monetization Plugin by MageNet\u003C\u002Fa> is a WordPress plugin that allows you to sell contextual ads from your pages automatically and receive payments with PayPal.\u003C\u002Fp>\n\u003Cp>To get started \u003Ca href=\"http:\u002F\u002Fwww.magenet.com\u002F\" rel=\"nofollow ugc\">sign up\u003C\u002Fa> for a MageNet Key.\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FNNgahP_4DOo?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Hassle free\u003C\u002Fstrong>\u003Cbr \u002F>\nWe deal with the advertisers and offer relevant contextual ads to place. It’s free and easy to use.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Regular payouts\u003C\u002Fstrong>\u003Cbr \u002F>\nWithdraw your earnings with ease. Transfers are made via PayPal and WebMoney.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Full control\u003C\u002Fstrong>\u003Cbr \u002F>\nWe crawl all the pages of your site and list them for sales. You can set up the pages available or forbidden for advertising and set up the desired prices for your ads.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Safe and secure\u003C\u002Fstrong>\u003Cbr \u002F>\nAll your personal data is safe. Your websites will only be available to our trusted advertisers.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Statistics\u003C\u002Fstrong>\u003Cbr \u002F>\nDetailed information on all your current ads and listed pages of your sites.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Affiliate\u003C\u002Fstrong>\u003Cbr \u002F>\nYou will have access to awesome affiliate program available to our publishers.\u003C\u002Fp>\n",236447,58,7,"2025-05-20T15:55:00.000Z","4.0",[21,90,91,92,93],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebsite-monetization-by-magenet.zip","2023-03-16 00:00:00",{"slug":111,"name":112,"version":113,"author":114,"author_profile":115,"description":116,"short_description":117,"active_installs":118,"downloaded":119,"rating":120,"num_ratings":67,"last_updated":121,"tested_up_to":122,"requires_at_least":123,"requires_php":17,"tags":124,"homepage":128,"download_link":129,"security_score":130,"vuln_count":95,"unpatched_count":25,"last_vuln_date":131,"fetched_at":27},"meks-easy-ads-widget","Meks Easy Ads Widget","2.0.9","Meks","https:\u002F\u002Fprofiles.wordpress.org\u002Fmekshq\u002F","\u003Cp>With this plugin you can create unlimited number of ads inside your WordPress widget. There are several smart options provided to customize ads for your needs.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Create unlimited number of ads inside one widget\u003C\u002Fli>\n\u003Cli>Choose from predefined sizes or define your custom size\u003C\u002Fli>\n\u003Cli>Support for both image ads and script based ads\u003C\u002Fli>\n\u003Cli>Randomize ads ordering\u003C\u002Fli>\n\u003Cli>Limit number of ads per view (page load)\u003C\u002Fli>\n\u003Cli>Autoplay rotate ads\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Meks Easy Ads Widget plugin is created by \u003Ca href=\"https:\u002F\u002Fmekshq.com\" rel=\"nofollow ugc\">Meks\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Live example?\u003C\u002Fh3>\n\u003Cp>You can see Meks Easy Ads Widget live example on our \u003Ca href=\"https:\u002F\u002Fmekshq.com\u002Fdemo\u002Fherald\" rel=\"nofollow ugc\">Herald theme demo website\u003C\u002Fa>\u003C\u002Fp>\n","Display unlimited number of ads inside your WordPress widget.",10000,467911,82,"2024-07-25T13:08:00.000Z","6.6.5","3.0",[125,20,21,126,127],"ad","affiliate","widget","http:\u002F\u002Fmekshq.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmeks-easy-ads-widget.zip",91,"2024-07-06 00:00:00",{"attackSurface":133,"codeSignals":223,"taintFlows":285,"riskAssessment":286,"analyzedAt":295},{"hooks":134,"ajaxHandlers":217,"restRoutes":218,"shortcodes":219,"cronEvents":220,"entryPointCount":25,"unprotectedCount":25},[135,142,145,150,154,158,163,166,170,173,177,182,186,190,192,195,198,201,206,209,212],{"type":136,"name":137,"callback":138,"priority":139,"file":140,"line":141},"action","plugins_loaded","plugin_textdomain",99,"adcontrol.php",38,{"type":136,"name":143,"callback":143,"file":140,"line":144},"init",98,{"type":136,"name":146,"callback":147,"priority":148,"file":140,"line":149},"wp_head","insert_head_meta",20,149,{"type":136,"name":146,"callback":151,"priority":152,"file":140,"line":153},"insert_head_iponweb",30,150,{"type":136,"name":155,"callback":156,"file":140,"line":157},"wp_enqueue_scripts","enqueue_scripts",151,{"type":159,"name":160,"callback":161,"file":140,"line":162},"filter","the_content","insert_ad",154,{"type":159,"name":164,"callback":161,"file":140,"line":165},"the_excerpt",157,{"type":136,"name":167,"callback":168,"file":140,"line":169},"wp_footer","insert_header_ad_special",165,{"type":136,"name":146,"callback":171,"priority":11,"file":140,"line":172},"insert_header_ad",168,{"type":136,"name":174,"callback":175,"priority":11,"file":140,"line":176},"admin_notices","adcontrol_deprecation_notice",555,{"type":136,"name":178,"callback":178,"priority":179,"file":180,"line":181},"admin_menu",11,"php\\admin.php",46,{"type":136,"name":183,"callback":184,"file":180,"line":185},"admin_init","register_settings",47,{"type":136,"name":187,"callback":188,"file":180,"line":189},"admin_enqueue_scripts","admin_scripts",48,{"type":136,"name":178,"callback":191,"file":180,"line":46},"tos_menu",{"type":136,"name":178,"callback":193,"file":180,"line":194},"not_approved_menu",52,{"type":136,"name":174,"callback":196,"file":180,"line":197},"alert_setup_steps",60,{"type":136,"name":174,"callback":199,"file":180,"line":200},"debug_output",64,{"type":136,"name":202,"callback":203,"file":204,"line":205},"adcontrol_cron_status","update_wordads_status","php\\cron.php",16,{"type":136,"name":178,"callback":207,"file":208,"line":205},"add_options_page","php\\no-jetpack.php",{"type":136,"name":174,"callback":210,"priority":139,"file":208,"line":211},"alert_jetpack",21,{"type":136,"name":213,"callback":214,"file":215,"line":216},"widgets_init","adcontrol_register_widgets","php\\widgets.php",108,[],[],[],[221],{"hook":202,"callback":202,"file":204,"line":222},25,{"dangerousFunctions":224,"sqlUsage":225,"outputEscaping":230,"fileOperations":25,"externalRequests":25,"nonceChecks":25,"capabilityChecks":283,"bundledLibraries":284},[],{"prepared":25,"raw":95,"locations":226},[227],{"file":228,"line":179,"context":229},"uninstall.php","$wpdb->get_col() with variable interpolation",{"escaped":231,"rawEcho":222,"locations":232},27,[233,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,279,281],{"file":140,"line":234,"context":235},197,"raw output",{"file":140,"line":237,"context":235},215,{"file":140,"line":239,"context":235},279,{"file":140,"line":241,"context":235},317,{"file":140,"line":243,"context":235},318,{"file":140,"line":245,"context":235},567,{"file":180,"line":247,"context":235},93,{"file":180,"line":249,"context":235},128,{"file":180,"line":251,"context":235},201,{"file":180,"line":253,"context":235},220,{"file":180,"line":255,"context":235},235,{"file":180,"line":257,"context":235},242,{"file":180,"line":259,"context":235},487,{"file":180,"line":261,"context":235},495,{"file":180,"line":263,"context":235},503,{"file":180,"line":265,"context":235},511,{"file":180,"line":267,"context":235},519,{"file":180,"line":269,"context":235},527,{"file":180,"line":271,"context":235},535,{"file":180,"line":273,"context":235},543,{"file":180,"line":275,"context":235},545,{"file":208,"line":277,"context":235},36,{"file":208,"line":120,"context":235},{"file":215,"line":280,"context":235},55,{"file":215,"line":282,"context":235},87,4,[],[],{"summary":287,"deductions":288},"The radcontrol plugin v1.5 exhibits a generally strong security posture based on the provided static analysis. The plugin has no known vulnerabilities (CVEs) and a clean history, which is a very positive indicator. The attack surface is minimal, with no unprotected AJAX handlers, REST API routes, or shortcodes, suggesting good access control practices. However, the static analysis does reveal some areas for concern. A significant portion of SQL queries are not using prepared statements, which can open the door to SQL injection vulnerabilities if the data influencing these queries is not meticulously sanitized. While a good number of outputs are properly escaped, the 52% properly escaped rate means the remaining 48% are vulnerable to cross-site scripting (XSS) attacks. The absence of nonce checks on the identified cron event is also a notable weakness that could potentially be exploited.",[289,291,293],{"reason":290,"points":104},"Raw SQL queries without prepared statements",{"reason":292,"points":13},"Improper output escaping (48% unescaped)",{"reason":294,"points":13},"No nonce check on cron events","2026-03-16T21:11:09.325Z",{"wat":297,"direct":305},{"assetPaths":298,"generatorPatterns":300,"scriptPaths":301,"versionParams":303},[299],"\u002Fwp-content\u002Fplugins\u002Fadcontrol\u002Fcss\u002Fac-style.css",[],[302],"\u002F\u002Fs.pubmine.com\u002Fhead.js",[304],"adcontrol\u002Fcss\u002Fac-style.css?ver=",{"cssClasses":306,"htmlComments":307,"htmlAttributes":308,"restEndpoints":310,"jsGlobals":311,"shortcodeOutput":317},[],[],[309],"data-cfasync=\"false\"",[],[312,313,314,315,316],"__ATA_PP","__ATA","__ATA.cmd","__ATA.criteo","__ATA.criteo.cmd",[]]