DAS Werkzeug für den Tag Manager entdecken.Zum GTMSPY

Race Condition
AdWords Scripts: DSA Kampagnen sauber halten
Google Ads

17. August 2017

AdWords Scripts: DSA Kampagnen sauber halten

Optimieren Sie DSA-Kampagnen automatisch mit diesem Skript.

Dynamische Suchanzeigen (Dynamic Search Ads, DSA) in AdWords können eine große Unterstützung bei der Suche nach Keywords sein und sollten in einem gut aufgesetzten Konto nicht fehlen. Mit DSA spielt Google automatisch Anzeigen für Suchbegriffe aus, je nachdem, wie Google Ihre Website Inhalte interpretiert. Da wir von Google sprechen, ist dies normalerweise sehr gut und präzise.

In einem optimierten Konto werden Sie DSA jedoch nur als Fallback einsetzen und alle relevanten Suchanfragen explizit mit Keywords und perfekt passenden Anzeigen ansprechen. Während des Laufens von DSA Kampagnen zum Generieren von neuen Keywords kann es gelegentlich vorkommen, dass sich die Ausspielung mit schon dediziert angelegten Kampagnen überschneidet, da in dem Moment reguläre Kampagnen als auch DSA-Kampagnen auf dieselben Keywords bieten. Zumindest dann, wenn negative Keywords nicht entsprechend eingerichtet wurden.
Obwohl dies oft kein ernsthaftes Problem darstellt, können in schlechten Szenarien Suchbegriffe durch DSA bedient werden, die sonst einen deutlich niedrigeren CPC und ein niedrigeres Budget verdient hätten. Daher ist es empfehlenswert, ein sauberes Konto mit verschiedenen Traffic-Slices zu haben, d.h. Impressionen + Klicks + Kosten für einen bestimmten Suchbegriff sollten sich an einer einzigen Stelle ansammeln.

Daher sollten Sie dieses kleine AdWords-Skript kennenlernen, das Ihre DSA-Suchanfragen mit Anfragen von anderen Stellen in Ihrem Konto vergleicht, indem es AWQL-Berichte verwendet. Wenn es doppelte Abfragen entdeckt, fügt es die entsprechende Abfrage als [exakt negativ] in Ihre DSA-Kampagne ein und macht so Ihre reguläre Kampagne zur einzigen Kontrollquelle, insbesondere des CPCs. In diesem Skript wird eine DSA-Kampagne recht einfach identifiziert, nämlich schlicht daran, dass DSA im Namen steht.



function main() {

  var queryReport = AdWordsApp.report(
    "SELECT CampaignName,AdGroupName, AdGroupId, Query, Clicks, Impressions " +
    "FROM SEARCH_QUERY_PERFORMANCE_REPORT " +
    "WHERE Clicks > 0 " +
    "AND CampaignName DOES_NOT_CONTAIN_IGNORE_CASE 'Shopping' " +
    "AND CampaignStatus = ENABLED " +
    "AND AdGroupStatus = ENABLED " +
    "DURING LAST_7_DAYS" ).rows();

  var collect = {};
  
  while( queryReport.hasNext() ) {
    var r= queryReport.next();
    
    if( typeof( collect[r.Query] ) === "undefined" ) {
      collect[r.Query] = { 
        "other": 0,
        "dsa": { "impressions" : 0, agIds: [] }
      };
    }
    
    if( r.CampaignName.indexOf( "DSA" ) != -1 ) {
      collect[r.Query].dsa.impressions += parseInt( r.Impressions );
      if( collect[r.Query].dsa.agIds.indexOf( r.AdGroupId ) == -1 )
        collect[r.Query].dsa.agIds.push( r.AdGroupId );
    }
    else {
      collect[r.Query].other += parseInt( r.Impressions );
    }
    
  }
  
  for( query in collect ) {
    
    if( collect[query].dsa.impressions == 0 ) 
      continue;
    else if( collect[query].other > 0 ) {

      for( i in collect[query].dsa.agIds ) {

        var ag = AdWordsApp.adGroups().withIds([parseInt(collect[query].dsa.agIds[i])]).get().next().createNegativeKeyword( "["+ query +"]" );

      }
      
    }

  }
  
}