Zugriff für ein einzelnes Konto

Wenn Sie auf ein einzelnes Benutzerkonto zugreifen möchten, beginnt alles mit dem AdsApp-Objekt .

Gewusst wie greife ich auf die Entitäten in meinem Konto zu?

Wird für den Zugriff auf alle Entitäten im Konto verwendet AdsApp . Das Objekt enthält eine Selektormethode für jeden Entitätstyp (z. B. Kampagnen, Anzeigengruppen und Schlüsselwörter). Die Auswahlmethode gibt alle Entitäten für diesen Entitätstyp zurück. Rufen Sie beispielsweise die adGroups() Methode auf, um alle Anzeigengruppen im Konto abzurufen.

    var iterator = AdsApp.adGroups().get();

Was aber, wenn ich eine bestimmte Entität oder eine Teilmenge von Entitäten benötige?

Der Selektor bietet verschiedene Möglichkeiten zum Filtern der Liste der Entitäten. Sie können die Selektormethode withIds() verwenden, um bestimmte Entitäten anhand von IDs abzurufen, oder Sie können withCondition() die Auswahlkriterien für die Auswahl der Entitäten angeben. Die Selektoren für alle Entitätstypen, mit Ausnahme von Listen mit negativen Schlüsselwörtern (Keyword), bieten die Möglichkeit, die Liste der Entitäten zu filtern.

Verwenden Sie die Punktnotation, um mehrere Filter aneinanderzureihen. Wenn Sie mehrere Filter angeben, werden diese als UND-Vorgang behandelt – der Selektor gibt nur die Entitäten zurück, die alle Bedingungen erfüllen.

Um alle Anzeigengruppen in einer Kampagne abzurufen, verwenden Sie die withCondition() Methode, um den Namen der Kampagne anzugeben.

    var campaignName = 'My Campaign';
    var iterator = AdsApp.adGroups()
        .withCondition(`CampaignName = '${campaignName}'`)
        .get();

Eine Liste der Bedingungen und Operatoren, die Sie zum Filtern der Liste der Entitäten verwenden können, finden Sie in der Selektormethode withCondition() . Eine Liste der Anzeigengruppenbedingungen finden Sie beispielsweise in der withCondition-Methode der Anzeigengruppenauswahl.

Um eine Anzeigengruppe nach ID abzurufen, verwenden Sie die withIds() Methode, um die zu erhaltende Anzeigengruppe anzugeben.

    var ids = ["123456789"];
    var iterator = AdsApp.adGroups()
        .withIds(ids)
        .get();

Sie können die Anzeigengruppe auch nach Name abrufen.

    var campaignName = 'My Campaign';
    var adGroupName = 'My AdGroup';
    var iterator = AdsApp.adGroups()
        .withCondition(`CampaignName = '${campaignName}'`)
        .withCondition(`Name = '${adGroupName}'`)
        .get();

Weitere Informationen zu Selektoren finden Sie unter Was sind Selektoren?

Gewusst wie verwende ich den Selektor, um die gefilterte Liste der Entitäten zu durchlaufen?

Das tust du nicht. Der Selektor definiert nur die Entitäten, die du abrufen möchtest. Um die Entitäten tatsächlich zu erhalten, verwenden Sie einen Iterator. Um den Iterator abzurufen, rufen Sie die Methode des Selektors get() auf.

    var ids = ["123456789"];
    var iterator = AdsApp.adGroups()
        .withIds(ids)
        .get();

Verwenden Sie eine einfache while-Schleife, um die Liste der Entitäten zu durchlaufen.

    while (iterator.hasNext()) {
        var adGroup = iterator.next();
        
        // Do something with the entity
    }

Weitere Informationen zu Iteratoren finden Sie unter Was sind Iteratoren?

Gewusst wie Abrufen von Leistungsdaten für eine Entität?

Bei den meisten Entitäten können Sie Leistungsdaten anfordern, sofern verfügbar. Aber zuerst müssen Sie Scripts den Datumsbereich für die Leistungsdaten mitteilen, wenn Sie den Selektor angeben. Verwenden Sie zum Angeben eines Datumsbereichs ein vordefiniertes Literal, z. B. GESTERN oder LAST_MONTH, oder verwenden Sie ein Start- und Enddatum. Weitere Informationen finden Sie unter forDateRange(string dateRange) und forDateRange(Object dateFrom, Object dateTo).

    var campaignName = 'My Campaign';
    var adGroupName = 'My AdGroup';
    var iterator = AdsApp.adGroups()
        .forDateRange('LAST_30_DAYS')
        .withCondition(`CampaignName = '${campaignName}'`)
        .withCondition(`Name = '${adGroupName}'`)
        .get();

    while (iterator.hasNext()) {
        var adGroup = iterator.next();
        var stats = adGroup.getStats();
    }

Sie müssen auch einen Datumsbereich angeben, wenn Sie eine Spalte mit Leistungsdaten in der Methode eines Selektors withCondition() angeben. Wenn Sie beispielsweise nur Anzeigengruppen mit einer CTR von mehr als 0,22 Prozent verwenden möchten, müssen Sie einen Datumsbereich angeben.

    var startDate = {year: 2018, month: 6, day: 3};
    var endDate = {year: 2018, month: 6, day: 13};

    var iterator = AdsApp.adGroups()
        .forDateRange(startDate, endDate)
        .withCondition("Ctr > 0.22")
        .get();

Gewusst wie füge ich eine Entität hinzu?

Um eine Entität hinzuzufügen, verwenden Sie ein Builder-Objekt. Um ein Builder-Objekt abzurufen, rufen Sie die new*-Methode für das übergeordnete Objekt auf, dem Sie untergeordnete Objekte hinzufügen möchten. Um beispielsweise Anzeigengruppen zu einer Kampagne hinzuzufügen, rufen Sie die Methode der newAdGroupBuilder() Kampagne auf.

Das Builder-Objekt enthält Methoden zum Festlegen aller Eigenschaften des Objekts, die Sie angeben dürfen. Es enthält auch eine build() Methode, die Sie zum Erstellen des Objekts verwenden. Im Folgenden wird gezeigt, wie Sie eine Anzeigengruppe erstellen. (Informationen zum Abrufen eines Kampagnenobjekts finden Sie unter Abrufen einer Kampagne nach Namen.)

        var adGroupName = "My ad group";
        var endDate = {year: 2018, month: 6, day: 13};
        var customParameters = {key1: 'value1', key2: 'value2', key3: 'value3'};

        var adGroupOperation = campaign.newAdGroupBuilder()
            .withName(adGroupName)
            .withStatus('ENABLED')
            .withLanguage('English')
            .withBiddingStrategy('MANUAL_CPC')
            .withCpc(1.2)
            .withCustomParameters(customParameters)
            .withEndDate(endDate)
            .build();

Die build Methode gibt ein Vorgangsobjekt zurück, mit dem Sie überprüfen können, ob Skripts die Entität erfolgreich erstellt haben. Im Folgenden wird das typische Anrufmuster angezeigt. Rufen Sie die getResult Methode nur auf, wenn Sie auf die Eigenschaften der neuen Entität zugreifen möchten.

    if (adGroupOperation.isSuccessful()) {
        var adGroup = adGroupOperation.getResult();

    }
    else {
        for (var error of adGroupOperation.getErrors()) {
            Logger.log(`${error}\n`);
        }
    }

Weitere Informationen zu Buildern und Leistungsüberlegungen beim Aufrufen der Operationsmethoden finden Sie unter Was sind Builder?

Gewusst wie aktualisieren ich ein Objekt?

Nachdem Sie ein Builder-Objekt zum Hinzufügen einer Entität verwendet haben, verwenden Sie die Methoden der Entität, um ihre Eigenschaften zu aktualisieren. Im folgenden Beispiel wird der CPC-Gebotsbetrag der Anzeigengruppe aktualisiert.

    var ids = ["123456789"];
    var adGroups = AdsApp.adGroups()
        .withIds(ids)
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();
        adGroup.bidding().setCpc(2.5);
    }

Aber woher weiß ich, dass das Update funktioniert hat?

Wenn Sie versuchen, eine Eigenschaft mit einem ungültigen Wert zu aktualisieren, schreibt Scripts einen Fehler in das Änderungsprotokoll, löst aber keine Ausnahme aus, sodass das Skript weiterhin ausgeführt wird. Rufen Sie die Eigenschaft nach dem Aktualisieren nicht ab, um zu überprüfen, ob die Eigenschaft den neuen Wert enthält. Dies wirkt sich negativ auf die Leistung aus.

function main() {
    var id = "123456789";
    var bidAmount = -2.5;  
    var keyword = getKeyword(id); 

    if (keyword != null) {
        keyword.bidding().setCpc(bidAmount);  // Bid is not set because bid amount is not valid
    }

}

function getKeyword(id) {
    var keywords = AdsApp.keywords()
        .withIds([id])
        .get();

    if (keywords.hasNext()) {
        return keywords.next();
    }
    else {
        return null;
    }    
}

Schreiben in die Protokolldatei

Scripts stellt eine Protokolldatei bereit, in die Sie Ablaufverfolgungs- und Debuginformationen schreiben können. Weitere Informationen finden Sie unter Änderungsprotokolle und SMS-Protokolle.

Nächste Schritte