Reklamları yönetmek için senaryo örnekleri

Aşağıdaki bölümlerde, reklamlara karşı çeşitli eylemler gerçekleştiren komut dosyası örnekleri gösterilmektedir.

Not

  • Genişletilmiş metin reklamlarınızı 1 Şubat 2023'e kadar duyarlı arama ağı reklamlarına dönüştürün. Bu tarihten sonra artık yeni metin reklam oluşturamayacak veya mevcut genişletilmiş metin reklamları düzenleyemeyeceksiniz. Daha fazla bilgi için Duyarlı arama ağı reklamları hakkında başlıklı makaleyi inceleyin.
  • Mevcut genişletilmiş metin reklamlar yayınlanmaya devam edecek ve performanslarıyla ilgili raporları görüntüleyebileceksiniz.
  • Genişletilmiş metin reklamlarınızı duraklatmaya, etkinleştirmeye veya kaldırmaya devam edebilirsiniz. Aksi takdirde, genişletilmiş metin reklamları ekleme veya güncelleme girişimleri hatayla CampaignServiceAdTypeInvalid sonuçlanır.
  • Bu değişiklik hakkında daha fazla bilgi edinin.

Reklam ekleme

Reklam eklemek için önce reklamı eklemek istediğiniz reklam grubunu alın. Reklam grubunu seçmek için AdGroupSelector nesnesini kullanın. Yöntemin kullanılması, withIds yöntemde withCondition reklam grubunun adını iletmekten daha iyi performans sağlar.

Ardından, reklamın özelliklerini belirtmek için kullandığınız bir oluşturucu almak için reklam grubunun newAd yöntemini çağırın. Diğer varlık türlerinden farklı olarak yöntem, newAd oluşturmak istediğiniz reklam türü için oluşturucuyu alma yöntemlerini içeren bir AdBuilderSpace nesnesi döndürür. Bu örnek, genişletilmiş bir metin reklam ekler, bu nedenle genişletilmiş bir metin reklam oluşturucu alma yöntemini çağırır expandedTextAdBuilder .

Genişletilmiş metin reklamlar için aşağıdaki özellikleri belirtmeniz gerekir:

  • Açıklama
  • FinalUrl
  • BaşlıkBölüm 1
  • BaşlıkBölüm 2

Bu özelliklerin birleşimi, genişletilmiş metin reklamı benzersiz bir şekilde tanımlar. Diğer özellikler isteğe bağlıdır.

Oluşturucunun yöntemini çağırmak build , reklamı eşzamansız olarak oluşturur; Betikler, betik sona ermeden önce veya derleme işleminin yöntemlerinden birini çağırırsanız reklamı ekler. Bu işlem hakkında daha fazla bilgi için bkz : Oluşturucu nedir?

function main() {
    var adGroupId = "AD GROUP ID GOES HERE";
    var adGroup = getAdGroup(adGroupId);

    if (adGroup != null) {

        // Get an expanded text ad builder, specify the ad's 
        // properties, and add the ad to the build queue.
        var operation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("AD COPY GOES HERE")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("AD TITLE PART 1 GOES HERE")
            .withHeadlinePart2("AD TITLE PART 2 GOES HERE")
            .build();

        if (!operation.isSuccessful()) {
            for (var error of operation.getErrors()) {
                Logger.log(error);
            }
        }
    }
    else {
        Logger.log(`Failed to get ad group, ${adGroupId}.`);
    }
}

function getAdGroup(id) {
    var adGroups = AdsApp.adGroups()
        .withIds([id])
        .get();

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

Gerekli alanların kombinasyonu için aynı değerlere sahip daha önce eklenmiş bir reklam varsa, hizmet reklamı eklemez, bunun yerine daha önce eklenen reklamı ve kimliği döndürür. Ancak, aynı reklamlar aynı derleme kuyruğunda işlenirse, ikinci reklam CampaignServiceDuplicateAd ile başarısız olur. Örneğin, aşağıdaki örnekteki reklamlar aynı olduğu için reklamlardan biri başarısız olur.

    if (adGroup != null) {
        var adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);

        adOperation = adGroup.newAd().expandedTextAdBuilder()
            .withDescription("ad copy")
            .withFinalUrl("https://contoso.com")
            .withHeadlinePart1("title part 1")
            .withHeadlinePart2("title part 2")
            .build();

        operations.push(adOperation);
        
        for (var operation of operations) {
            if (!operation.isSuccessful()) {
                for (var error of operation.getErrors()) {
                    Logger.log(error);
                }
            }
        }
    }

Reklam alma

Hiyerarşinin neresinde olduğunuza bağlı olarak reklam almak için birkaç seçeneğiniz vardır.

Bir reklam grubundan reklam alma

Bir AdGroup nesneniz varsa, reklam grubuna ait reklamların listesini almak için nesnenin ads yöntemini çağırın. Bu örnek, gruptaki tüm reklamları alır ve yazdırır, ancak reklam listesini filtrelemek için reklam seçicinin yöntemlerini kullanabilirsiniz.

function main() {
    var adGroups = AdsApp.adGroups()
        .withIds(["AD GROUP ID GOES HERE"])
        .get();

    if (adGroups.hasNext()) {
        var adGroup = adGroups.next();

        var ads = adGroup.ads().get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Kampanyadan reklam alma

Bir Kampanya nesneniz varsa, kampanyadaki reklam gruplarına ait reklamların listesini almak için nesnenin ads yöntemini çağırın. Bu örnek, reklam listesini foo adını içeren reklam gruplarındaki reklam listelerine göre filtrelemek için reklam seçicinin withCondition yöntemini kullanır.

function main() {
    var campaigns = AdsApp.campaigns()
        .withIds(["CAMPAIGN ID GOES HERE"])
        .get();

    while (campaigns.hasNext()) {
        var campaign = campaigns.next();

        var ads = campaign.ads()
            .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
            .get();
        
        while (ads.hasNext()) {
            var ad = ads.next();

            if (ad.isType().expandedTextAd()) {
                var expandedAd = ad.asType().expandedTextAd();
            }
        }
    } 
}

Hesaptaki tüm reklamları al

Bir hesaptaki tüm reklamları almak için AdsApp nesnesindeki yöntemi çağırınads. Reklam listesini kampanyalara, reklam gruplarına göre veya reklam performansına göre filtrelemek için reklam seçicinin yöntemlerini kullanabilirsiniz. Bu örnek, hesaptaki tüm reklamları alır.

function main() {
    var ads = AdsApp.ads().get();

    while (ads.hasNext()) {
        var ad = ads.next();

        if (ad.isType().expandedTextAd()) {
            var expandedAd = ad.asType().expandedTextAd();
        }
    }
} 

Reklamı duraklatma

Bir reklamı duraklatmak için reklamın pause yöntemini çağırın. pause Yöntem temel Ad nesnesinde olduğundan, önce türetilmiş nesneyi almanız gerekmez.

Bir reklamı etkinleştirmek veya kaldırmak istiyorsanız, reklamı enable veya remove yöntemi çağırmanız yeterlidir. Reklamın etkinleştirilip etkinleştirilmediğini veya duraklatılıp duraklatılmadığını kontrol etmek için veya isPaused yöntemini çağırınisEnabled.

Belirli bir duruma sahip reklamları almak için reklam seçicinin withCondition yöntemini kullanın. Örneğin, withCondition("Status = PAUSED).

function main() {
    var ads = AdsApp.ads()
        .forDateRange("LAST_WEEK")
        .withCondition("AdGroupName CONTAINS_IGNORE_CASE 'foo'")
        .withCondition('Status = ENABLED')
        .withCondition('Clicks < 5')
        .get();
 
    while (ads.hasNext()) {
        var ad = ads.next();
        ad.pause();
    }
}

Onaylanmayan reklamlar alın

Onaylanmayan reklamlarla ilgili bir örnek için Onaylanmamış reklamları keşfetme başlıklı makaleye bakın.