How to check for disapproved assets that are currently in use (v10)

522 views
Skip to first unread message

Mat

unread,
Feb 18, 2022, 11:07:51 AM2/18/22
to Google Ads API and AdWords API Forum
Hi there,

Use case: I want to check for disapproved assets like 

Lead Form
Promotion
Callout
Sitelink
Structured Snippet

... that are currently in use, that is, associated with an enabled campaign. Which would be the appropriate resource to hit with my GAQL string? Would you mind providing me an example for v10?

Possibly related question:

What's the difference between asset_group and asset_set?
More specific: which is used for what?

Regards
Mat


Google Ads API Forum Advisor

unread,
Feb 21, 2022, 4:49:37 AM2/21/22
to m...@keyword-experte.de, adwor...@googlegroups.com
Hi Mat,

Thank you for raising this concern to Google Ads API Team.

To answer your questions, you may refer below for my responses :


"Which would be the appropriate resource to hit with my GAQL string? Would you mind providing me an example for v10?"

For this question above, could you please confirm if want to get the association of your asset-based extension and campaigns? If yes, the I can suggest to use campaign_asset.


"What's the difference between asset_group and asset_set?
More specific: which is used for what?"

An AssetSet represents the collection of Asset objects that used on implementing Dynamic Search Ads Page Feeds and Dynamic remarketing with assets, while AssetGroup is used in the implementation of performance max campaign via Google Ads API.

Best regards,
Google Logo
Jinky
Google Ads API Team
 


ref:_00D1U1174p._5004Q2Wx2ja:ref

Sinea Calin

unread,
Feb 21, 2022, 4:57:01 AM2/21/22
to Google Ads API and AdWords API Forum
Hi,

I think he asked how to get disapproved assets how is campaign_asset a good answer. campaign_asset does not have policy summary. campaign_asset.asset has policy summary but unfortunately there is a bug that return nothing from assets.policy_summary.
So you cant get the status using API.

You welcome

Mat

unread,
Feb 21, 2022, 9:51:39 AM2/21/22
to Google Ads API and AdWords API Forum
Hi Jinky and Sinea,

ty for your responses.

In the meantime I learned that there is no "one fits for all" resource to check for disapproved ad extensions that are in active use. Instead you have to check customer_asset, campaign_asset and ad_group_asset separately. With GAQL strings along these lines:

    queries = [
        # Checks for disapproved ag_group assets
        (
            'SELECT '
            'ad_group_asset.status, '
            'campaign.name, '
            'campaign.id, '            
            'campaign.serving_status, '
            'campaign.status, '
            'ad_group.name, '
            'ad_group.id, '            
            'ad_group.status, '
            'asset.name, '
            'asset.id, '
            'asset.type, '
            'asset.policy_summary.approval_status, '
            'asset.policy_summary.policy_topic_entries, '
            'asset.policy_summary.review_status, '
            'asset.resource_name '
            'FROM ad_group_asset '
            'WHERE asset.policy_summary.approval_status = DISAPPROVED '
            'AND campaign.serving_status = SERVING '
            'AND campaign.status = ENABLED '
            'AND ad_group.status = ENABLED '
            'AND ad_group_asset.status = ENABLED'
        ),
        # Checks for disapproved campaign assets
        (
            'SELECT '
            'campaign_asset.status, '
            'campaign.name, '
            'campaign.id, '            
            'campaign.serving_status, '
            'campaign.status, '
            'asset.name, '
            'asset.id, '
            'asset.type, '
            'asset.policy_summary.approval_status, '
            'asset.policy_summary.policy_topic_entries, '
            'asset.policy_summary.review_status, '
            'asset.resource_name '
            'FROM campaign_asset '
            'WHERE asset.policy_summary.approval_status = DISAPPROVED '
            'AND campaign.serving_status = SERVING '
            'AND campaign.status = ENABLED '
            'AND campaign_asset.status = ENABLED'
        ),
        # Checks for disapproved customer assets
        (
            'SELECT '
            'customer_asset.status, '
            'asset.name, '
            'asset.id, '
            'asset.type, '
            'asset.policy_summary.approval_status, '
            'asset.policy_summary.policy_topic_entries, '
            'asset.policy_summary.review_status, '
            'asset.resource_name '
            'FROM customer_asset '
            'WHERE asset.policy_summary.approval_status = DISAPPROVED '
            'AND customer_asset.status = ENABLED'
        ),
    ]   
    for query in queries:
        ga_service.search_stream(customer_id=str(customer_id), query=query)
        ...  

Regards
Mat

Sinea Calin

unread,
Feb 21, 2022, 10:25:29 AM2/21/22
to Google Ads API and AdWords API Forum
Hi, Mat

Can you also confirm something with me for a long time i would not receive the asset.policy_summary in the select. Today it seems that they fixed it partially,  my unit test retrieves it but its only the review status. Can you confirm that you get the approval_status in your select and is not missing like my response.
   
asset {
    resource_name: "customers/faked/assets/faked"
    policy_summary {
      review_status: REVIEW_IN_PROGRESS
    }
  }

field_mask {
  paths: "asset.policy_summary.approval_status"
  paths: "asset.policy_summary.review_status"
}

Thank you and sorry for the trouble

Mat

unread,
Feb 21, 2022, 11:30:18 AM2/21/22
to Google Ads API and AdWords API Forum
Hi Sinea,

I can confirm that using the above GAQL-strings, I get the disapproved assets along with the value "DISAPPROVED" in the "asset.policy_summary.approval_status" field.

Regards
Mat

Google Ads API Forum Advisor

unread,
Feb 21, 2022, 10:29:10 PM2/21/22
to m...@keyword-experte.de, adwor...@googlegroups.com
Hi everyone,

Thank you Mat for sharing your results. Also, to confirm regarding the Google Ads API reporting, some attributes or fields may indeed need to be sourced or retrieved from other resources or reports, depending on the scenario.

 @Sinea, you mentioned "..is not missing like my response", that said, could you confirm if you are still encountering issues with your queries? If yes, could you share the complete request and response logs, with the request-id, and login-customer-id?

You may then send the requested information via the Reply privately to author option. If this option is not available, you may send the details directly to our googleadsa...@google.com alias instead.

Best regards,

Google Logo
Peter Laurence
Google Ads API Team
 


ref:_00D1U1174p._5004Q2Wx2ja:ref
Reply all
Reply to author
Forward
0 new messages